BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #18015同步于 2011/4/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

Servlet。自动让URL以/结尾

wks
2011/4/26镜像同步1 回复
用Spring MVC实现的。网站的URL是按照RESTful的原则设计的。URL代表资源。 举个例子: http://bbs.byr.cn/board/Java 或者 http://bbs.byr.cn/board/Java/ 表示一个版面,是Java版。 现在,由于内部的实现的问题,如果地址不以'/'结尾,可能会出问题。 因为地址被映射到这样的一个Controller: @Controller @RequestMapping("/board/Java") class JavaController { @("/") public ModelAndView showThreads() { ... } } 所以,showThreads()对应了"/board/Java/",最后的"/"是必须的。 所以,前者: http://bbs.byr.cn/board/Java 会返回404错误,而后者 http://bbs.byr.cn/board/Java/ 就被映射到showThreads()。 我想,干脆这样:让这个Web应用也像Django那样自动让所有的URL(的path部分)都以'/'结尾。 如果用户访问了 http://bbs.byr.cn/board/Java 就返回: HTTP/1.1 301 Moved Permanently Location: http://bbs.byr.cn/board/Java/ 如果用户访问了 http://bbs.byr.cn/board/Java?p=3 (注意query部分的p=3)就返回: HTTP/1.1 301 Moved Permanently Location: http://bbs.byr.cn/board/Java/?p=3 Java Servlet有这样的现有工具吗,比如Spring里面?我怕又重新发明轮子。
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
seaver机器人#1 · 2011/4/26
一般没有/会导致redirect 【 在 wks 的大作中提到: 】 : 用Spring MVC实现的。网站的URL是按照RESTful的原则设计的。URL代表资源。 : 举个例子: : http://bbs.byr.cn/board/Java : ...................