千家信息网

Java UrlRewrite如何实现网站URL重写

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍Java UrlRewrite如何实现网站URL重写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。现在大部分的网站和商城都会使用到URL重写,接触到这个,也是因
千家信息网最后更新 2026年11月03日Java UrlRewrite如何实现网站URL重写

这篇文章给大家介绍Java UrlRewrite如何实现网站URL重写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

现在大部分的网站和商城都会使用到URL重写,接触到这个,也是因为正在做的电子商务商城。URL重写,是将原有的URL采用另一种规则来显示,使得用户方便访问同时也屏蔽一些信息。

在此说下它的好处,在开发过程中,经常会遇到一些带了一大堆参数的URL,这样子,一方面显得烦乱,另一方面,一些信息直接显示在URL上,会有些安全性问题。使用URL重写,可以使带有参数的URL以一种较规则的方式体现,如:

/demoAction?id=1            ==>            /demo1.html

它也将本该在URL上显示出来的传参给隐蔽起来,隐藏了技术实现和敏感信息。另外,URL重写,也有利于搜索引擎的访问。

最近项目接触到的URL重写采用的是UrlRewrite,它主要是采用Filter技术在用户请求的时候对访问的URL进行处理,来实现重写的作用。

以下是UrlRewrite的使用实例(个人认为,UrlRewrite的官方文档写的还是比较全面易懂的)

UrlRewrite的导入:

UrlRewrite的导入非常简单,首先需在项目的lib文件夹中加入urlrewrite-3.2.0.jar包,然后,在web.xml中声明Filter

         UrlRewriteFilter         org.tuckey.web.filters.urlrewrite.UrlRewriteFilter                   UrlRewriteFilter         /*         REQUEST         FORWARD     

声明完filter后,需要在WEB-INF目录下新建一个urlrewrite.xml文件

    

该文件是UrlRewrite的规则制定文件,后续主要通过配置它来进行URL的重写。

至此,UrlRewrite的导入就完成了

UrlRewrite 导入成功后,接下来主要通过在urlrewrite.xml添加规则,就能实现URL的重写了。在此列举一些常用的规则。

          ^/demo/(\w+).html$          /Struts/$1 

rule 是urlrewrite下的子节点,是urlrewrite的主要规则节点,在它里面包含from 和to两个子节点,from表示请求的URL,to表示将转到的真实的URL。关于from,UrlRewrite有两种匹配的模式,一种是正则表达式匹 配,一种的通配符匹配,如上就是正则表达式匹配。当进行匹配的时候,匹配部分的正则可以被提取为参数进行传递

如上规则设置,当客户端访问的网址是http://127.0.0.1:8080/Struts/demo/hello.html 的时候,因为 匹配部分是hello,所以它跳转到的是http://127.0.0.1:8080/Struts/hello 上。当网址规则中有多个正则的时候,匹 配的参数也会随之增加。如:

          ^/demo1/(\w+)/(\w+).html$          /Struts/$1.action?age=$2 

rule 的默认匹配方式是正则表达式,但是,有时候也可以以通配符的形式进行匹配。在编写规则的时候,只需要在rule添加一个match-type="wildcard" 的属性即可。

          /demo2/*/*          /Struts/$1.action?age=$2 

关于to节点,UrlRewrite提供了多种网址跳转方式,如forward和redirect,这两种方式,和大部分MVC框架提供的功能一样,在此不再赘述。

除了支持指定规则的跳转外,UrlRewrite还支持当匹配规则的时候执行某个对象的某个函数

          ^/demo3/(\w+)/(\w+).html$                    /Struts/$1.action?age=$2 

如上述设置,要实现匹配规则是执行某个函数,需要添加多一个run节点,在节点上面添加对应的类属性和方法属性。同时,对应的类必须继承 RewriteRule类,执行的方法必须传入两个参数,分别是HttpServletRequest 和HttpServletResponse

public class Demo extends RewriteRule{      public void log(HttpServletRequest request,HttpServletResponse response){         System.out.println("haha1");     }      public void log2(HttpServletRequest request,HttpServletResponse response){         System.out.println("haha2");     } }

这样,当客户端输入的网址***次匹配到指定规则的时候,UrlRewrite就会执行对应的函数,该函数只在***次匹配成功的时候执行。

如果想要每次匹配规则都执行某函数,可以在urlrewrite添加class-rule子节点,该节点设置后,每次匹配规则后,指定的函数都会执行一次。

除了对请求的URL进行处理外,UrlRewrite还提供了对返回页面中的地址进行重写的功能。使用rule是对用户输入的url进行处理,但是开发过程中,经常需要在页面中也添加一些网址请求,UrlRewrite可以通过规则,对页面中的网址也进行重写。如:

          /(\w+).action\?id=(\w+)$          /$1.html 

在UrlRewrite中添加该规则

这样可以隐藏了许多开发中的技术,较为安全。

以上,就是UrlRewrite的一些常见的用法。关于UrlRewrite,网上也有人说这个会影响性能,因为在每次请求的时候都需要经过换一次过滤,但是这个还是要见仁见智,毕竟,使用URL重写,对网址还是有好处的。

关于Java UrlRewrite如何实现网站URL重写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

规则 时候 节点 网址 函数 参数 正则 文件 方式 网站 信息 如上 属性 技术 用户 表达式 还是 页面 处理 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 蓝思科技飞鸽互联网 互联网属科技 上海亿帐通互联网科技 科技大学互联网专业好不好 北京大学互联网科技怎么样 互联网科技公司实习生 花神(南京)互联网科技有限公司 青岛科技大学互联网大赛研究生 卓翼科技产业互联网合作 工业互联网展湾科技股份有限公司 众安科技工业互联网合作 云南省自由互联网科技有限公司 全球科技与互联网公司市值变化 互联网科技企业商标注意事项 马化腾互联网科技教学 玉溪新华互联网科技怎么选 北京品多多互联网科技有限公司 网互联网络科技 宁波允成互联网科技有限公司 亿人帮互联网科技有限公司 广州淘业互联网络科技 互联网科技实习生岗位职责 千方科技属于互联网企业吗 高科技互联网套路 风投北京互联网科技 济南小医互联网科技有限公司招聘 上海同邻互联网科技有限公司规模 互联网界的黑科技 科技互联网公司两年变化
0