【SpringMVC】使用三层架构实现登录,注册。(上篇)
构思

界面层
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
【SpringMVC】使用三层架构实现登录,注册。(上篇)的更多相关文章
- winform学习日志(十九)----------真正三层架构之登录
摘要:一:三层构架的基础知识在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI).业务逻辑层(BLL)和数据访问层(DAL).三层的作用分别如下: 表示层:为用户提供交互操作界面, ...
- 【SpringMVC】使用三层架构实现登录,注册。(下篇)
上篇写了构思与界面层,本篇写一下业务逻辑层.数据访问层 目录 业务逻辑层 包:pojo 用户类(JavaBean):User public class User { private String us ...
- Springmvc+Spring+Mybatis实现员工登录注册功能
ssm实现用户注册以及登录功能..转载请标明出处 http://www.cnblogs.com/smfx1314/p/smfx1314.html 前端bootstrap 所使用的IDE是eclips ...
- asp.net mvc 三层加EF 登录注册 增删改查
首先打开vs软件新建项目创建web中的mvc项目再右击解决方案创建类库项目分别创建DAL层和BLL层再把DAL层和BLL层的类重命名在mvc项目中的Models文件夹创建model类在DAL创建ADO ...
- C# 三层架构之系统的登录验证与添加数据的实现
利用三层架构体系,实现学生管理系统中用户的登录与添加班级信息的功能,一下代码为具体实现步骤的拆分过程: 一.用户登录界面功能的实现 1.在数据访问层(LoginDAL)进行对数据库中数据的访问操作 u ...
- 三层架构,Struts2,SpringMVC实现原理图
三层架构,Struts2,SpringMVC实现原理图 三层架构实现原理 Struts2实现原理 SpringMVC实现原理
- c#利用三层架构做一个简单的登录窗体
就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...
- C# 使用三层架构实例演示-winForm 窗体登录功能
---------------------------------------------------------------------------------------------------华 ...
- 三层架构(MVC)实现简单登陆注册验证(含验证码)
前言在我的上一篇微博里我已经提出了登陆的方法,当时我采取的是纯servlet方式,因为当时刚接触到servlet,正好网上没有这方面的全面讲解,所以我就发飙了.不过在现实生产中我们大多采用的三层架构. ...
随机推荐
- GoF23:设计模式概述
目录 学习设计模式的意义 GoF23 创建型模式(5种) 结构型模式(7种) 行为型模式(11种) OOP七大原则 开闭原则(总的纲领) 里氏替换原则 依赖倒置原则 单一职责原则 接口隔离原则 迪米特 ...
- C# 判断文件格式的一些总结
前提概述: 项目中 经常会有上传图片的地方 有的时候需要对图片类型做一些要求 这个时候就需要一些判断 虽然前段上传的时候可以去做类型的限制 或者后台接受的时候从file的type 中获取图 ...
- [hdu4609]计数方法,FFT
题目:给一个数组a,从里面任选三个数,求以这三个数为三条边能构成三角形的概率. 思路:由于每个数只能用一次,所以考虑枚举三边中的最大边.先将a数组排序,然后枚举它的每个数x作为最大边,那么问题就是要求 ...
- [hdu5226]组合数求和取模(Lucas定理)
题意:给一个矩阵a,a[i][j] = C[i][j](i>=j) or 0(i < j),求(x1,y1),(x2,y2)这个子矩阵里面的所有数的和. 思路:首先问题可以转化为求(0,0 ...
- npm WARN enoent ENOENT: no such file or directory
https://github.com/visionmedia/debug/issues/261
- AJAX二
二.简单的dom操作 2.使用js的dom获取页面数据 由于ajax不使用form 而form具有自动收集数据的功能. 不使用form,就需要使用dom手写代码收集数据 ①获得承载数据的元素对象 &l ...
- kubernetes pod的弹性伸缩———基于pod自定义custom metrics(容器的IO带宽)的HPA
背景 自Kubernetes 1.11版本起,K8s资源采集指标由Resource Metrics API(Metrics Server 实现)和Custom metrics api(Promet ...
- 02.drf不使用serializers返回数据
drf 可以使用不经过model和serialzier的数据返回,也可以配置权限 class DashboardStatusViewset(viewsets.ViewSet): "" ...
- 太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!
大家好,我是良许. 作为 Linux 用户,大家肯定在 Linux 终端下敲过无数的命令.有的命令很短,比如:ls .cd .pwd 之类,这种命令大家毫无压力.但是,有些命令就比较长了,比如: $ ...
- 201771010128王玉兰《面向对象程序设计(Java)》第八周学习总结
第一部分:理论知识部分总结 (1)接口:接口不是类,而是对类胡一组需求描述,由常量肯一组抽象方法组成. a:接口中不包括变量和有具体实现的方法 b:只要类实现了接口,则该类要遵从接口描述的统 一格式进 ...