构思

界面层

1.jsp



【见名知义】

failed.jsp-->失败页面,登录、注册失败就跳转至失败页面
index.jsp-->默认生成的界面,没什么用
login.jsp-->登录界面
register.jsp-->注册界面
welcome.jsp-->欢迎界面,登录成功就跳转至欢迎界面

index.jsp



login.jsp

<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/8/13
Time: 17:29
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/login" method="post">
<p>用户名:<input type="text" placeholder="请输入用户名" name="userName"></p>
<p>密码:<input type="password" placeholder="请输入密码名" name="userPwd"></p>
<p><input type="reset" value="重置"><input type="submit" value="登录"></p>
<a href="${pageContext.request.contextPath}/register.jsp">
没有账号?前往注册
</a>
</form>
</body>
</html>

register.jsp



failed.jsp



welcome.jsp



2.Servlet



1.BeanUtils将表单信息塞进User对象里面储存,抽取一个工具类CreateUser

public final class CreateUser {
public static User createUser(HttpServletRequest request, HttpServletResponse response){
User nowUser=new User();
try {//解决乱码
request.setCharacterEncoding("utf-8");
//收集用户信息
Map<String, String[]> parameterMap = request.getParameterMap();
//创建当前User对象
//User nowUser=new User(); //使用BeanUtils将信息塞入nowUser对象
BeanUtils.populate(nowUser,parameterMap);
} catch (IllegalAccessException | UnsupportedEncodingException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return nowUser;
}
}

2.登录LoginServlet

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User nowUser=CreateUser.createUser(request,response);
System.out.println(nowUser.getUserName());
//使用UserService服务,注册
UserServiceImpl userService=new UserServiceImpl();
boolean login = userService.login(nowUser);
if(login){
HttpSession session = request.getSession();
session.setAttribute("user",nowUser);
response.sendRedirect("welcome.jsp");
}else {
response.sendRedirect("failed.jsp");
}
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}

3.注册RegisterServlet

@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User nowUser=CreateUser.createUser(request,response);
System.out.println(nowUser.getUserName()); //使用UserService服务,注册
UserServiceImpl userService=new UserServiceImpl();
boolean register = userService.register(nowUser);
if(register){
HttpSession session = request.getSession();
session.setAttribute("user",nowUser);
response.sendRedirect("login.jsp");
}else {
response.sendRedirect("failed.jsp");
}
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}

逻辑业务层、数据访问层请看下篇

https://blog.csdn.net/qq_42158942/article/details/99474259

最新文章

  1. 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)
  2. javascript超过容器后显示省略号效果(兼容一行或者多行)
  3. Geolocation API JavaScript访问用户的当前位置信息
  4. 功能更新到 Windows 10 企业版, 版本 1607
  5. 查看LINUX进程内存占用情况
  6. [ASP.NET MVC] 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
  7. BZOJ-1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法+乱搞
  8. Exploratory Software Testing
  9. 使用synchronize同步关键字来同步代码快
  10. hdu 5150 Sit sit sit
  11. python简介与基本操作
  12. java 异常处理与返回
  13. JSP的三种注释方式
  14. Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
  15. 开启第一个Node.js的Express项目
  16. 4-18 class与id的区别
  17. java maven compiler设置默认1.8
  18. phpBB3导入用户的Python脚本
  19. [SequenceFile_1] Hadoop 序列文件
  20. HDFS的操作SHELL和API

热门文章

  1. 拒绝老土!暗黑风格半透平面化主题—InfinityFreedom正式发布
  2. JDK/Java 14 发布
  3. python语法学习第十天--魔法方法
  4. python-修改文件
  5. 数据源管理 | OLAP查询引擎,ClickHouse集群化管理
  6. 修改jupyter默认保存文件的目录
  7. PAT 1028 List Sorting (25分) 用char[],不要用string
  8. python Lambda, filter, reduce and map
  9. 案例 (一)如何把python项目部署到linux服务器上
  10. 5.1 Go函数定义