Java web第十四天

JSP开发模型

MVC 设计模式

任务11——按照Model2思想实现用户注册功能

编写UserBean类:

 package cn.itcast.chapter11.model2.domain;
    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;
    }
    }

编写RegisteFormBean类:

package cn.itcast.chapter11.model2.domain;
    import java.util.HashMap;
    import java.util.Map;
    public class RegisterFormBean {
        private String name;            //定义用户名
        private String password;       //定义密码
        private String password2;      //定义确认密码
         private String email;           //定义邮箱
      // 定义成员变量errors,用于封装表单验证时的错误信息
     private Map<String, String> errors = new HashMap<String, String>();
     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;
     }
     public boolean validate() {
         boolean flag = true;
         if (name == null || name.trim().equals("")) {
             errors.put("name", "请输入姓名.");
             flag = false;
         }
         if (password == null || password.trim().equals("")) {
             errors.put("password", "请输入密码.");
             flag = false;
         } else if (password.length() > 12 || password.length() < 6) {
             errors.put("password", "请输入6-12个字符.");
             flag = false;
         }
         if (password != null && !password.equals(password2)) {
             errors.put("password2", "两次输入的密码不匹配.");
             flag = false;
         }
         // 对email格式的校验采用了正则表达式
         if (email == null || email.trim().equals("")) {
             errors.put("email", "请输入邮箱.");
             flag = false;
         } else if (!email.matches("[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+")) {
             errors.put("email", "邮箱格式错误.");
             flag = false;
         }
         return flag;
     }
     // 向Map集合errors中添加错误信息
     public void setErrorMsg(String err, String errMsg) {
         if ((err != null) && (errMsg != null)) {
             errors.put(err, errMsg);
         }
     }
     // 获取errors集合
      public Map<String, String> getErrors() {
         return errors;
     }
    }

创建工具类:

 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();  
     // 定义users集合,用于模拟数据库
    private HashMap<String,UserBean> users = new HashMap<String,UserBean>();
    private DBUtil() {
        // 向数据库(users)中存入两条数据
        UserBean user1 = new UserBean();
        user1.setName("zhangyanju");
        user1.setPassword("123456");
        user1.setEmail("zyj123456@qq.com");
        users.put("zyj ",user1);
        
        UserBean user2 = new UserBean();
        user2.setName("zhengyuehong");
        user2.setPassword("zxcvbn");
        user2.setEmail("zyhzxcvbn@qq.com");
        users.put("zyh",user2);            
    }
    public static DBUtil getInstance()    {
        return instance;
    }
    // 获取数据库(users)中的数据
    public UserBean getUser(String userName) {
        UserBean user = (UserBean) users.get(userName);
        return user;
    }
    // 向数据库(users)插入数据
    public boolean insertUser(UserBean user) {
        if(user == null) {
            return false;
        }
        String userName = user.getName();
        if(users.get(userName) != null) {
            return false;
        }
        users.put(userName,user);
        return true;
    }
    }

创建Servlet:

package cn.itcast.chapter11.model.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.itcast.chapter11.model2.domain.RegisterFormBean;
import cn.itcast.chapter11.model2.domain.UserBean;
import cn.itcast.chapter11.model2.util.DBUtil;

@WebServlet("/ControllerServlet")  //建立连接

public class ControllerServlet extends HttpServlet {
    public void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
    public void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
        response.setHeader("Content-type", "text/html;charset=utf-8");  
        response.setCharacterEncoding("GBK");
        // 获取用户注册时表单提交的参数信息
        String name = request.getParameter("name");
        String password=request.getParameter("password");
        String password2=request.getParameter("password2");
        String email=request.getParameter("email");
        // 将获取的参数封装到注册表单相关的RegisterFormBean类中
        RegisterFormBean formBean = new RegisterFormBean();
        formBean.setName(name);
        formBean.setPassword(password); 
        formBean.setPassword2(password2);
        formBean.setEmail(email);
        // 验证参数填写是否符合要求,如果不符合,转发到register.jsp重新填写
        if(!formBean.validate()){
            request.setAttribute("formBean", formBean);
            request.getRequestDispatcher("/register.jsp").forward(request, response);
            return;
        }
        // 参数填写符合要求,则将数据封装到UserBean类中
        UserBean userBean = new UserBean();
        userBean.setName(name);
        userBean.setPassword(password);
        userBean.setEmail(email);
        // 调用DBUtil类中的insertUser()方法执行添加操作,并返回一个boolean类型的标志
        boolean b = DBUtil.getInstance().insertUser(userBean);
        // 如果返回为false,表示注册的用户已存在,则重定向到register.jsp重新填写
        if(!b){
            request.setAttribute("DBMes", "你注册的用户已存在");
              request.setAttribute("formBean", formBean);
             request.getRequestDispatcher("/register.jsp").forward(request, response);
            return;
        }
        response.getWriter().print("恭喜你注册成功,3秒钟自动跳转");
        // 将成功注册的用户信息添加到Session中
        request.getSession().setAttribute("userBean", userBean);
        // 注册成功后,3秒跳转到登录成功页面loginSuccess.jsp
        response.setHeader("refresh", "3;url=loginSuccess.jsp");
    }
}
创建JSP页面:

<%@ page language="java" pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
    <title>用户注册</title>
    <style type="text/css">
        h3 {
            margin-left: 100px;
        }
        #outer {
            width: 750px;
        }
        span {
            color: #ff0000
        }
        div {
             height:20px;
            margin-bottom: 10px;
        }
        .ch {
            width: 80px;
            text-align: right;
            float: left;
        }
        .ip {
            width: 500px;
            float: left
        }
        .ip>input {
            margin-right: 20px
        }
        #bt {
            margin-left: 50px;
        }
        #bt>input {
            margin-right: 30px;
        }
    </style>
</head>
<body>
        <form action="ControllerServlet" method="post">
            <h3>用户注册</h3>
            <div id="outer">
                <div>
                    <div class="ch">姓名:</div>
                    <div class="ip">
                <input type="text" name="name" value="${formBean.name }" />
                        <span>${formBean.errors.name}${DBMes}</span>
                    </div>
                </div>
                <div>
                    <div class="ch">密码:</div>
                    <div class="ip">
                        <input type="password" name="password" />
                        <span>${formBean.errors.password}</span>
                    </div>
                </div>
                <div>
                    <div class="ch">确认密码:</div>
                    <div class="ip">
                        <input type="password" name="password2" />
                        <span>${formBean.errors.password2}</span>
                    </div>
                </div>
                <div>
                    <div class="ch">邮箱:</div>
                    <div class="ip">
            <input type="text" name="email" value="${formBean.email }" />
                        <span>${formBean.errors.email}</span>
                    </div>
                </div>
                <div id="bt">
                    <input type="reset" value="重置 " />
                    <input type="submit" value="注册" />
                </div>
            </div>
        </form>
</body>
</html>

编写loginSuccess.jsp文件:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值