博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
伪静态URLRewrite学习
阅读量:4587 次
发布时间:2019-06-09

本文共 3227 字,大约阅读时间需要 10 分钟。

UrlRewrite

 

UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apachemod_rewrite。将我们的动态网页地址转化为静态的地址,如htmlshtml,还可以隐藏网页的真正路径,

 

比如:有时候需要将xxx.com/news/ type1/001.jsp 转化成显示路径为xxx.com/news_type1_001.html

 

有点如下:

 

一:提高安全性,屏蔽内部的url结构.

 

二:美化URL

 

三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息.

 

下载地址: 官网下载

实例展示

 

实例应用版本urlrewritefilter-4.0.3. Tomcat服务器端口定制为80

 

1. 创建web项目,增加 urlrewritefilter-4.0.3.jar 到 WEB-INF/lib 

 

2. 在WEB-INF/web.xml 增加urlrewritefilter过滤器 (near the top above any servlet mappings)

 

  
UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
confReloadCheckInterval
60
confPath
/WEB-INF/urlrewrite.xml
logLevel
DEBUG
UrlRewriteFilter
/*
REQUEST
FORWARD
index.jsp
 

 

如果觉得/*这样的通配,并不符合我的预期,我只想对部分路径进行URL的重写,/*可能会造成我想象不到的或者是许微不足道的性能浪费.我把它改成了我需要的:

 

  
UrlRewriteFilter
/member/*
UrlRewriteFilter
/article/*
 

 

更多请参考: 

 

3. 因为上面我们通过confPath定义了配置文件的路径,其实该默认位置就是在/WEB-INF/urlrewrite.xml,为了更能说明问题,所以显示指定下

 

  
/page/(.*).html
/index.jsp?page=$1
^/user/([a-z]+)/([0-9]+)$
/index.jsp?nickname=$1&age=$2
  
 

 

此时我们就可以通过url进行模拟了.

 

注意:

 

1.urlrewrite.xmlutf-8.所以如果你要在rule上加note标签为中文的话,也一定是要utf-8.

 

2.UrlRewriteFilter 最好是配置在web.xml的前面filter,不然有可能对有些url转变失去作用.

 

3.urlrewrite属性:有仅只有一个,rule属性::至少一个.

 

4.在写rule的时,如果有多个参数时,中间的连接符号&应该是&

 

5.ruleurl重写规则,from是显示出来的地址,to是映射的实际地址,$1是重写参数,它的值与from中的正则表达式是一一对应,可以为多个,()里是匹配的正则表达式在正则表达式^指定字符的串开始,$为指定结束

 

6.对于中文参数要使用(.*)作为参数转义.

 

4.重写url演示

 

实例1

 

  
/page/(.*).html
/index.jsp?currentPage=$1
 

 

index.jsp中的内容

 

  
          <%              String current = request.getParameter("currentPage");           %>                    当前页码<%=current %>  
 

 

执行效果如下:

 

 

实例2

 

Rule规则

 

  
World Rule
^/user/([a-z]+)/([0-9]+)$
/index.jsp?nickname=$1&age=$2
 

 

index.jsp中的内容

 

  
          <%              String username = request.getParameter("nickname");              int age = Integer.parseInt(request.getParameter("age"));           %> 用户名: <%=username %> 年龄: <%=age %> 
 

 

执行效果如下:

 

 

所以,当我们在url中输入”http://localhost/urlrewrite/user/dennisit/23”时,实际执行的就是”http://localhost/urlrewrite/index.jsp?nickname=dennisit&age=23”

 

实例3

 

同理rule规则如下时

 

  
^/page/(.*)$
/page/$1.action
 

 

这样我访问的:urlrewrite/page/test

 

则跳转到:    

 

实例4 Rule规则

 

  
^/([a-z]+)/([a-z]+)/([a-z]+)$
/$1.do?method=$2&uuid=$3
 

 

index.jsp中添加如下链接:

 

  
跳转
 

 

当点击该链接,

 

地址栏中显示url是:

 

其实际执行路径是:

 

转至:【http://www.cnblogs.com/dennisit/p/3177108.html】

 

 

转载于:https://www.cnblogs.com/lengxiaofeng/p/8267508.html

你可能感兴趣的文章
背景音乐的实现
查看>>
灵玖软件:NLPIR大数据提供智能挖掘技术方案
查看>>
Selenium常用API的使用java语言之3-selenium3 浏览器驱动
查看>>
linux一些好用的命令
查看>>
实验 杨辉三角
查看>>
模型保存与恢复、自定义命令行参数
查看>>
tensorflow框架学习(一)——四个基础元素graph、session、tensor、op
查看>>
mySql分组排序
查看>>
I-think-3
查看>>
mybatis中封装结果集常见示例
查看>>
FREESWITCH 填坑指南
查看>>
ASP Err.Number 对应的Description
查看>>
归并排序
查看>>
md5加密通过URL传给后台
查看>>
eclipse安装activiti工作流插件
查看>>
MySQL系列教程(一)
查看>>
面向对象设计七大原则
查看>>
React-Redux之connect
查看>>
ubuntu下如何卸载nvidia显卡驱动?
查看>>
tp框架支付宝手机网页支付
查看>>