安徽省住房城乡建设部网站,福州市住房和城乡建设部网站,小米网站建设案例,网站构造目录#x1f6a9;一 SpringMVC拦截器✅ 1.配置文件✅2.登录验证代码#xff08;HandlerInterceptor#xff09;✅3.继承HandlerInterceptorAdapter#xff08;不建议使用#xff09;✅4.登录页面jsp✅5.主页面#xff08;操作页面#xff09;✅6.crud用户在访问页面时 只…
目录一 SpringMVC拦截器✅ 1.配置文件✅2.登录验证代码HandlerInterceptor✅3.继承HandlerInterceptorAdapter不建议使用✅4.登录页面jsp✅5.主页面操作页面✅6.crud用户在访问页面时 只做展示 不可进行任何操作 否则跳转登录页面✅作者简介Java-小白后端开发者 公认外号球场上的黑曼巴 个人主页不会飞的小飞侠24 个人信条谨 · 信 当前专栏高级内容 本文内容 SpringMVC【拦截器】登录验证 更多内容点击 小飞侠的博客欢迎大家 一 SpringMVC拦截器
SpringMVC中的Interceptor拦截器也是相当重要和相当有用的它的主要作用是拦截用户的请求并进行相应的 处理。比如通过它来进行权限验证或者是来判断用户是否登录等操作。对于SpringMVC拦截器的定义方式有两 种
实现接口: org.springframework.web.servlet.Handlerlnterceptor继承适配器: org.springframework.web.servethandler.HandlerInterceptorAdapter
✅ 1.配置文件
1web.xml?xml version1.0 encodingUTF-8?
web-app xmlnshttp://java.sun.com/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsdversion3.0servletservlet-namedispatcherServlet/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:springmvc03-config.xml/param-value/init-param!--tomcat启动就创建该实例对象--load-on-startup1/load-on-startup/servletservlet-mappingservlet-namedispatcherServlet/servlet-nameurl-pattern//url-pattern/servlet-mapping
/web-app2pom.xml
dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scope/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.3.9/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.24/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/versionscopecompile/scope/dependency!--引入json格式转换的依赖--dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.14.1/version/dependency(3)springmvc-config.xml
?xml version1.0 encodingUTF-8?beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd!-- 代替以上 配置 支持json数据格式的解析 --mvc:annotation-driven/mvc:annotation-driven!--配置内部视图解析器 InternalResourceViewResolver --bean classorg.springframework.web.servlet.view.InternalResourceViewResolver!--前缀--property nameprefix value/ /property!--后缀--property namesuffix value.jsp/property/bean!--开启包扫描--context:component-scan base-packagecn.syb.springmvc03/context:component-scan!--静态资源的处理 不需要经过前端控制器 tomcat--mvc:default-servlet-handler/mvc:default-servlet-handler!-- 配置拦截器 --mvc:interceptorsmvc:interceptor!--设置拦截路径--mvc:mapping path/**/!--设置不要拦截的路径--mvc:exclude-mapping path/user/login/mvc:exclude-mapping path/user/getcode/!--自定义拦截器--bean classcn.syb.springmvc03.interceptor.LoginInterceptor/bean/mvc:interceptor/mvc:interceptorsbean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver/bean
/beans✅2.登录验证代码HandlerInterceptor
package cn.syb.springmvc03.interceptor;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class LoginInterceptor implements HandlerInterceptor {public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(-------拦截器---------------);HttpSession session request.getSession();Object user session.getAttribute(user);if(usernull){response.sendRedirect(/login.jsp);}return true;}
}✅3.继承HandlerInterceptorAdapter不建议使用 java public class MyInterceptor2 extends HandlerInterceptorAdapter { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return false; } } ✅4.登录页面jsp
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle登录页/titlescript typetext/javascript srcjquery-1.11.1.js/scriptscript srchttps://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.js/script/head
bodyformpinput typetext nameusername placeholder请输入用户名 idusername/ppinput typepassword namepassword placeholder请输入密码 idpassword/ppinput typetext namecode placeholder请输入验证码 idcode/ppinput typebutton value登录 idlogin/p
/form%--//异常提示信息--%
span idmsg stylecolor: red/spanscript//给login 添加点击事件$(#login).click(function (){//赋值let username $(#username).val()let password $(#password).val()let code $(#code).val()//简写的JSon$.get(/user/login,{username,password,code},function (res){if(res.code200){window.location.href/userIndex.jsp}else {//拿信息let info res.msg;//获取信息$(#msg).text(info)}})})
/script/body
/html✅5.主页面操作页面
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle用户主页面/title
/head
bodyh2用户信息主页面/h2pa href/user/add?usernamejackpassword123添加/a/ppa href/user/delete?id10删除/a/ppa href/user/logout退出登录/a/p
/body
/html✅6.crud
package cn.syb.springmvc03.UserController;import cn.syb.springmvc03.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttribute;import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;/*** Author: 课工场* Version: v1.0 2023/3/1* Description:* CookieValue 获取cookie中执行key的值* SessionAttribute 获取session中指定key的值*/
Controller
RequestMapping(user)
public class UserController {RequestMapping(login)ResponseBody// , SessionAttribute(code) String attributepublic MapString, Object login(User user, HttpSession session,SessionAttribute(code) String attribute) {HashMapString, Object map new HashMap();
// String attribute (String) session.getAttribute(code);System.out.println(attribute attribute);String code user.getCode();if(code.equals(attribute)){if (tom.equals(user.getUsername()) 12345.equals(user.getPassword())) {// 将用户信息存入sessionsession.setAttribute(user, user);map.put(code, 200);map.put(msg, 登录成功);} else {map.put(code, 500);map.put(msg, 登录失败);}}else{map.put(code, 500);map.put(msg, 验证码错误);}return map;}RequestMapping(add)ResponseBody// CookieValuepublic MapString, Object add( User user) {HashMapString, Object map new HashMap();map.put(code, 200);map.put(msg, 添加成功 user user);return map;}RequestMapping(delete)ResponseBodypublic MapString, Object delete(Integer id) {HashMapString, Object map new HashMap();map.put(code, 200);map.put(msg, 删除成功 id id);return map;}RequestMapping(logout)public String logout(HttpSession session) {session.invalidate();//转发return login;}RequestMapping(getcode)ResponseBodypublic MapString,Object getCode(HttpSession session) {HashMapString, Object map new HashMap();Random random new Random();int value random.nextInt(10000);session.setAttribute(code, value);map.put(code, value);return map;}
}
用户在访问页面时 只做展示 不可进行任何操作 否则跳转登录页面