java编程之伪静态(urlrewrite)

(Notice:欢迎交流和沟通,Wx:IT_Ezra,QQ 654303408。仅个人观点和个人理解有问题讨论也可联系我。)

对于伪静态,解释一下就是假的静态,说的官方点就是“地址重写,用户得到的全部地址都是经过处理后的URL地址”。

那么为什么要伪静态呢?

答:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多,另外还可以美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL,更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息

应用场景是什么?

最直接的就是SEO优化(上面“为什么要伪静态呢?”已提到)

效果图

java编程之伪静态(urlrewrite)_第1张图片

后台代码java编程之伪静态(urlrewrite)_第2张图片

java编程之伪静态(urlrewrite)_第3张图片

可以看到效果图,其实我们页面是没有15.html这个真实存在的html的,但是可以通过伪静态的方式,实现这种页面的访问。其本质有一种url重写和重定向的请求(个人理解)。

那么接下来给大家手把手教学实现:

1.导入依赖。都9012年了 大家都会用maven了吧。



	org.tuckey
	urlrewritefilter
	4.0.4

2.配置web.xml



	UrlRewriteFilter
	org.tuckey.web.filters.urlrewrite.UrlRewriteFilter


	UrlRewriteFilter
	/*
	REQUEST
	FORWARD


3.新建urlrewrite.xml文件。

其中路径根据controller的请求mapping的value,自行理解。



    ^/news/news.html$
    /news/news.jsp


    ^/news/([0-9]+).html$
    /news/news/?Id=$1


    ^/news/news/\?Id=([0-9]+)$
    /news/$1.html


在这里我给大家介绍一下请求的顺序。首先我们的url为http://localhost:8080/official/news/?id=15.html。先进入 outbound-rule里面,进行from,根据form的正则匹配规则,那么news/?id=15.html就被获取到。$1表示正则表达式里面 []的第一个参数,也就是[0-9]+, (ps:不懂正则匹配的可以自行学习),然后获取到这个之后进行“重写”,也就是to规则,变成了http://localhost:8080/official/news/15.html。这个规则就是图1里面的显示地址,然后再通过这个地址进行rule里面。根据from规则。匹配到,15.html,然后进行“重写”,变成http://localhost:8080/official/news/15。这样的一个地址实际上也就是一个请求,也是我们熟悉的springmvc的请求,然后就可以走后台服务器,进行数据交互,最终返给前段。

同样,还有一个重点就是,outbound-rule并不是必要的。如果你的请求格式一开始就是http://localhost:8080/official/news/15.html这种类型,那么就可以直接通过rule规则了,那么outbound-rule规则的意义在什么地方呢?那就是,他可以带参数,甚至多参数。通过&连接。举个例子http://localhost:8080/servlet/detail?magid=520&categoryId=205。那么outbound-rule就是


  /servlet/detail\?magid=([0-9]+)&categoryId=([0-9]+)
  /servlet/detail/$1_$2.html
 

怎么样,用java实现伪静态很简单吧。快去操作吧。

参考博客 https://blog.csdn.net/leroy008/article/details/8534199

参考博客 https://www.cnblogs.com/cat520/p/9579134.html

你可能感兴趣的:(java编程之伪静态(urlrewrite))