JSP开发
作者:互联网
MVC模式:
MVC(Model-View-Controller,模型-视图-控制器)是一种程序设计概念,它同时适用于简单的和复杂的程序。使用该模式,可将待开发的应用程序分解为三个独立的部分:模型、视图和控制器。
提出这种设计模式主要是因为应用程序中用来完成任务的代码(模型,也称为“业务逻辑”)通常是程序中相对稳定的部分,并且会被重复使用,而程序与用户进行交互的页面(视图),却是经常改变的。
如果因需要更新页面而不得不对业务逻辑代码进行改动,或者要在不同的模块中应用相同的功能时重复地编写业务逻辑代码,不仅会降低整体程序开发的进程,而且会使程序变得难以维护。因此,将业务逻辑代码与外观呈现分离,将会更容易地根据需求的改变来改进程序。MVC 模式的模型如图所示。
1.编写UserBean类
在Eclipse中创建一个chapter11的web项目,在项目的src目录下创建包,在包中创建UserBean类,用于封装用户信息。
package cn.itcast.chapter11.model2.domain;
/**
- 用来封装用户的基本参数
- @author apple
*/
public class UserBean {
private String name;
private String password;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
RegisterFormBean:
package cn.itcast.chapter11.model2.domain;
import java.util.HashMap;
import java.util.Map;
public class RegisterFormBean {
//1.用来封装注册参数的
private String name;
private String password;
private String password2;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword2() {
return password2;
}
public void setPassword2(String password2) {
this.password2 = password2;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
//------------进行服务端的数据-----------------------
//2.定义变量来接收用户校验的信息,比如说用户名、邮箱是否符合规范,
//第一个参数 属性名称 第二个参数:属性值是否符合规范信息,比如(“email”,”邮箱格式有误“);
private Map<String,String> errors = new HashMap<String,String>();
public boolean validate(){
//2.定义变量,来判断数据是否满足规范,如果满足 就返回true,不满足就返回false
boolean flag = true;
if(name == null || name.trim().equals("")){
errors.put("name","请输入用户名");
flag = false;
return flag;
}
if(password == null || password.trim().equals("")){
errors.put("password","请输入密码");
flag = false;
return flag;
}else if(password.length()>12 || password.length()<6){
errors.put("password","请输入6-12个字符");
flag = false;
return flag;
}
if(password != null && !password.equals(password2)){
errors.put("password2","两次输入密码不一致");
flag = false;
return flag;
}
//校验邮箱,校验邮箱格式是否满足规范
String regex = "[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+";
if(email == null || email.trim().equals("")){
errors.put("email","请输入邮箱");
flag = false;
return flag;
}else if(!email.matches(regex)){
errors.put("email","邮箱格式错误");
flag = false;
return flag;
}
return flag;
}
//获取错误信息的方法
public Map<String, String> getErrors() {
return errors;
}
//提供向map集合中添加错误信息
public void setErrorMsg(String err,String errMsg){
if((err != null) && (errMsg!=null)){
errors.put(err, errMsg);
}
}
}
在包中定义DBUtil类
package cn.itcst.chapter11.model2.util;
import java.util.HashMap;
import cn.itcast.chapter11.model2.domain.UserBean;
/*
-
模拟数据�?
/
/ -
模拟数据�?
*/
public class DBUtil {
private static DBUtil instance = new DBUtil();
public static DBUtil getInstance(){
return instance;
}
//定义集合,来保存用户注册的数�?
private HashMap<String, UserBean> users = new HashMap<String, UserBean>();//插入2条数�?
public DBUtil(){
UserBean user1 = new UserBean();
user1.setName(“Jack”);
user1.setPassword(“123456”);
user1.setEmail(“jack@it315.org”);
users.put(“Jack”,user1);
UserBean user2 = new UserBean();
user2.setName(“Rose”);
user2.setPassword(“abcdefr”);
user2.setEmail(“rose@it315.org”);
users.put(“Rose”,user2);}
//获取值的方法
public UserBean getUser(String username){
UserBean user = users.get(username);
return user;
}
//提供插入数据库的方法
public boolean insertUser(UserBean user){
//用户为null,不能插入
if(user == null){
return false;
}
//判断用户名是否重�?
String username = user.getName();//用户提交过来的注册的参数
//String usernameDB = users.get(username).getName();//从数据库查询出来的用户名
UserBean userDB = users.get(username);
if(userDB !=null){//根据注册参数查询数据库有用户对象,表明用户名存在
return false;
}
users.put(username,user);
return true;}
DBUtil:
package cn.itcast.chapter11.model2.util;
import java.util.HashMap;
import cn.itcast.chapter11.model2.domain.UserBean;
/*
-
模拟数据库
/
/ -
模拟数据库
*/
public class DBUtil {
private static DBUtil instance = new DBUtil();
public static DBUtil getInstance(){
return instance;
}
//定义集合,来保存用户注册的数据
private HashMap<String, UserBean> users = new HashMap<String, UserBean>();//插入2条数据
public DBUtil(){
UserBean user1 = new UserBean();
user1.setName(“Jack”);
user1.setPassword(“123456”);
user1.setEmail(“jack@it315.org”);
users.put(“Jack”,user1);
UserBean user2 = new UserBean();
user2.setName(“Rose”);
user2.setPassword(“abcdefr”);
user2.setEmail(“rose@it315.org”);
users.put(“Rose”,user2);}
//获取值的方法
public UserBean getUser(String username){
UserBean user = users.get(username);
return user;
}
//提供插入数据库的方法
public boolean insertUser(UserBean user){
//用户为null,不能插入
if(user == null){
return false;
}
//判断用户名是否重复
String username = user.getName();//用户提交过来的注册的参数
//String usernameDB = users.get(username).getName();//从数据库查询出来的用户名
UserBean userDB = users.get(username);
if(userDB !=null){//根据注册参数查询数据库有用户对象,表明用户名存在
return false;
}
users.put(username,user);
return true;
}
register.jsp
<%@ page language=“java” pageEncoding=“GBK”%>
用户注册
姓名: ${formBean.errors.name}${DBMes} 密码: ${formBean.errors.password} 确认密码: ${formBean.errors.password2} 邮箱: ${formBean.errors.email} loginSuccess.jsp<%@ page language=“java” pageEncoding=“GBK” import=“cn.itcast.chapter11.model2.domain.UserBean”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<div id="main">
<div id="welcome">恭喜你,登录成功</div>
<hr />
<div>您的信息</div>
<div>
<ul>
<li>您的姓名: ${userBean.name} </li>
<li>您的邮箱: ${userBean.email} </li>
</ul>
</div>
</div>
标签:return,String,UserBean,开发,JSP,password,public,name 来源: https://blog.csdn.net/qq_55689375/article/details/122385336