打算给项目加点小功能:
添加默认首页,当我们输入端口号+项目名后就能进入登陆页面 登录拦截,如果未登录我们就跳转到登录页面,已登录可以访问其他页面
为了实现这两个功能,我们需要用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<