最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springmvc restful配置遇到的小坑

 更新時間:2016年07月14日 10:55:58   作者:超人不會飛飛飛  
本文是小編給大家?guī)Я说腟pringmvc restful配置遇到的小小坑,小編給大家?guī)砹藛栴}原因及解決辦法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧

首先web.xml配置

<!-- spring-mvc -->
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

url-pattern 配置/即可,如果配置/*的話會出問提,連返回視圖jsp也會攔截,具體原因請看翻看源碼

問提:這樣配置的話,大家都會忽略一個問題,就是a/b/c可以訪問,但是a/b/c.do;a/b/c.mm;a/b/c.zz都可以訪問a/b/c的controller,在不修改源碼源碼的情況下,我們來

解決這個問題,雖然都是攔截了/這樣的請求,但是我們只讓a/b/c這樣的請求進入controller,帶有【.】的后綴的不讓他進入,直接去404頁面

解決辦法:

web.xml加入filte

<!-- 對url進行簡單的過濾 -->
<filter>
<filter-name>servletRequest</filter-name>
<filter-class>cn.tomcat.quickstart.common.filter.ServletRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>servletRequest</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
ServletRequestFilter.java
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.filter.OncePerRequestFilter;
/**
* 
* 對進來的url進行處理,放在filter最前面,springmvc <url-pattern>/</url-pattern>
* 默認攔截所有請求,ex:a/b/c.do,a/b/c.html,a/b/c.action,a/b/c
* 去掉帶后綴的訪問,模仿restful風(fēng)格,只接受a/b/c的請求
* 
*/
public class ServletRequestFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
String requestPath = request.getServletPath();
//不用擔(dān)心會把靜態(tài)文件給攔截了,例如*.js,*.css類似于這樣的,在web.xml做處理了
//所有請求帶有后綴【.】的直接去404,不接受這樣的請求
if(requestPath.lastIndexOf(".")!=-1){
request.getRequestDispatcher("/WEB-INF/pages/error/404.jsp").forward(request, response);
}else{
filterChain.doFilter(request, response);
}
}
}

帶有.結(jié)尾的直接go 404,哈哈,也許你會問要是這樣靜態(tài)文件不是也會被過濾掉了嗎?類似于*.js,*.css,.....N多這樣類型的文件

相關(guān)文章

  • 非maven項目快速轉(zhuǎn)換為maven項目的方法步驟

    非maven項目快速轉(zhuǎn)換為maven項目的方法步驟

    時候我們導(dǎo)入的項目并不是有maven來管理依賴的,而是要手動添加jar包,比較麻煩,本文主要介紹了非maven項目快速轉(zhuǎn)換為maven項目的方法步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Spring注解驅(qū)動之BeanPostProcessor后置處理器講解

    Spring注解驅(qū)動之BeanPostProcessor后置處理器講解

    這篇文章主要介紹了Spring注解驅(qū)動之BeanPostProcessor后置處理器講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Java之Rsync并發(fā)遷移數(shù)據(jù)并校驗詳解

    Java之Rsync并發(fā)遷移數(shù)據(jù)并校驗詳解

    這篇文章主要介紹了Java之Rsync并發(fā)遷移數(shù)據(jù)并校驗詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 最新評論

    儋州市| 英山县| 祁东县| 阿克| 苍梧县| 广德县| 监利县| 无为县| 多伦县| 安阳市| 离岛区| 平江县| 丰城市| 白城市| 永宁县| 永宁县| 盐城市| 屯昌县| 明星| 乐安县| 左云县| 沁水县| 忻城县| 嘉峪关市| 沂源县| 施甸县| 建平县| 广水市| 永兴县| 陕西省| 通州区| 潢川县| 中超| 蓬莱市| 姜堰市| 禄丰县| 当阳市| 崇州市| 上思县| 图片| 会泽县|