SpringMVC请求后台地址URL没有.*的几种实现方式
2016-06-29 20:55
656 查看
今天做项目,由于项目是通过扫二维码进入,二维码存放的地址不希望有 .do,而是http:xxxx:8080/xxx/yyy/zzz的格式(zzz为参数),但是项目其它请求url后面都必须要有.do,想到了三种解决方式,最终采用了最后一种方式。
对应url后面直接带参数,在这就不在详细说明,直接贴出代码:
接下来就是解决url地址不带.do的问题
第一种方式:直接在web.xml的url-pattern中配置“/”,即所有的请求都能通过。这样显然不好,所有的请求都能通过,不满足项目需求。web.xml 配置代码如下:
第二种方式:同样的在web.xml的url-pattern中配置“/”,但是在controller的
@RequestMapping中手动写上.do,由于前面的@RequestMapping中都没有写.do,所以修改起来比较花费时间,不建议用这种方法。
第二种方式:也是在web.xml的url-pattern中配置“/”,但是这次利用了拦截器功能,在spring中配置拦截器拦截所有的。
初次写博客,写的不好的地方请谅解。
通过记录工作中遇到的问题及解决思路,希望能帮助到各位网友,如内容需要改善或不理解的,欢迎及时沟通,共同进步!
对应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; }最终采用第三种方式实现了需求。
初次写博客,写的不好的地方请谅解。
通过记录工作中遇到的问题及解决思路,希望能帮助到各位网友,如内容需要改善或不理解的,欢迎及时沟通,共同进步!
相关文章推荐
- java-用HttpURLConnection发送Http请求.
- VBScript 剪贴板抓取URL并在浏览器中打开
- 用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
- asp获取URL参数的几种方法分析总结[原创]_应用技巧_脚本之家
- C#实现在网页中根据url截图并输出到网页的方法
- zend framework框架中url大小写问题解决方法
- url decode problem 解决方法
- php url地址栏传中文乱码解决方法集合
- 探讨:parse url解析URL,返回其组成部分
- C#实现自动识别URL网址的方法
- C#自定义针对URL地址的处理类实例
- JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
- ASP让url的中文显示为编码
- 关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
- JS使用ajax方法获取指定url的head信息中指定字段值的方法
- url中的特殊符号有什么含义(推荐)
- 关于URL中的特殊符号使用介绍
- JS来动态的修改url实现对url的增删查改
- js url传值中文乱码之解决之道
- js获取url传值的方法