Java高并发:静态页面生成方案-UrlRewrite.doc

上传人:jian****018 文档编号:9254456 上传时间:2020-04-04 格式:DOC 页数:9 大小:88.50KB
返回 下载 相关 举报
Java高并发:静态页面生成方案-UrlRewrite.doc_第1页
第1页 / 共9页
Java高并发:静态页面生成方案-UrlRewrite.doc_第2页
第2页 / 共9页
Java高并发:静态页面生成方案-UrlRewrite.doc_第3页
第3页 / 共9页
点击查看更多>>
资源描述
Java高并发:静态页面生成方案-UrlRewrite文/叶秋雨2013-02-27解决方案一、打开eclipse,新建web项目,项目名为urlrewrite。部署到tomcat以后,浏览器访问网址:http:/localhost:8080/urlrewrite/index.html,出现404错误。二、到urlrewrite官网下载最新jar包。网址:http:/tuckey.org/urlrewrite 。目前最新版为:urlrewritefilter-4.0.3.jar三、把urlrewritefilter-4.0.3.jar复制到项目的WebRoot/WEB-INF/lib/目录下 四、在web.xml文件中加入以下代码:UrlRewriteFilterorg.tuckey.web.filters.urlrewrite.UrlRewriteFilterUrlRewriteFilter/*REQUESTFORWARD五、在WebRoot/WEB-INF/目录下,新建urlrewrite.xml ,并加入以下代码(代码从官网上复制,如需深入了解,请自行查阅。): The rule means that requests to /test/status/ will be redirected to /rewrite-status the url will be rewritten. /test/status/ %context-path/rewrite-status The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url) the url /rewrite-status will be rewritten to /test/status/. The above rule and this outbound-rule means that end users should never see the url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks in your pages. /rewrite-status /test/status/ !- INSTALLATION in your web.xml add. UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN UrlRewriteFilter /* EXAMPLES Redirect one url /some/old/page.html /very/new/page.html Redirect a directory /some/olddir/(.*) /very/newdir/$1 Clean a url /products/(0-9+) /products/index.jsp?product_id=$1 eg, /products/1234 will be passed on to /products/index.jsp?product_id=1234 without the user noticing. Browser detection Mozilla/1-4 /some/page.html /some/page-for-old-browsers.html eg, will pass the request for /some/page.html on to /some/page-for-old-browsers.html only for older browsers whose user agent srtings match Mozilla/1, Mozilla/2, Mozilla/3 or Mozilla/4. Centralised browser detection Mozilla/1-4 moz eg, all requests will be checked against the condition and if matched request.setAttribute(browser, moz) will be called. - 6、 在urlrewrite.xml里面加入如下代码:/index.html/index.jspfrom 代表你在访问网站的时候,浏览器地址栏中显示的URL to 代表将浏览器中显示的URL转换后的地址,也就是你网站中真正访问的URL(注意路径问题:项目名字不要写到里面。)7、 重启tomcat,访问http:/localhost:8080/urlrewrite/index.html ,发现访问正常。8、 对于传值的url写法(单值或多值),具体配置如下:新建几个jsp页面。index.jsp代码如下:接受单个参数接受多个参数receiveParam.jsp代码如下:param1的值为:$param.param1receiveParams.jsp代码如下:param2的值为:$param.param2param3的值为:$param.param3urlrewrite.xml配置如下:/receiveParam-(.0-9*).html/receiveParam.jsp?param1=$1/receiveParams-(.0-9*)-(.0-9*).html/receiveParams.jsp?param2=$1&param3=$2注明:.0-9*为正则表达式的写法,不了解的请自行查阅相关资料。$1意思是匹配第一个正则表达式,$2意思是匹配第二个正则表达式,依此类推。“&”来代替“&”,多个值的时候依此类推。声明:部分内容来自互联网,请勿从事非法活动,否则一切后果与本人无关。如果用于商业用途,请自行排查漏洞等问题,否则造成的一切后果也与本人无关。 本人也刚踏入这行没几年,没写过多少技术文档,写的不好,还请大家见谅。如果在开发中遇到什么问题,或者认为有什么改进的地方,可以与本人联系。以下内容来自51cto,原文链接:http:/developer.51cto.com/art/201206/342021.htm 提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等。今天要说的就是生成静态页面的方式。这个也是我近期一直在搞的一个问题,近期在做使用html + servlet做个人网站,为什么是这2个东西呢?1、直接用servlet是为了保证网站能以最快的速度执行命令.个人总感觉像Struts hibernate spring之类的虽然方便但是效能带来的损耗不太能接收2、使用html同样是为了保证最快的反应速度,毕竟html 比jsp少了一层服务器执行.速度上要快的多一、在这里要先说一下什么是页面静态化:简单的说,我们如果访问一个链接 http:/abc.com/test.do,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显而易见的:因为每次请求服务器都会进行处理,如果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器 搞down 掉了。那么如何去避免呢?如果我们把对 test.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 http:/abc.com/test.html ,这样应用服务器的压力不就减少了?那么静态页面从哪里来呢?总不能让我们每个页面都手动处理吧?这里就牵涉到我们要讲解的内容了,静态页面生成方案. 我们需要的是自动的生成静态页面,当用户访问 http:/abc.com/test.do,会自动生成 test.html ,然后显示给用户。二、下面我们在简单介绍一下要想掌握页面静态化方案应该掌握的知识点1、 基础 URL Rewrite什么是 URL Rewrite 呢 ? URL 重写。用一个简单的例子来说明问题:输入网址http:/www.abc.com/test.do ,但是实际上访问的却是 http:/www.abc.com/test.action,那我们就可以说 URL 被重写了。这项技术应用广泛,有许多开源的工具可以实现这个功能。2、 基础 Servlet web.xml如果你还不知道 web.xml 中一个请求和一个 servlet 是如何匹配到一起的,那么请搜索一下 servlet 的文档。这可不是乱说呀,有很多人就认为 /xyz/*.do 这样的匹配方式能有效。如果你还不知道怎么编写一个 servlet ,那么请搜索一下如何编写 servlet。这可不是说笑呀,在各种集成工具漫天飞舞的今天,很多人都不会去从零编写一个 servlet了。三、基本的方案介绍 其中,对于 URL Rewriter的部分,可以使用收费或者开源的工具来实现,如果 url不是特别的复杂,可以考虑在 servlet 中实现,那么就是下面这个样子:以下内容来自百度百科,原文链接:http:/baike.baidu.com/view/2673841.htm UrlRewrite的含义UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址。优点一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息使用范围地址重写一般是用于将动态地址伪静态。如果本身就是静态就没必要了。地址重写后网站制作者可以通过输理地址名直接访问。使用方法首页,访问其官网:我下载的是最新的目前还处于Beta版的urlrewritefilter-3.2.0,下载后将其中的urlrewrite-3.2.0.jar扔到需使用此功能项目的lib目录中去其次,在web.xml中加入如下配置:UrlRewriteFilterorg.tuckey.web.filters.urlrewrite.UrlRewriteFilterlogLevelWARNUrlRewriteFilter/*REQUESTFORWARD其实,urlrewrite其实就是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向,具体的配置参数的使用方法见官方文档:配置好web.xml后将下载的urlrewritefilter-3.2.0中的urlrewrite.xml配置文件放在WEB-INF目录下,这样在使用urlrewritefilter时它便自动到该目录下读取相关的配置了,我配置了个简单的,代码如下: rule结点中form的规则默认使用的是正则表达式来匹配的,当用户访问服务器时的URL会与该配置相比较,如果符合规则就会按照下面to结点中的配置对其进行跳转,其默认是forward跳转,具体配置可见官网文档。1outbound-rule结点是服务器解析后的页面URL对外表现的形式,配置与上面的大体相同,如我一新闻链接代码在JSP中书写的形式如下: 经服务器解析后,最终显示在页面中的将变成: 新闻标题当用户点击此链接后urlrewrite便用通过rule的配置重跳转到真正的访问地址,这样便很好的隐藏了真实地址这其中有点是需要注意的,引用官网中的一段话:Using the example above JSPs with the codea href=nycwill outputnycOr JSTLa href=nycwill outputnycNote, If you are using JSTL (ie, c:url) this will work also.意思就是说需要转化的链接不能直接写在a标签中,需要写在c:url或其他服务器需要解析的变量中,这样才能对其重新显示1。在drupal中如果要开启Clean URLs,需要开启Apache里的urlrewrite组件。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!