【SpringMVC】使用三层架构实现登录,注册。(上篇)
2024-09-07 12:33:11
构思
界面层
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
最新文章
- 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)
- javascript超过容器后显示省略号效果(兼容一行或者多行)
- Geolocation API JavaScript访问用户的当前位置信息
- 功能更新到 Windows 10 企业版, 版本 1607
- 查看LINUX进程内存占用情况
- [ASP.NET MVC] 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
- BZOJ-1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法+乱搞
- Exploratory Software Testing
- 使用synchronize同步关键字来同步代码快
- hdu 5150 Sit sit sit
- python简介与基本操作
- java 异常处理与返回
- JSP的三种注释方式
- Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
- 开启第一个Node.js的Express项目
- 4-18 class与id的区别
- java maven compiler设置默认1.8
- phpBB3导入用户的Python脚本
- [SequenceFile_1] Hadoop 序列文件
- HDFS的操作SHELL和API
热门文章
- 拒绝老土!暗黑风格半透平面化主题—InfinityFreedom正式发布
- JDK/Java 14 发布
- python语法学习第十天--魔法方法
- python-修改文件
- 数据源管理 | OLAP查询引擎,ClickHouse集群化管理
- 修改jupyter默认保存文件的目录
- PAT 1028 List Sorting (25分) 用char[],不要用string
- python Lambda, filter, reduce and map
- 案例 (一)如何把python项目部署到linux服务器上
- 5.1 Go函数定义