基于Spring MVC实现后台登陆系统验证
一、步骤
1.引入相关依赖pom.xml
< ? xml version= "1.0" encoding= "UTF-8" ? >
< project xmlns= "http://maven.apache.org/POM/4.0.0"
xmlns: xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
< modelVersion> 4.0 .0 < / modelVersion>
< groupId> com. zjd< / groupId>
< artifactId> chapter13< / artifactId>
< version> 1.0 - SNAPSHOT < / version>
< packaging> war< / packaging>
< properties>
< project. build. sourceEncoding> UTF - 8 < / project. build. sourceEncoding>
< maven. compiler. source> 1.7 < / maven. compiler. source>
< maven. compiler. target> 1.7 < / maven. compiler. target>
< / properties>
< dependencies>
< dependency>
< groupId> org. springframework< / groupId>
< artifactId> spring- context< / artifactId>
< version> 5.2 .8 . RELEASE < / version>
< / dependency>
< dependency>
< groupId> org. springframework< / groupId>
< artifactId> spring- webmvc< / artifactId>
< version> 5.2 .8 . RELEASE < / version>
< / dependency>
< dependency>
< groupId> javax. servlet< / groupId>
< artifactId> javax. servlet- api< / artifactId>
< version> 3.1 .0 < / version>
< scope> provided< / scope>
< / dependency>
< dependency>
< groupId> javax. servlet. jsp< / groupId>
< artifactId> jsp- api< / artifactId>
< version> 2.1 < / version>
< scope> provided< / scope>
< / dependency>
< / dependencies>
< / project>
2.搭建Spring MVC环境(配置前端控制器)web.xml
< ? xml version= "1.0" encoding= "UTF-8" ? >
< web- app xmlns= "http://xmlns.jcp.org/xml/ns/javaee"
xmlns: xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version= "4.0" >
< servlet>
< servlet- name> DispatcherServlet < / servlet- name>
< servlet- class >
org. springframework. web. servlet. DispatcherServlet
< / servlet- class >
< init- param>
< param- name> contextConfigLocation< / param- name>
< param- value> classpath: spring- mvc. xml< / param- value>
< / init- param>
< load- on- startup> 1 < / load- on- startup>
< / servlet>
< servlet- mapping>
< servlet- name> DispatcherServlet < / servlet- name>
< url- pattern> / < / url- pattern>
< / servlet- mapping>
< / web- app>
3.创建User类User.java
package com. zjd. pojo ;
public class User {
private String username;
private String password;
public String getUsername ( ) {
return username;
}
public void setUsername ( String username) {
this . username = username;
}
public String getPassword ( ) {
return password;
}
public void setPassword ( String password) {
this . password = password;
}
}
4.创建User控制类UserController.java
package com. zjd. controller ;
import com. zjd. pojo. User ;
import org. springframework. stereotype. Controller ;
import org. springframework. ui. Model ;
import org. springframework. web. bind. annotation. RequestMapping ;
import javax. servlet. http. HttpSession ;
@Controller
public class UserController {
@RequestMapping ( "/main" )
public String toMainPage ( ) {
return "main" ;
}
@RequestMapping ( "/tologin" )
public String toLoginPage ( ) {
return "login" ;
}
@RequestMapping ( "/orderinfo" )
public String orderinfo ( ) {
return "orderinfo" ;
}
@RequestMapping ( "/login" )
public String login ( User user, Model model, HttpSession httpSession) {
String username= user. getUsername ( ) ;
String password= user. getPassword ( ) ;
if ( username!= null && username. equals ( "zjd" ) && password!= null && password. equals ( "123" ) ) {
httpSession. setAttribute ( "USER_SESSION" , user) ;
return "main" ;
}
model. addAttribute ( "msg" , "用户名或密码错误,请重新登录" ) ;
return "login" ;
}
@RequestMapping ( "/logout" )
public String logout ( HttpSession httpSession) {
httpSession. invalidate ( ) ;
return "redirect:tologin" ;
}
}
5.创建拦截器LoginInterceptor.java
package com. zjd. interceptor ;
import org. springframework. web. servlet. handler. HandlerInterceptorAdapter ;
import javax. servlet. http. HttpServletRequest ;
import javax. servlet. http. HttpServletResponse ;
import javax. servlet. http. HttpSession ;
public class LoginInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle ( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String uri= request. getRequestURI ( ) ;
if ( uri. indexOf ( "/login" ) >= 0 ) {
return true ;
}
HttpSession session= request. getSession ( ) ;
if ( session. getAttribute ( "USER_SESSION" ) != null ) {
return true ;
}
request. setAttribute ( "msg" , "您还没有登录,请先登录!" ) ;
request. getRequestDispatcher ( "/WEB-INF/jsp/login.jsp" ) . forward ( request, response) ;
return false ;
}
}
6.创建Spring MVC配置文件spring-mvc.xml
< ? xml version= "1.0" encoding= "UTF-8" ? >
< beans xmlns= "http://www.springframework.org/schema/beans"
xmlns: xsi= "http://www.w3.org/2001/XMLSchema-instance"
xmlns: context= "http://www.springframework.org/schema/context"
xmlns: mvc= "http://www.springframework.org/schema/mvc"
xsi: schemaLocation= "http: / / www. springframework. org/ schema/ beans
http: / / www. springframework. org/ schema/ beans/ spring- beans. xsd
http: / / www. springframework. org/ schema/ context http: / / www. springframework. org/ schema/ context/ spring- context. xsd
http: / / www. springframework. org/ schema/ mvc http: / / www. springframework. org/ schema/ mvc/ spring- mvc. xsd ">
< ! -- 配置创建spring容器要扫描的包-- >
< context: component- scan base- package = "com.zjd.controller" / >
< ! -- 配置注解驱动-- >
< mvc: annotation- driven/ >
< ! -- 配置视图解析器-- >
< bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name= "prefix" value= "/WEB-INF/jsp/" / >
< property name= "suffix" value= ".jsp" / >
< / bean>
< ! -- 配置拦截器-- >
< mvc: interceptors>
< bean class = "com.zjd.interceptor.LoginInterceptor" / >
< / mvc: interceptors>
< ! -- 配置静态资源的访问映射,此配置中的文件将不被前端控制器拦截-- >
< mvc: resources mapping= "/js/**" location= "/js/" / >
< / beans>
6.创建系统首页main.jsp
< % --
Created by IntelliJ IDEA.
User : 24360
Date : 2022 / 11 / 27
Time : 12 : 36
To change this template use File | Settings | File Templates .
-- % >
< % @ page contentType= "text/html;charset=UTF-8" language= "java" % >
< html>
< head>
< title> 后台系统< / title>
< / head>
< body>
< li> 您好:${ USER_SESSION . username} < / li>
< li> < a href= "${pageContext.request.contextPath}/logout" > 退出< / a> < / li>
< li> < a href= "${pageContext.request.contextPath}/orderinfo" > 订单信息< / a> < / li>
< / body>
< / html>
7.创建系统登录页login.jsp
< % --
Created by IntelliJ IDEA.
User : 24360
Date : 2022 / 11 / 24
Time : 21 : 00
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" >
< div> ${ msg} < / div>
用户名:< input type= "text" name= "username" / > < br/ >
密& nbsp; & nbsp; 码:< input type= "password" name= "password" / > < br/ >
< input type= "submit" value= "登录" / >
< / form>
< / body>
< / html>
8.创建订单信息页面orderinfo.jsp
< % --
Created by IntelliJ IDEA.
User : 24360
Date : 2022 / 11 / 24
Time : 21 : 04
To change this template use File | Settings | File Templates .
-- % >
< % @ page contentType= "text/html;charset=UTF-8" language= "java" % >
< html>
< head>
< title> 订单信息< / title>
< / head>
< body>
您好:${ USER_SESSION . username}
< a href= "${pageContext.request.contextPath}/logout" > 退出< / a>
< table border= "1" width= "80%" >
< tr align= "center" > < td colspan= "2" > 订单id:D001 < / td> < / tr>
< tr align= "center" > < td> 商品Id < / td> < td> 商品名称< / td> < / tr>
< tr align= "center" > < td> P001 < / td> < td> 三文鱼< / td> < / tr>
< tr align= "center" > < td> P002 < / td> < td> 红牛< / td> < / tr>
< / table>
< / body>
< / html>
二、项目结构
三、本次完成案例:基于Spring MVC实现后台登陆系统验证
主要是对用户登陆状态的验证,只有登陆成功的用户才可以访问系统中的资源。
四、重要讯息!!!!!
各位小伙伴有疑问可以私聊我,我会在每周日统一查看回复
路过的小伙伴,该篇文章如果对你有帮助,请留下你的小手(👍)再走哦,
五、下方评论区见该案例源代码
您的支持将是我一直做下去的不竭动力!!!