• [javaEE] 三层架构案例-用户模块(二)


    使用junit测试框架,测试查找用户和添加用户功能

    com.tsh.test.xmlUserDaoTest

     

    package com.tsh.test;
    
    
    import org.junit.Test;
    
    import com.tsh.dao.XmlUserDao;
    import com.tsh.domain.User;
    /**
     * 测试用例
     * @author taoshihan
     *
     */
    public class xmlUserDaoTest {
        @Test
        public void testFindUserByUsername(){
            XmlUserDao dao=new XmlUserDao();
            User user= dao.findUserByUsername("taoshihan");
            System.out.println(user);
        }
        @Test
        public void testAddUser(){
            XmlUserDao dao=new XmlUserDao();
            User user=new User();
            user.setUsername("taoshihan");
            user.setPassword("123456");
            dao.addUser(user);
        }
    }

    在逻辑层service层中,抛出自定义异常

    com.tsh.service.UserService

    package com.tsh.service;
    
    import com.tsh.dao.XmlUserDao;
    import com.tsh.domain.User;
    import com.tsh.exception.MsgException;
    /**
     * 用户逻辑
     * @author taoshihan
     *
     */
    public class UserService {
        /**
         * 用户注册
         * @param user
         * @throws MsgException
         */
        public void registerUser(User user) throws MsgException{
            //检查用户名是否存在
            XmlUserDao dao=new XmlUserDao();
            if(dao.findUserByUsername(user.getUsername())!=null){
                throw new MsgException("用户名已经存在");
            }
            dao.addUser(user);
        }
    }

     

    jsp中使用el标签判断登陆状态

     

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>用户中心</title>
    </head>
    <body>
    <h1>用户中心</h1>
    <hr>
    <c:if test="${sessionScope.user==null }">
        欢迎光临,游客!
        <a href="${pageContext.request.contextPath }/login.jsp">登陆</a>
        <a href="${pageContext.request.contextPath }/register.jsp">注册</a>
    </c:if>
    <c:if test="${sessionScope.user!=null }">
        欢迎光临,${sessionScope.user.username }!
        <a href="${pageContext.request.contextPath }/Servlet/logout">注销</a>
    </c:if>
    </body>
    </html>

     

    Servlet中对发送过来的数据进行处理

    com.tsh.web.LoginServlet

    package com.tsh.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 com.tsh.dao.XmlUserDao;
    import com.tsh.domain.User;
    
    /**
     * 登陆处理
     */
    public class LoginServlet extends HttpServlet {
        /**
         */
        public LoginServlet() {
            super();
        }
    
        /**
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.getWriter().write("sss");
        }
    
        /**
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html; charset=utf-8");
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            if("".equals(username) || "".equals(password==null)){
                request.setAttribute("msg", "用户名和密码不能为空!");
                request.getRequestDispatcher("/login.jsp").forward(request, response);
                return ;
            }
            XmlUserDao dao=new XmlUserDao();
            User user=dao.findUserByUsername(username);
            
            if(user!=null && user.getPassword().equals(password)){
                request.getSession().setAttribute("user", user);
                response.getWriter().write("登陆成功!");
            }else{
                response.getWriter().write("用户名或密码错误");
            }
        }
    
    }
  • 相关阅读:
    vue 兼容ie 下载文件
    IDEA maven项目添加自己的jar包依赖
    mongodb 用户权限操作
    springboot + aspect
    Enum枚举类
    线上CPU飙升100%问题排查
    Linux零拷贝技术
    Java线程池实现原理及其在美团业务中的实践
    深入解析String#intern
    Java对象内存布局
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5640936.html
Copyright © 2020-2023  润新知