SpringMVC学习16:验证用户是否登录/拦截器
-
验证用户是否登录:实现思路
-
1,有一个登录页面,需要写一个controller访问页面;
-
2,登录页面又一提交表单的动作,需要在controller中处理,判断用户名密码是否正确,如果正确,向session中写入用户信息,返回登录成功;
-
3,拦截用户请求,判断用户是否登录,如果用户已经登录,放行,如果用户未登录,跳转到登录页面;
-
-
测试:
-
编写一个登录页面:login.jsp
<%
-
2、编写一个Controller处理请求
-
3,编写一个登陆成功的页面 success.jsp
<%
-
4、在 index 页面上测试跳转!启动Tomcat 测试,未登录也可以进入主页!
<%
-
5、编写用户登录拦截器:自定义拦截器
public class MyInterceptor implements HandlerInterceptor {
//在请求处理的方法之前执行
//如果返回true执行下一个拦截器
//如果返回false就不执行下一个拦截器
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 如果是登陆页面则放行
System.out.println("uri: " + request.getRequestURI());
if (request.getRequestURI().contains("login")) {
return true;
}
HttpSession session = request.getSession();
// 如果用户已登陆也放行
if (session.getAttribute("user") != null) {
return true;
}
// 用户没有登陆跳转到登陆页面
request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
return false;
}
} -
6、在Springmvc的配置文件中注册拦截器:只需要/user下面的访问拦截即可;【重点】
<!--配置拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/**"/>
<!--bean配置的就是拦截器-->
<bean class="com.ljxdemo.controller.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
-
-
笔记:
-
在WEB-INF下的所有页面或者资源,只能通过controller或者servlet访问;
-
转发不会修改URL地址;
-
分类:
09-SpringMVC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律