[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("用户名或密码错误"); 
        } 
    } 
 
}

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/12689.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论