zoukankan      html  css  js  c++  java
  • SpringMVC请求后台地址URL没有.*的几种实现方式

    今天做项目,由于项目是通过扫二维码进入,二维码存放的地址不希望有 .do,而是http:xxxx:8080/xxx/yyy/zzz的格式(zzz为参数),但是项目其它请求url后面都必须要有.do,想到了三种解决方式,最终采用了最后一种方式。

           对应url后面直接带参数,在这就不在详细说明,直接贴出代码:

            @RequestMapping("/index/{id}")
    	public String index(Model model, @PathVariable("id")Integer id){
    		LOGGER.info(id);
    		return "/web/home/jump";
    	}
    

     接下来就是解决url地址不带.do的问题

    第一种方式:直接在web.xml的url-pattern中配置“/”,即所有的请求都能通过。这样显然不好,所有的请求都能通过,不满足项目需求。web.xml 配置代码如下:

    <servlet-mapping>
    	<servlet-name>springMvc</servlet-name>
    	<url-pattern>/</url-pattern>
       </servlet-mapping>
    

    第二种方式:同样的在web.xml的url-pattern中配置“/”,但是在controller的 @RequestMapping中手动写上.do,由于前面的@RequestMapping中都没有写.do,所以修改起来比较花费时间,不建议用这种方法。

    第三种方式:也是在web.xml的url-pattern中配置“/”,但是这次利用了拦截器功能,在spring中配置拦截器拦截所有的。

    <mvc:interceptors>
    		<mvc:interceptor>
    <!-- 			对所有的请求拦截使用/** ,对某个模块下的请求拦截使用:/myPath/* -->
    			<mvc:mapping path="/web/**" />
    			<mvc:exclude-mapping path="/web/*/download.do"/>
    			<bean class="com.iflytek.zhbs.common.filter.WebSecurityInterceptor" />
    		</mvc:interceptor>
    	</mvc:interceptors>
    

    再在拦截器的类里面做处理,具体做法及代码如下:

    //获取请求路径url
    			String url = (String)request.getRequestURI();
    			//获取请求的最佳匹配路径
    			String pattern = (String)request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
    			//路径后面不是.do或请求最佳匹配路径和controller中的@RequestMapping路径不一致,返回404页面
    			if(!url.endsWith(".do") && !pattern.equals("/web/index/{id}")){
    				response.sendError(HttpServletResponse.SC_NOT_FOUND);
    				return false;
    			}
    

    最终采用第三种方式实现了需求。

  • 相关阅读:
    Selenium-Xpath使用方法
    HTML基础之js
    HTML基础—DOM操作
    CSS基础知识总结二
    CSS基础知识总结之css样式引用的三种方式
    BZOJ 2329/2209 [HNOI2011]括号修复 (splay)
    BZOJ 1576 [USACO]安全路经Travel (树剖+线段树)
    BZOJ 2402 陶陶的难题II (01分数规划+树剖+线段树+凸包+二分)
    BZOJ 4044 Virus synthesis (回文自动机+dp)
    BZOJ 2342 [SHOI2011]双倍回文 (回文自动机)
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4463202.html
Copyright © 2011-2022 走看看