600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 开发springboot项目 遇到的一些问题总结

开发springboot项目 遇到的一些问题总结

时间:2020-05-28 08:43:18

相关推荐

开发springboot项目 遇到的一些问题总结

首先看一下我的项目目录吧

1,添加拦截器

我们做项目肯定要用到拦截器这个功能哈,没登录的话一些页面我们是不能访问的哈,这里是用到了HandlerInterceptor。

分别在图中的位置创建2个目录和2个文件:

WebConfig:

import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.InterceptorRegistration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration//标识这是一个配置类public class WebConfig implements WebMvcConfigurer {/*** 重写addCorsMappings()解决跨域问题* 配置:允许http请求进行跨域访问*/@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")//指哪些接口URL需要增加跨域设置.allowedOriginPatterns("*")//指的是前端哪些域名被允许跨域.allowCredentials(true)//需要带cookie等凭证时,设置为true,就会把cookie的相关信息带上.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")//指的是允许哪些方法.maxAge(3600);//cookie的失效时间,单位为秒(s),若设置为-1,则关闭浏览器就失效}/*** 重写addInterceptors()实现拦截器* 配置:要拦截的路径以及不拦截的路径**/@Overridepublic void addInterceptors(InterceptorRegistry registry) {//注册Interceptor拦截器(Interceptor这个类是我们自己写的拦截器类)InterceptorRegistration registration = registry.addInterceptor(new GlobalInterceptor());//addPathPatterns()方法添加需要拦截的路径registration.addPathPatterns("/**"); //所有路径都被拦截//excludePathPatterns()方法添加不拦截的路径registration.excludePathPatterns(//添加不拦截路径"/login.html", //登录页面的地址【不拦截】"/","/login","/toLogin",//"/**/*.html", //html静态资源"/**/*.js", //js静态资源"/**/*.css" //css静态资源);}}

GlobalInterceptor:

import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/*** 拦截器*/public class GlobalInterceptor implements HandlerInterceptor {/*** 在请求处理之前进行调用(Controller方法调用之前)*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {System.out.println("执行了Interceptor的preHandle方法");try {//统一拦截(查询当前session是否存在loginName用户信息)(这里loginName会在每次登陆成功后,写入session)String loginName = (String)request.getSession().getAttribute("loginName");if (loginName != null) {return true;}else{//这里设置拦截以后重定向的页面,一般设置为登陆页面地址request.getContextPath() +response.sendRedirect("/toLogin");return false;}} catch (IOException e) {e.printStackTrace();}return true;//如果设置为false时,被请求时,拦截器执行到此处将不会继续操作//如果设置为true时,请求将会继续执行后面的操作}}

2,设置controller跳转

设置输入端口就直接能进入我们的login.html页面(或者你想要进的首页)

@RequestMapping("/")public ModelAndView login(){ModelAndView mv = new ModelAndView("login.html");return mv ;}

这里设置后,我们输入localhost:80回车就能进入login.html,不需要输入localhost:80/login.html。(当然这个80端口是在application文件里面配置,大家应该知道吧)

3,打jar包发布到Linux服务器

打jar包发布到Linux服务器,需要配置pom文件,不然的话发布到服务器上会报404,。

<build><resources><resource><directory>${basedir}/src/main/webapp</directory><targetPath>META-INF/resources</targetPath><includes><include>**/**</include></includes></resource><resource><directory>src/main/resources</directory><filtering>false</filtering><includes><include>**/**</include></includes></resource></resources></build>

就是在里添加这些配置信息,指定页面位置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。