springboot之配置springmvc(登录拦截和设置默认首页)

本文介绍了如何在SpringBoot项目中配置SpringMVC,包括设置默认首页以实现在访问项目时直接跳转到登录页面,以及实现登录拦截功能,确保未登录用户被重定向到登录页面。同时,文章讨论了@EnableWebMvc注解可能导致的静态资源加载问题,并给出了不同版本SpringBoot中静态资源映射的解决方案。
摘要由CSDN通过智能技术生成

打算给项目加点小功能:

添加默认首页,当我们输入端口号+项目名后就能进入登陆页面 登录拦截,如果未登录我们就跳转到登录页面,已登录可以访问其他页面
为了实现这两个功能,我们需要用java类的方式来进行配置

项目环境:springboot 版本1.5.9 , 2.x的版本可以进行参考(静态资源的访问不一样,配置项目名不一样).

项目名:本项目里我们配置了项目名,在配置文件中加入server.context-path=/test(2.x版本有不同)

1.项目跳转
在项目开发过程中,经常会涉及页面跳转问题,而且这个页面跳转没有任何业务逻辑过程,只是单纯的路由过程 ( 点击一个按钮跳转到一个页面 ) 。

这时有两种方法

1.在controller里设置requestMapping

2.使用springmvc的addviewcontrollers方法,具体如下:继承WebMvcConfigurerAdapter后重写addViewControllers()方法

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
   
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
   
        registry.addViewController( "/" ).setViewName( "/login" );
        // "/login" 在controller里有映射,跳转login页面
        //该句等同于@RequestMapping("/")  return "login"
   }
}

之后我们输入端口号+项目名就能直接跳转到登录页面

2.登录拦截
有时候我们需要实现这样一个需求:登录拦截

如果用户没有登录,去任何一个网页都会跳转到登录页面,如果用户已经登录,那么用户可以访问其他页面.

首先我们定义一个拦截类,获取session(即我们登录后要在session里加一个user字段,以便我们验证)

public class MyInterceptor implements HandlerInterceptor {
   
    private static Logger logger = LoggerFactory.getLogger(MyInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
   
        //获取session
        HttpSession session = request.getSession(true);
        //判断用户ID是否存在,不存在就跳转到登录界面
        if(session.getAttribute("user") == null){
   
            logger.info<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值