JSP开发模型

一、JSP开发模型

        JSP的开发模型即JSP Model,在Web开发中,为了更方便地 使用JSP技术,Sun公司为JSP技术提供了两种开发模型: JSP Model1和JSP Model2

                        特点

        JSP Model1:简单轻便,适合小型Web项目的快速开发。

        JSP Model2:提供了更清晰的分层,适用于多人合作开发的大型Web项目。

package com.csdn.beans;

public class UserBean {undefined

private String name;

private String password;

private String email;

public UserBean() {undefined

super();

// TODO Auto-generated constructor stub

}

public UserBean(String name, String password, String email) {undefined

super();

this.name = name;

this.password = password;

this.email = email;

}

public String getName() {undefined

return name;

}

public void setName(String name) {undefined

this.name = name;

}

public String getPassword() {undefined

return password;

}

public void setPassword(String password) {undefined

this.password = password;

}

public String getEmail() {undefined

return email;

}

public void setEmail(String email) {undefined

this.email = email;

}

@Override

public String toString() {undefined

return "UserBean [email=" + email + ", name=" + name + ", password="

+ password + "]";

}

//验证方法

public boolean validatePassword(String password){undefined

if(this.password.equals(password)){undefined

return true;

}else{undefined

return false;

}

}

创建LoginFormBean.java-----把表单中的信息封装到一个类中,验证输入的格式是否正确

package com.csdn.beans;

import java.util.Hashtable;

public class LoginFormBean {undefined

private String name;

private String password;

// 存储所有的错误消息,通过键值对存储

private Hashtable errors = newHashtable();

public LoginFormBean() {undefined

super();

// TODO Auto-generated constructor stub

}

public LoginFormBean(String name, String password) {undefined

super();

this.name = name;

this.password = password;

}

public String getName() {undefined

return name;

}

public void setName(String name) {undefined

this.name = name;

}

public String getPassword() {undefined

return password;

}

public void setPassword(String password) {undefined

this.password = password;

}

@Override

public String toString() {undefined

return "LoginFormBean [name=" + name + ", password=" + password + "]";

}

// 验证用户输入的用户名和密码是否存在,是语法格式的验证

public boolean validate() {undefined

boolean allOk = true;

// trim()去掉两边的空串

if (name.trim().equals("")) {undefined

errors.put("name", "用户名为空,请重新输入你的用户名");

allOk = false;

}

if (password.length() > 10 || password.length() < 6) {undefined

errors.put("password", "密码不能为空,或密码的位数没有在指定的范围,请重新输入");

allOk = false;

}

return allOk;

}
<%@ page language="java"

import="java.util.*,com.csdn.beans.*,com.csdn.util.*"

pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP 'login.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

<%

request.setCharacterEncoding("utf-8");

%>

<!-- 在当前的会话范围内,如果用户已经登入,应该转向到loginSuccess.jsp -->

<%

if (session.getAttribute("user") != null) {undefined

%>

<jsp:forward page="loginSuccess.jsp"></jsp:forward>

<%

}

%>

<!-- 用户信息的验证,用户的账号和密码应该封装在loginFormBean对象中,有基本的语法格式的验证,用户的名字和密码是否正确,如果不正确,跳转到当前的页面中来 -->

<jsp:useBean id="loginForm" class="com.csdn.beans.LoginFormBean"

scope="page"></jsp:useBean>

<jsp:setProperty property="*" name="loginForm" />

<!-- 条件判定 -->

<%

if (request.getParameter("submit") !=null) {undefined

//基本语法格式的验证,用户名是不是字符,是不是为空

if (loginForm.validate()) {undefined

//验证用户名和密码是否是合法的

DbUtil util = DbUtil.getInstance();

UserBean user = util.getUser(loginForm.getName());

if (user == null) {undefined

loginForm.setErrorMsg("name", "用户名不存在");

} else {undefined

if (user.validatePassword(loginForm.getPassword())) {undefined

// 登入成功

session.setAttribute("user", user);

pageContext.forward("loginSuccess.jsp");

} else {undefined

//用户名存在但是密码不对

loginForm.setErrorMsg("password", "密码错误!");

}

}

}

}

%>

<!-- 表单的显示 -->

<form action="login.jsp" method="post">

<table border="1px">

<tr>

<td>

用户名

</td>

<td>

<input type="text" name="name" />

</td>

<td>

<%=loginForm.getErrorMsg("name") %>

</td>

</tr>

<tr>

<td>

密  码

</td>

<td>

<input type="password" name="password" />

</td>

<td style="font-size:red;">

<%=loginForm.getErrorMsg("password") %>

</td>

</tr>

<tr>

<td>

<input type="submit" value="submit" name="submit" />

</td>

<td>

<input type="reset" value="reset" name="reset" />

</td>

<td></td>

</tr>

</table>

</form>

</body>

</html>

二、MVC设计模型

        概述:一种软件设计模式,提供了一种按功能对软件进行模块划分的方法。MVC设计模式将软件程序分为3个核心模块:Model(模型)、View(视图)、Controller(控制器)。作用如下:

        Model

Model负责管理应用程序的业务数据、定义访问控制以及修改这些数据的业务规则。当Model的状态发生改变时,它会通知View发生改变,并为View提供查询Model状态的方法。

        View

View负责与用户进行交互,它从Model中获取数据向用户展示,同时也能将用户请求传递给Controller进行处理。当Model的状态发生改变时,View会对用户进行同步更新,从而保持与Model数据的一致性。

        Controller

Controller是负责应用程序中处理用户交互的部分,它负责从View中读取数据,控制用户输入,并向Model发送数据。
        实现分层的组织包结构图

 

代码的调用顺序:
View>Controller>Service>Dao,如果上层代码对下层代码的依赖程度过高,就需要对每层的代码定义一个(标准)接口。
定义接口之后的包结构

 

        1、新建一个项目
        2、导入相关的开发包,比如驱动包(oracle,mysql,sql server等的驱动包)
        3、构造出包的结构

 4、创建emp对象,放在vo包下面,emp表中的字段名对应设置成javabean中的成员变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值