Day05JavaWeb【Cookie与Session】综合案例注册

综合案例-注册分析

  • (1)分析
  • (2)业务逻辑
    提交注册信息给Sevlet
    Servlet获取用户名判断是否已存在
    如果不存在则添加,那么结果是成功
    如果存在则直接返回已注册信息,让用户继续注册
    在这里插入图片描述

综合案例-注册逻辑实现

test\java\com\wzx\TestUserService.java
查找用户名,存在表示用户注册过了,不能再注册,否则就是未注册,保存用户数据,提示注册成功。

  @Test
    public void test02(){
    
    
        //1:获取参数
        String username= "tony";
        String password= "bbb";
        User user = new User(username,password);
        //2:调用登录
        UserService userService = new UserService();
        int code = userService.register(user);
        //3:查看结果
        System.out.println(code);
    }

src\com\wzx\service\UserService.java
用户名是不能相同的,所以,保能先查是否存在这个用户,不存在才能注册

 public int register(User user) {
    
    
        //查找  用户名是否已存在,
        UserDao dao = new UserDao();
        int count = dao.findByName(user.getUsername());
        if(count == 0){
    
    //未注册
            //不存在,进行保存,
            dao.add(user);
            return 1;
        }else{
    
    
            //否则不保存提示失败
            return -1;
        }
    }

src\com\wzx\dao\UserDao.java
几乎所有的项目的Dao方法就是 addXxx deleteXxx findXxx updateXxx

  public int findByName(String username) {
    
    
        for(User u:userList){
    
    
            if(username.equals(u.getUsername())){
    
    
                return 1;//用户名已注册
            }
        }
        return 0;//用户未注册
    }

    public void add(User user) {
    
    
        userList.add(user);
    }

综合案例-注册UI界面

login.jsp
添加一个链接 ,让没有用户密码的新人,可以通过注册来获得自己的账号密码

<a href="/taobao/register.jsp">注册网易邮箱</a>



register.jsp

注册页面 填写用户信息

<!-- 编写表单页面-->
<font color="red">${error_msg}</font>
    <form method="post" action="/taobao/register">
        用户名:<input name="username" type="text"/><br/>
        密码:<input name="password" type="text"/><br/>
        确认密码:<input name="password2" type="text"/><br/>
        email<input name="email" type="text"/><br/>
        姓名<input name="name" type="text"/><br/>
        性别<input name="gender" type="radio" value="1"/><input name="gender" type="radio" value="2"/><br/>
        出生日期<input name="birthday" type="date"/><br/>
        <input  type="submit"/><br/>
    </form>

综合案例-注册Servlet

src\com\wzx\web\RegisterServlet.java


@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //1:获取参数
        request.setCharacterEncoding("utf-8");
        Map<String, String[]> map = request.getParameterMap();
        User user = new User();
        try {
    
    
            BeanUtils.populate(user,map);
        } catch (IllegalAccessException e) {
    
    
            e.printStackTrace();
        } catch (InvocationTargetException e) {
    
    
            e.printStackTrace();
        }
        //2:调用注册
        UserService userService = new UserService();
        int code = userService.register(user);
        //3:查看结果
        System.out.println(code);
        System.out.println(user);
        //如果用户注册成功,回到登录页面去登录
        if(code == 1){
    
    
            response.sendRedirect(request.getContextPath()+"/login.jsp");
        }else{
    
    
            //如果用户注册失败,回到注册页面重新注册
            request.setAttribute("error_msg","该用户名已被注册");
            request.getRequestDispatcher("/register.jsp").forward(request,response);
        }

    }
}
  • 一个web项目复杂的是逻辑
  • 其他的web部分完全可以参照登录模块

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/108528885