[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("用户名或密码错误"); } } }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网