springmvc如何实现页面spring mvc伪静态化化

博客分类:
最近在做SEO方面的优化,使最代码的所有请求地址静态化,避免出现请求参数带问号。
其实很多文章在介绍伪静态时都通过http web server如nginx,apache来实现url rewrite,其实java层面实现该技术也是很简单,很多开源的技术框架也可以做到,比如tuckey.org的技术,今天给牛牛们展现下springmvc的urlrewrite技术。
拿最复杂的分享搜索分页排序的例子来说吧:
支持参数k,p,s,其中k是关键词,[\w\W]标示任意字符,这是我以前调用java正则的时候学到的一招,非常的强大,非常magic的写法.p是分页,s是排序
@RequestMapping(value = { "share/k{k:[\\w\\W]+}-p{p:\\d+}-s{s:\\d+}" }, method = { RequestMethod.GET })
public String shareSearchPSK(@PathVariable Integer p,
@PathVariable Integer s, @PathVariable String k, ModelMap model) {
Page&Project& projects = projectService.findAllByTitleOrTagsAndType(k,
ModuleConstants.PROJECT_TYPE_SHARE_CODE, p,
ParamConstants.DEFAULT_COUNT);
model.put("projects", projects);
model.put("key", k);
populateTopDatas(model);
return "project/share/search";
请求实例如下:http://www.zuidaima.com/share/k%E6%9C%80%E4%BB%A3%E7%A0%81-p1-s1.htm
可以参考线上的所有请求地址,已经在逐步伪静态化,老的请求地址全部都301到新的地址。
浏览: 206764 次
来自: 北京
[b][b][b][b][b][b][b][b][b][b][ ...
public class Test {
public sta ...
国外有个调研:人临死前最后悔的事情是什么?排在第一位的是:这一 ...
[img][/img][url][/url]
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
使用spring mvc开发的应用后台登录地址,如何实现动态配置,以防止扫描登录url,
就像wordpress的后台登录地址一样可以在后台自行修改。
有什么思路,可以实现?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在最新的spring3中有个PathVariable的东西,主要用途是提取RequestMapping url中包含的路径变量,目前多用于提供伪静态化页面url,举个例子:
@RequestMapping("/login/{loginId}.htm")
public String login(@PathVariable("loginId")Long loginId, ModelMap model){
上述示例中的loginId完全是一个可变量,你可以通过在后台配置这个loginId来实现后台登录地址的动态配置。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。SpringMVC如何进行URLrewrite?_百度知道
SpringMVC如何进行URLrewrite?
对于输出到页面的链接,可以按urlrewrite的规则进行修改,但是那种在后台通过mvc转向的jsp页面,如何处理?比如,现在输出一个model,转向了一个 xx.jsp,如何让浏览器显示为 xx.html??
我有更好的答案
其实是伪静态,很简单,一个urlrewrite.xml,一个urlrewrite包,配置好路径: ^/(.*).html /detaillist?id=$1 在web.xml里面配置 confPath /WEB-INF/urlrewrite.xml UrlRewriteFilter /*
这种我知道,这种是前端写超链接时,然后根据配置,解析到真正的地址。但是后端modelAndView呢?假设:你前端地址 /a/b/c,然后真正的处理是 /a/b/c.do,在这个do中要返回一个jsp: mv.addView(&a/d&),也就是返回页面是 /a/d.jsp,这时应该如何处理??因为我程序中只是返回了 mv,然后SPRING就转向了/a/d.jsp了,这时是不是还需要一个东西来处理一下??
为您推荐:
其他类似问题
urlrewrite的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。没有更多推荐了,
不良信息举报
举报内容:
通过过滤器生成静态页面-springmvc
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!博客分类:
  http://www.onlyfun.com/goods/company.jsp?companyId=455326 ==& http://www.onlyfun.com/company/455326.html
  (1)更好满足搜索引擎要求;
  (2)更美观,给用户带来更良好的体验;
  (3)安全性(页面,参数,技术)。
  (1)第三包urlrewrite;(2)Apache HTTP Server 2.x配制mod_proxy,Rewrite;(3)struts、springMVC reset风格等。
4.urlrewrite示例
  (1)下载2.6或3.X版jar包导至项目。下载地址: (以3.2为示例)。
  (2)解压下载文件,将urlrewritefilter-3.2.0\WEB-INF\lib\ urlrewrite-3.2.0.jar,导入工程。
  (3)将urlrewritefilter-3.2.0\WEB-INF\ urlrewrite.xml,加入至工程WEB-INF目录下。
  (4)web.xml添加如下代码(在urlrewrite.xml中可找到),拦截请求,对匹配的请求进行rewrite。
  &filter-name&UrlRewriteFilter&/filter-name&
  &filter-class&org.tuckey.web.filters.urlrewrite.UrlRewriteFilter&/filter-class&
  &init-param&
  &param-name&logLevel&/param-name&
  &param-value&WARN&/param-value&
  &/init-param&
&filter-mapping&
  &filter-name&UrlRewriteFilter&/filter-name&
  &url-pattern&/*&/url-pattern&
&/filter-mapping&
  (5)urlrewrite.xml中配制需实现静态化的请求。
5.urlrewrite.xml配制
  (1)rule配制
    处理伪静态化地址。如
    将请求为http://www.onlyfun.com/company/455326.html转至http://www.onlyfun.com/goods/company.jsp?companyId=455326进行处理,
    地址栏中仍显示为,在urlrewrite.xml中配制
  &from&^/company/([0-9]+).html$&/from&
  &to&/goods/company.jsp?companyId=$1&/to&
    &from&通过正则表达式对请求进行匹配&/from&
    &to&实际请求地址&/to&
  (2)outbound-rule配制 
    将页面的超链接选项转化为伪静态化,如:
    http://www.onlyfun.com/goods/company.jsp?companyId=455326 转化为 ,在urlrewrite.xml中配制 
&outbound-rule&
  &from&^/urlrewriteDemo/goods/company.jsp\?companyId=([0-9]+)$&/from&
  &to&/urlrewriteDemo/company/$1.html&/to&
&/outbound-rule&
    同时页面中的超链接需经过response.encodeUrl(url)转化,或采用&C:URL&标签进行转化。如:  
&c:url value="/goods/company.jsp?companyId=${goods.company.companyId }" var="tempUrl"&&/c:url&
&a href="${tempUrl }"& ${goods.company.companyName }&/a&
response.encodeURL(URL);
  (3)注意:转义&=&&
6.参考资料
  urlrewrite.xml配置
  正则表达式
  本地查看示例
7.apache整合404找不到地址问题
  httpd.conf中配制,伪路径由tomcat进行处理。
(544.8 KB)
下载次数: 116
浏览: 273368 次
来自: 北京
http://www.9958.pw/post/wenku 曾 ...
请教一下楼主,你们是如何解决使用MAgent时候,一台主Mem ...
中间那段关于“空隙”的解决方式很赞
比较实用,好好学习了一下
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 spring mvc 页面传值 的文章

 

随机推荐