您的位置:首页 > 游戏 > 手游 > 大连建设工程信息网办理流程_网页制作新手入门_推广公司哪家好_福州seo网站推广优化

大连建设工程信息网办理流程_网页制作新手入门_推广公司哪家好_福州seo网站推广优化

2024/12/23 15:59:46 来源:https://blog.csdn.net/qq_43319748/article/details/144467179  浏览:    关键词:大连建设工程信息网办理流程_网页制作新手入门_推广公司哪家好_福州seo网站推广优化
大连建设工程信息网办理流程_网页制作新手入门_推广公司哪家好_福州seo网站推广优化

比如:

html文件使用  /

接口路径使用  /api

首先配置文件里肯定配置范围最大的根路径

server:port: 80servlet:context-path: /

 过滤器代码

@Slf4j
public class RequestSeparationFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@SneakyThrows@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest httpRequest = (HttpServletRequest)request;HttpServletResponse httpResponse = (HttpServletResponse)response;String uri=httpRequest.getRequestURI();//请求路径String apiPath="/api";//接口路径前缀if(apiPath!=null&&httpRequest.getRequestURI().startsWith(apiPath+(apiPath.endsWith("/")?"":"/"))){/**  接口请求分离*/uri=uri.substring(apiPath.length());//删掉请求前缀api,这样接口代码写的时候注解映射不需要加apirequest.getRequestDispatcher(uri).forward(request, response);}else{/**  html资源请求分离*///正常文件资源,有后缀名的if(uri.substring(uri.lastIndexOf("/")).contains(".")){chain.doFilter(request, response);}//没有后缀名的,但是以斜杠结尾,自动补全请求文件路径:index.htmlelse if(uri.endsWith("/")){uri+="index.html";request.getRequestDispatcher(uri).forward(request, response);}else{//其他的必须重定向到带斜杠的地址,否则前台浏览器自己解析相对路径会出问题(对后台无影响)httpResponse.sendRedirect(httpRequest.getContextPath() + uri+"/");}}}@Overridepublic void destroy() {}
}

使用转发不会重新触发过滤器,而是直接进入controller层

注解映射也不需要加  /api   只需要写/api后面的路径即可 如 @RequestMapping("/login")

这样/login请求就会转发到  /login/index.html   

而/api/login请求会转发到/login接口上

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com