- 浏览: 65998 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
java_Quartz计划任务配置
1:什么是UrlRewrite
UrlRewrite
是将静态页面转换为动态页面的一种技术.例如:您网站页面是http://www.yourdomain.com/news/docread.aspx?id=123。使用UrlRewrite转换后可以以http://www.yourdomain.com/news/123.html来访问.这样完成了网站伪静态的功能。其实,UrlRewrite技术就是一个过滤器。它将会过虑用户的所有请求,符合规则的便对其进行重定向。
2:UrlRewrite技术的优点
(1)、便于搜素引擎收录
由于某些搜索引擎不能支持动态页面的抓取,大量的信息就不能被潜在的用户搜索到。用UrlRewrite技术你可以把http://server/news.asp?id=111变成http://server/news/111.htm这样他们就会被搜索引擎收录了。
(2)、隐藏技术实现,提高网站的安全性
每个页面都挂着鲜明的.asp/.jsp这种开发语言的标记,可以一眼让人看出你的网站使用什么语言做的。而且在改变网站的语言的时候,你需要改动大量的链接。而且,一个页面修改了扩展名,他的pagerank也会随之消失,从头开始。我们可以用UrlRewrite技术隐藏我们的实现细节,这样修改移植都很方便,而且完全不损失pagerank。
(3)、美化URL
对于追求完美主义的网站设计师,即使是网页的地址也要看起来简洁明快。形如
http://server/news.asp?channel=3&id=111
的网页地址,肯定是上不了完美主义者的法眼的,用UrlRewrite技术,你可以把他变成http://server/news/3/111.htm 。
3、UrlRewrite技术的实现
(1)将UrlRewrite的jar包(urlrewrite-2.6.0.jar)拷贝到项目工程lib目录下。
(2)在工程web.xml文件中加入过滤器代码。如下:
<filter> <filter-name>rewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlR ewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>rewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(3)在工程WEB-INF目录下新建urlrewrite.xml文件,代码如下:
<?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>^/servlet/([a-z]+)/([a-z]+)\.html$</from> <to type="forward">/servlet/Guide?module=$1&submodu le=$2</to> </rule> <rule> <from>^/urlRewrite/([a-z]+)\.html$</from> <to type="forward">$1.jsp?module=$1</to> </rule> </urlrewrite>
其中:
<from></from>里的内容为地址栏里显示的地址。
<to></to>里的内容为真实的地址。
例如上面的例子:
地址栏里显示的地址为:
http://localhost:8080/Test/servlet/parm1/parm2.htm l
实际地址为:
http://localhost:8080/Test/servlet/Guide?module=pa rm1&submodule=parm2
地址栏里显示的地址为:
http://localhost:8080/Test/ urlRewrite /parm.html
实际地址为:
http://localhost:8080/Test/ urlRewrite/ parm.jsp
注1:页面中不能加目录,例如(urlRewrite)除非根目录下有urlRewrite目录,即:parm.jsp页面在urlRewrite目录下才可。
注2:urlRewrite技术主要是用正则表达式实现的匹配转换的,所以,要想了解学习urlRewrite技术需要了解一下java的正则表达式。
<outbound-rule> 相当于 </rule>的逆向
实例:
1. servlet:
package com.show; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ShowServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String s = request.getParameter("s"); String n = request.getParameter("n"); request.setAttribute("suc", s); request.setAttribute("name", n); request.getRequestDispatcher("suc.jsp").forward(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }
2. urlrewrite.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN" "http://tuckey.org/res/dtds/urlrewrite3.2.dtd"> <urlrewrite use-query-string="true"> <rule> <from>/show_(.*)_(.*)</from> <to>/show?s=$1&n=$2</to> </rule> <outbound-rule> <from>show\?s=(.*)&n=(.*)</from> <to>show_$1_$2</to> </outbound-rule> </urlrewrite>
3. web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <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> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>ShowServlet</servlet-name> <servlet-class>com.show.ShowServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShowServlet</servlet-name> <url-pattern>/show</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
4. index.jsp
<%@ page language="java" pageEncoding="GBK"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <a href="show_chill_Yang">aaaa</a> <a href="<c:url value="show?s=chill&n=Yang"></c:url>">bbbb</a> </body> </html>
5. suc.jsp
<%@ page language="java" pageEncoding="GBK"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'suc.jsp' starting page</title> </head> <body> <%=request.getAttribute("suc") %> <%=request.getAttribute("name") %> </body> </html>
注意:4. index.jsp 中的:<a
href="<c:url
value="show?s=chill&n=Yang"></c:url>">bbbb</a>
标签里的属性href必须写成<c:url> 不然
2. urlrewrite.xml
中的配置项<outbound-rule></outbound-rule>会不认的。
参考资料2:
使用UrlRewrite Filter对url进行美化转换处理
1.下载
http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.4-src.zip
http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.4.zip
相关联接:http://tuckey.org/urlrewrite/
2.解压得到urlrewrite-2.4.jar和urlrewrite.xml.
3.创建一个测试用的webapp.
先建立一个Servlet,来输出request.getQueryString().
并将这个servlet映射为/*
4.引入urlrewrite-2.4.jar,
编辑web.xml,加入
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <init-param> <param-name>logLevel</param-name> <param-value>DEBUG</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
5.在WEB-INF目录下创建urlrewrite.xml,然后定义一些url重写规则。
然后就可以在webapp中使用url重写了。
例如:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd"> <!-- https://urlrewrite.dev.java.net/manual/3.0 --> <urlrewrite> <rule> <from>/view/([0-9]+).html</from> <to type="forward">/test.jsp?str=$1</to> </rule> </urlrewrite>
6.有一个特殊的url,/rewrite-status是用来显示urlrewrite的状态信息的。
UrlRewrite
Filter确实简单实用且功能强大,不错。
Tomcat自带的Example里也有url重写的例子,不过功能比较弱。
发表评论
-
Java反射--getField和getDeclaredField区别
2013-03-28 18:00 4001getField获得类中指定的publi ... -
导出数据
2012-06-05 10:17 0protected void exportListToExec ... -
数据导出excel文件
2012-05-24 15:55 0protected void exportListToExec ... -
java building
2012-03-31 10:09 397<project name="**" ... -
Eclipse里启动Tomcat,配置内存大小
2012-03-29 11:20 1496一般安装完eclipse之后,在安装目录下你应该可以看到有 ... -
jsp页面加载flash
2012-01-12 17:40 2093所需的js文件 <script type=" ... -
Java开源项目—验证码kaptcha
2012-01-10 13:49 5668kaptcha的配置是通过web.xml完成的,所有的参数都有 ... -
jquery 实现iframe 自适应高度
2012-01-06 14:54 375下面的两种方法自选其一就行了。一个是放在和iframe ... -
防止表单重复提交
2011-12-28 16:09 434一。前言 你在任何一个比较专业的BBS都会看到这样的问题 ... -
java写cookie
2011-12-26 17:10 1215/** * 创建cookie * ... -
servlet生成验证码
2011-12-22 13:49 505package cn.com.trade.servlet; ... -
js实现兼容IE和FF的复制功能
2011-12-16 11:06 612function fn_copy(meinId) { va ... -
Tomcat内存溢出的原因
2011-12-14 13:08 322Tomcat内存溢出的原因 在生产环境中tomcat内存设置 ... -
Tomcat的增加虚拟内存
2011-12-12 18:51 949Win 操作系统 修改 tomcat/bin/cata ... -
java国际化资源文件中文转码
2011-12-05 16:42 793只要按照文件目录将里面的文件拷到Eclipse对应的目录下即可 ... -
spring security3.1 实现验证码自定义登录
2011-12-05 10:21 12191spring security 自定义登录: 1、自定义表结 ... -
正则表达式入门
2011-12-02 09:35 9851、基本入门 // ... -
java 资源文件
2011-12-02 09:39 9651、在src目录下创建application.properti ... -
java freemark发送模板邮件
2011-12-02 09:39 17361、需要的jar包 freemarker-2.3.15 ... -
spring 注解事物
2011-12-01 15:06 644@Transactional(propagation=Prop ...
相关推荐
java urlrewrite 所用的jar包及简单配置.
java urlrewrite 实现伪静态化 demo源码 http://www.cnblogs.com/liujun0930/archive/2011/12/05/2276553.html
这是我在工作中碰到的一个问题,在网上找了好久都没有找到相关的资料,经过研究,已经解决掉,拿出来和大家共享一下。
UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址。 优点 一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误...
java urlrewrite demo
对上一篇资源的补充(http://download.csdn.net/detail/cbai0722/5217430),有同学提到需要源码,现在打包一并发上来.ant-1.9.1.jar,slf4j-api-1.5.2.jar,slf4j-simple-1.5.2是使用源码的时候的用到的三个包,这三个...
urlrewrite 只支持单个配置文件,默认的配置文件为:/WEB-INF/urlrewrite.xml 现在对urlrewrite-3.2的源码进行了修改,使它能够支持多文件和通配符的形式加载自定义配置文件,即可以进行如下的配置: <param-name>...
urlrewirte下载的官方网站打不开了,网上大多数是2.6.0的版本,我重新上传一个正在使用的比较新的版本。
urlrewrite重定向,java实现
urlrewrite 没听说吗? 用于url美化的 不过好像大多数会考虑伪静态~~~~~! 这个demo是eclipse工程 包括全部包 实现静态模拟及传参
urlrewrite 4.0.3 jar
urlrewrite java 路径重写
JAVA实现URL rewrite伪静态_.docx
java伪静态简单实例 java urlrewrite 伪静态简单实例
urlrewrite重写demo,伪静态技术实现
一个很简单的使用urlrewrite实现静态页面的实现,只要把该文件解压后直接导入到eclipse里就行了,或者直接把WEB下的文件拷到TOMCAT的ROOT下去,即可运行。
网站url rewrite应用是非常广泛的,良好的url设计给用户带来的非常好的体验,同时也能吸引搜索引擎的注意。 一种rewrite称为一个规则,上面的例子就是3个规则。rewrite技术可以在代理服务器实现,或者可以在tomcat...
java和jsp很好的重定向和URL重写组件 <br>【JAVA/JSP/DB高手】QQ群:17398054 【Linux高手群】QQ群:26976792 地址:www.web-java.com<br>百度Blog:http://hi.baidu.com/zjqwll
java 伪静态 url_Rewrite中文帮助文档
java web项目做伪静态用的 jar包以及用法