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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Java高并发:静态页面生成方案--UrlRewrite文/叶秋雨2013-02-27解决方案一、打开eclipse,新建web项目,项目名为urlrewrite。部署到tomcat以后,浏览器访问网址:,出现404错误。二、到urlrewrite官网下载最新jar包。网址:。目前最新版为:urlrewritefilter-4.0.3.jar三、把urlrewritefilter-4.0.3.jar复制到项目的WebRoot/WEB-INF/lib/目录下四、在web.xml文件中加入以下代码:filterfilter-nameUrlRewriteFilter/filter-namefilter-classorg.tuckey.web.filters.urlrewrite.UrlRewriteFilter/filter-class/filterfilter-mappingfilter-nameUrlRewriteFilter/filter-nameurl-pattern/*/url-patterndispatcherREQUEST/dispatcherdispatcherFORWARD/dispatcher/filter-mapping五、在WebRoot/WEB-INF/目录下,新建urlrewrite.xml,并加入以下代码(代码从官网上复制,如需深入了解,请自行查阅。):?xmlversion=1.0encoding=utf-8?!DOCTYPEurlrewrite!--ConfigurationfileforUrlRewriteFilter=falseuse-context=falseruleenabled=truenoteTherulemeansthatrequeststo/test/status/willberedirectedto/rewrite-statustheurlwillberewritten./notefromcasesensitive=false/test/status//fromtotype=redirectlast=falseqsappend=false%{context-path}/rewrite-status/to/ruleoutbound-ruleenabled=trueencodefirst=falsenoteTheoutbound-rulespecifiesthatwhenresponse.encodeURLiscalled(ifyouareusingJSTLc:url)theurl/rewrite-statuswillberewrittento/test/status/.Theaboveruleandthisoutbound-rulemeansthatendusersshouldneverseetheurl/rewrite-statusonly/test/status/bothinthierlocationbarandinhyperlinksinyourpages./notefromcasesensitive=false/rewrite-status/fromtotype=forwardlast=falseqsappend=false/test/status//to/outbound-rule!--INSTALLATIONinyourweb.xmladd...filterfilter-nameUrlRewriteFilter/filter-namefilter-classorg.tuckey.web.filters.urlrewrite.UrlRewriteFilter/filter-classinit-paramparam-namelogLevel/param-nameparam-valueWARN/param-value/init-param/filterfilter-mappingfilter-nameUrlRewriteFilter/filter-nameurl-pattern/*/url-pattern/filter-mappingEXAMPLESRedirectoneurlrulefrom/some/old/page.html/fromtotype=redirect/very/new/page.html/to/ruleRedirectadirectoryrulefrom/some/olddir/(.*)/fromtotype=redirect/very/newdir/$1/to/ruleCleanaurlrulefrom/products/([0-9]+)/fromto/products/index.jsp?product_id=$1/to/ruleeg,/products/1234willbepassedonto/products/index.jsp?product_id=1234withouttheusernoticing.Browserdetectionruleconditionname=user-agentMozilla/[1-4]/conditionfrom/some/page.html/fromto/some/page-for-old-browsers.html/to/ruleeg,willpasstherequestfor/some/page.htmlonto/some/page-for-old-browsers.htmlonlyforolderbrowserswhoseuseragentsrtingsmatchMozilla/1,Mozilla/2,Mozilla/3orMozilla/4.Centralisedbrowserdetectionruleconditionname=user-agentMozilla/[1-4]/conditionsettype=requestname=browsermoz/set/ruleeg,allrequestswillbecheckedagainsttheconditionandifmatchedrequest.setAttribute(browser,moz)willbecalled.--/urlrewrite六、在urlrewrite.xml里面加入如下代码:!--对应单个页面--rulefrom^/index.html/fromto/index.jsp/to/rulefrom代表你在访问网站的时候,浏览器地址栏中显示的URLto代表将浏览器中显示的URL转换后的地址,也就是你网站中真正访问的URL(注意路径问题:项目名字不要写到里面。)七、重启tomcat,访问,发现访问正常。八、对于传值的url写法(单值或多值),具体配置如下:新建几个jsp页面。index.jsp代码如下:bodystyle=font-size:20px;text-align:center;ahref=receiveParam-p1.html接受单个参数/abr/br/ahref=receiveParams-p2-p3.html接受多个参数/a/bodyreceiveParam.jsp代码如下:bodystyle=font-size:20px;text-align:center;param1的值为:${param.param1}/bodyreceiveParams.jsp代码如下:bodystyle=font-size:20px;text-align:center;param2的值为:${param.param2}br/br/param3的值为:${param.param3}/bodyurlrewrite.xml配置如下:!--对应单值传递--rulefrom^/receiveParam-(.[0-9]*).html/fromto/receiveParam.jsp?param1=$1/to/rule!--对应多值传递--rulefrom^/receiveParams-(.[0-9]*)-(.[0-9]*).html/fromto/receiveParams.jsp?param2=$1&param3=$2/to/rule注明:.[0-9]*为正则表达式的写法,不了解的请自行查阅相关资料。$1意思是匹配第一个正则表达式,$2意思是匹配第二个正则表达式,依此类推。“&”来代替“&”,多个值的时候依此类推。声明:部分内容来自互联网,请勿从事非法活动,否则一切后果与本人无关。如果用于商业用途,请自行排查漏洞等问题,否则造成的一切后果也与本人无关。本人也刚踏入这行没几年,没写过多少技术文档,写的不好,还请大家见谅。如果在开发中遇到什么问题,或者认为有什么改进的地方,可以与本人联系。以下内容来自51cto,原文链接:提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等。今天要说的就是生成静态页面的方式。这个也是我近期一直在搞的一个问题,近期在做使用html+servlet做个人网站,为什么是这2个东西呢?1、直接用servlet是为了保证网站能以最快的速度执行命令..个人总感觉像Strutshibernatespring之类的虽然方便但是效能带来的损耗不太能接收2、使用html同样是为了保证最快的反应速度,毕竟html比jsp少了一层服务器执行.速度上要快的多一、在这里要先说一下什么是页面静态化:简单的说,我们如果访问一个链接,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显而易见的:因为每次请求服务器都会进行处理,如果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器搞down掉了。那么如何去避免呢?如果我们把对test.do请求后的结果保存成一个html文件,然后每次用户都去访问,这样应用服务器的压力不就减少了?那么静态页面从哪里来呢?总不能让我们每个页面都手动处理吧?这里就牵涉到我们要讲解的内容了,静态页面生成方案...我们需要的是自动的生成静态页面,当用户访问,会自动生成test.html,然后显示给用户。二、下面我们在简单介绍一下要想掌握页面静态化方案应该掌握的知识点1、基础—URLRewrite什么是URLRewrite呢?URL重写。用一个简单的例子来说明问题:输入网址,但是实际上访问的却是,那我们就可以说URL被重写了。这项技术应用广泛,有许多开源的工具可以实现这个功能。2、基础—Servletweb.xml如果你还不知道web.xml中一个请求和一个servlet是如何

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功