国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Springmvc restful配置遇到的小坑

2019-11-26 14:04:04
字體:
來源:轉載
供稿:網友

首先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.javaimport 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風格,只接受a/b/c的請求* */public class ServletRequestFilter extends OncePerRequestFilter {@Overrideprotected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {String requestPath = request.getServletPath();//不用擔心會把靜態文件給攔截了,例如*.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);}}}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇江市| 山西省| 满洲里市| 肇源县| 西昌市| 金阳县| 孟州市| 洛南县| 井陉县| 水富县| 乐昌市| 汤原县| 温宿县| 乌拉特中旗| 余庆县| 靖远县| 当雄县| 延寿县| 双鸭山市| 韶关市| 鄂伦春自治旗| 广东省| 金阳县| 阳东县| 江安县| 宜黄县| 靖州| 龙里县| 万载县| 定西市| 资兴市| 五莲县| 彭州市| 河间市| 镇宁| 贺州市| 龙游县| 康定县| 浦江县| 法库县| 东乌珠穆沁旗|