java web开发使用伪静态

简介:  现在UrlRewriter技术有两个技术平台 的,一个就是在Java方向的,另一个就是.NET方向的。今天我们讲的是Java方向的应用。 首先让我们了解它的工作原理,说白了它就是一个简 单的过滤器(Filter) ,看看源码你就会很快的明白,它就是通过我们在jsp中常用的两个方法实现的forward(),sendRedirect(). 下面我们就快速 的为你的网站搭
 现在UrlRewriter技术有两个技术平台 的,一个就是在Java方向的,另一个就是.NET方向的。今天我们讲的是Java方向的应用。
首先让我们了解它的工作原理,说白了它就是一个简 单的过滤器(Filter) ,看看源码你就会很快的明白,它就是通过我们在jsp中常用的两个方法实现的forward(),sendRedirect().
下面我们就快速 的为你的网站搭建Url重写技术。
第一步:下载urlrewrite-2.6.0.现在最新版本是3.1 的。(http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip
http://urlrewritefilter.googlecode.com /files/urlrewritefilter-3.1.0.zip把urlrewrite-2.6.0.jar拷到classpath下。
第 二步:在WEB-INF目录下建一个urlrewrite.xml文件。
第三步:在web.xml中初始化。加上下面的代码:
<!-- Set URL Rewrite-->
< filter>
< filter-name>UrlRewriteFilter</filter-name>
< filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
< /filter-class>
< /filter>
< filter-mapping>
< filter-name>UrlRewriteFilter</filter-name>
< url-pattern>/*</url-pattern>
< /filter-mapping>
最 后我要简单的讲一下常用的两个配置规则.以下就是简单的urlrewrite.xml配置片段。不要习惯Java的命名法把它写成 urlRewrite.xml,这样即使你加上
<init-param>
< param-name>confPath</param-name>
< param-value>/WEB-INF/urlRewrite.xml</param-value>
< /init-param>
在 启动的服务器的时候还是会报错的,因为源码中必须是全小写的(urlrewrite.xml)且只能放到WEB-INF下面。
<?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
< urlrewrite>
< rule>
< from>^/(/w+)/(/w+)/page_(/d+)/.html$</from>
< to type="forward">/$1.htm?category=$2&amp;page=$3</to>
< /rule>
< rule>
< from>^/rss/yahoo/.html$</from>
< to type="redirect"> http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/W3CSSiteFeed
< /to>
< /rule>
< /urlrewrite>
所 有的规则配置都写在这里。第一个常用个规则就是站内的简单重写。

<rule>
< from></from>
< to type="forward></to>
< /rule>
< from></from> 写上你自己定义的访问地址,<to type="forward></to>就是实际的访问地址。比如我们实际的访问地址是:http://yousite.com /entity.htm ?category=user&page=2.而我们想把它重写为http://yousite.com/entity/uesr /page_2.html。这样看起来比我们实际的要好看的多。我们就应该这样的写: 
<rule>
< from>^/(/w+)/(/w+)/page_(/d+)/.html$</from>
< to type="forward">/$1.htm?category=$2&amp;page=$3</to>
< /rule>
简 单的介绍一下常用的正规表示式: 



代码
说明




.
匹配除换行符以 外的任意字符


/w
匹配字母或数字或下划线或汉字


/s
匹配任意的空白符


/d
匹 配数字


/b
匹配单词的开始或结束


^
匹配字符串的开始


$
匹 配字符串的结束



常用的&amp;要用 &amp;来表示。$1,$2代表与你配置正规表达式/(/w+)/(/w+)/相对应的参数。<to type="forward">默认的是 type="forward".
另一个常用的规则就是连接外部的网站。就要用到。<to type="redirect">
< rule>
< from>^/rss/yahoo/.html$</from>
< to type="redirect"> http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/MySiteFeed
< /to>
< /rule>
< !--v:3.2-->

目录
相关文章
|
10月前
|
机器学习/深度学习 人工智能 算法
智能体会是泡沫吗?AI七十年进化告诉你,2025年才是真正的拐点
AI历经三次浪潮,2025年迎来智能体元年。从规则系统到深度学习,智能体终让AI具备记忆、规划与行动力。国家政策、大厂布局、巨头共识齐发力,智能体正重塑产业格局。理解其运行逻辑,找准落地场景,方能抢占时代先机。
|
10月前
|
人工智能 编解码 算法
《3D植被建模痛点解决:开放世界层级实例化+GPU批处理优化方案》
本文记录开放世界生存游戏“迷雾森林”场景3D植被建模的技术攻坚过程。初期因静态烘焙方案,出现近景纹理拉伸、中景阴影脱节、显存过载闪退等问题,后转向“动态层级实例化”,按空间、模型、材质三维度拆分植被资源,搭建层级参数库。面对实例化数量过载,通过材质分组批处理与GPU实例化优化,将Draw Call从3200次降至210次,帧率回升至58帧。后续开发动态环境响应模块,实现植被随天气调整形态,并优化地形采样算法解决穿模悬浮问题。最终沉淀“四维协同”建模逻辑,还探索AI辅助LOD生成,为开放世界3D资产开发提供可复用路径。
587 6
|
前端开发 JavaScript
如何使用CSS过渡实现页面元素的淡入淡出效果?
如何使用CSS过渡实现页面元素的淡入淡出效果?
711 79
|
自动驾驶 物联网 5G
什么是 5G 以及它如何工作?
【8月更文挑战第23天】
3730 0
|
数据采集 人工智能 数据挖掘
Python 编程基础与实战:从入门到精通
本文介绍Python编程语言,涵盖基础语法、进阶特性及实战项目。从变量、数据类型、运算符、控制结构到函数、列表、字典等基础知识,再到列表推导式、生成器、装饰器和面向对象编程等高级特性,逐步深入。同时,通过简单计算器和Web爬虫两个实战项目,帮助读者掌握Python的应用技巧。最后,提供进一步学习资源,助你在Python编程领域不断进步。
|
存储 缓存 弹性计算
聚宽揭秘:为什么量化研究员喜欢在Kubernetes上使用Fluid简化数据管理?
通过引入阿里云的 ack-fluid 技术,基于 JindoRuntime 的分布式缓存加速,解决了多数据源、弹性扩展、动态挂载等挑战,显著提升了数据处理效率和资源利用率,降低运营成本。这一方案帮助量化研究员实现了更高效的开发和实验流程,为未来的优化和扩展奠定了基础。
|
人工智能 自然语言处理 搜索推荐
智能语音助手的发展与未来:开启人机交互的新篇章
智能语音助手的发展与未来:开启人机交互的新篇章
2396 28
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
1358 2
|
算法 C++
【算法解题思想】动态规划+深度优先搜索(C/C++)
【算法解题思想】动态规划+深度优先搜索(C/C++)

热门文章

最新文章