1.使用teymeleaf及属性
<dependency>
<groupId>org.spring work.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false //禁止缓存,用于开发
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.encoding=UTF-8
2.拦截器(通过session的属性name判断是否登录,登录放行,未登录记下原来的后缀路径在preurl中,然后重定向到登录页面,就是域名了,request.getRequestURL()完整路径,request.getRequestURI()后缀路径,tempContextUrl是域名,response.sendRedirect()重定向
public class Interceptor1 implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, handler) throws Exception{
HttpSession session=request.getSession();
ob=session.getAttribute(\"name\");
if (ob!=null) {
return true;
}
session.setAttribute(\"preurl\",request.getRequestURI());
StringBuffer url = request.getRequestURL();
String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getServletContext().getContextPath()).append(\"/\").toString();
response.sendRedirect(tempContextUrl);
return false;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
handler,ModelAndView model) throws Exception{
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
handler,Exception ex) throws Exception{
}
}
3.注册拦截器(拦截所有路径,除了/login)
@SpringBootApplication
@EnableCaching
public class Application implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry){
InterceptorRegistration ir=registry.addInterceptor(new Interceptor1());
ir.addPathPatterns(\"/**\");
ir.excludePathPatterns(\"/login\");
}
}
4登录controller(我这里没验证,返回原来路径或者ok)
@RequestMapping(\"/login\")
@ResponseBody
public String bbb(String name, String password, HttpSession session){
session.setMaxInactiveInterval(1*60);
System.err.println(name+\' \'+password);
session.setAttribute(\"name\",name);
session.setAttribute(\"password\",password);
ob=session.getAttribute(\"preurl\");
if (ob!=null) {
return ob.toString();
}
return \"ok\";
}
5前端处理(根据data跳转到对应的路径)
$.post(\"/login\",
{
name:$(\"#a\").val(),
password:$(\"#b\").val()
},
function(data){
if (data!=\'ok\') {
window.location.href = \'http://\' + location.host + data;
}
else window.location.href = \'http://\' + location.host + \'/main\';
}
)
继续阅读与本文标签相同的文章
上一篇 :
前后端常见的几种鉴权方式
下一篇 :
圣诞节吃饺子时,怎么给女票解释啥是AI?
-
增值税发票管理系统2.0版即将上线啦
2026-05-18栏目: 教程
-
楼上请让路 RoarCTF2019 writeup
2026-05-18栏目: 教程
-
恒泰聚能节电分享:人工智能开始发挥其节能潜力
2026-05-18栏目: 教程
-
CMU 15-721 16-服务器端的逻辑执行 Server -side Logic Execution
2026-05-18栏目: 教程
-
谷歌搜索广告出价方式
2026-05-18栏目: 教程
