- 浏览: 487237 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
Source_野驴:
...
jsp静态化和伪静态化 -
zidanzzg:
很好的知识,找到了利用异或交换数值的理论支持,谢谢分享
XOR的性质和运算 -
ueseu:
引用(2) DomainDomain域名也是Cookie的一部 ...
Cookie的组成 -
ueseu:
引用Secure取true或者false值。如果为true,那 ...
Cookie的组成 -
liqi___123:
理解得很透彻,谢谢!!
ROLAP、MOLAP和HOLAP联机分析处理区别
首先说说为什么要静态化。
对于现在的Web Application来说,动态页面是占有绝对高的地位的,正因为有了动态化,才有了现在Web的丰富多彩,但是如同所有别的事实一样,好处往往都是有代价的。
为了产生出动态的效果,每一次对页面的请求都会要求服务器对页面进行编译或者执行,这些操作都很消耗系统资源。如果这期间还有和数据库的通讯,那么代价将会更大。
如果一个页面在一定的时间内,其内容没有发生改变,那么就不必为每一次对它的访问进行一次“新”的编译或执行。我们可以把它在这段没有发生改变的时间内的结果保存到一个静态的页面里面,然后每次访问这个页面时,就用刚才保存的静态页面进行回复。这样便能大大地减少系统资源的消耗,并且提高对客户的响应速度。而这个过程就称之为页面静态化。
现在所面临的问题就是如何在JSP中将页面的内容保存下来。
在访问JSP页面的时候,服务器会先将JSP文件编译为Servlet文件,然后对这个Servlet编译、执行,并最终把结果返回给客户端。而我们的任务就是要把这个最终生成的HTML静态页面保留下来,存放在服务器上。
解决的方法其实很简单。普通的对于JSP的访问,最终的数据流是回写到客户端的,如果我们把它重定向,让它回写到服务器上一个本地的文件,这样就能把JSP的执行结果保存起来,而这个文件就是我们想要得到的静态化的结果。
好了,说了那么多废话,现在说说具体怎么实现。
看过将JSP编译成的Servlet文件以后,可以知道这个Servlet是通过一个"JspWriter"类型的对象将数据回写给客户端的,而这个对象正是JSP里面的内置对象"out",现在我们只需要定义一个自己的类,让它继承"JspWriter"类,覆盖里面的输出相关函数,让数据都输出到一个指定的文件就可以了。
例如(省略了部分重载函数):
程序代码
import java.io.*; import javax.servlet.jsp.*; public class ConstPageWriter extends JspWriter { private PrintWriter pw; public ConstPageWriter(String fileName){ super(JspWriter.DEFAULT_BUFFER, false); try{ pw = new PrintWriter(fileName, "UTF-8"); }catch(Exception e){ e.printStackTrace(); } } @Override public void print(String arg0) throws IOException { pw.print(arg0); } ...... @Override public void println() throws IOException { pw.println(); } @Override public void println(Object arg0) throws IOException { pw.println(arg0); } ...... @Override public void write(char[] arg0, int arg1, int arg2) throws IOException { pw.write(arg0, arg1, arg2); } }
然后将需要静态化的页面写成如下形式:
程序代码
<% String fileName = "ConstPageName"; // 生成的静态页面文件名 if (notNeedUpdate){ // 判断是否需要更新 response.sendRedirect(fileName); return; } out = new ConstPageWriter(pageContext.getServletContext().getRealPath(fileName)); %> <% // Build this page,更新页面 %> <% out.close(); response.sendRedirect(fileName); %>
这样页面静态化基本上就算完成了,余下的操作就是处理何时需要更新。至于何时更新是跟特定的应用程序相关的,这里就不详细分析了。
JSP使用URLRewirte实现url地址伪静态化
在网上找了很多关于URLRewirte的使用,基本都是关于asp的,jsp的相关文档很少,而且大多写的很模糊,看了之后也是不清不楚,而且在项目中无法使用成功,鉴于此,自己整理了关于URLRewirte的用法.该方法只是实现了url的伪静态化,并不是真正的静态化.
工作环境:Eclipse3.2.2+MyEclipse_5.5.1+Tomcat5.0.28
URLRewirte版本:urlrewrite-2.6.0.jar
前提条件:有一个可以正常使用的web应用项目
URLRewirte的用处:
1.满足搜索引擎的要求
2.隐藏技术实现,提高网站的移植性
3.满足美感的要求(个人感觉这个用处太牵强)
项目部署
1.首先在http://tuckey.org/urlrewirte/下载urlrewirtefilter
2.解压所下载的文件,把urlrewrite-2.6.0.jar复制到项目的WebRoot/WEB-INF/lib/目录下,然后编译
3.把urlrewrite.xml复制到项目的WebRoot/WEB-INF/目录下
4.在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>WARN</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
5.需要配置urlrewrite.xml文件来实现url静态化,下面将详细说明
到这里相关的配置已经完成,下面看如何把动态地址静态化
1.普通url静态化
例如:要把http://localhost/prjtest/user/list.jsp转换成http://localhost/prjtest/user/list.html
这种是最简单的,当一个servlet跳转到list.jsp页面列出user列表时,在urlrewrite.xml中这样配置:
<rule> <from>^/user/list.html</from> <to>/user/list.jsp</to> </rule>
当请求/user/list.html这个页面时,实际上相当于请求/user/list.jsp页面
在servlet的跳转要这样写:
response.sendRedirect("./user/list.html");
2.带参数的url静态化
例如:要把http://localhost/prjtest/user/view.jsp?cid=1&cname=admin转换成
http://localhost/prjtest/user/view/1_admin.html
在urlrewrite.xml中这样配置:
<rule> <from>^/user/view/([0-9]+)_([a-z]+).html$</from> <to>/user/view.jsp?cid=$1&cname=$2</to> </rule>
当请求/user/view/1_admin.html这个页面时,实际上相当于请求/user/list.jsp?cid=1&cname=admin页面
在servlet的跳转要这样写(cid,cname为变量):
response.sendRedirect("./user/view/"+ cid +"_"+ cname +".html");
注意:配置文件中用"&"来代替"&"
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wezly/archive/2010/01/21/5220626.aspx
评论
111111`11`2`12`12`11111111111111111111111111111`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1``1111111111111111111`1111111111111111`11111111111````````````````````1``````````111111111111`11111111````````````111111111````````````````111111111````````1111111111111`1`1`1`1`1`1`1`1`1`1`1``1`111111111111`1`1```````````````1`1`1```````````1``````````````````````````1```````````1``````````````````111111111111`11111111111`q1`q1```````````````1```````````1``````````1111111111`11111111111``````````1`1`1`1`1`1`1````````````````1`````````````11111111111111111111111111111111111111111111111111111111111111111111111`11111111111111111111111111111111111111111111111````````````````1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1````````````````1```````````1`111111111111111```````````````````````````````````````````````````````````````1`11111111111111111111111```````````````````````````````````````````````````````````1``````````````````````````111111111111111111111111111`````````1````````1`1`1`1`1`1`1`````````````````1```````````1```````````````````````````````````````11``````````````1``````````1``````````````````````````````````````````````````````````````````1``````````````1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1``11111111111``````````1``````````1`1`1`1`1`1`1`1`1`1`1``111111111111111`1`1`1`1`1`1`1`1`1`1`1`1``````````````1```````````````1````````````````````````1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1```````````1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`1`wqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewesdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdsdzxxxxxxxxxxxxxxxxxxxxxxxxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcxcsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdffffffffffffffffffffffgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgfgdwr3423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423442342344444444444444444454545454545454545454545454545454545454545454534541234444444444444441234444444444234123423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423423412341234123412341234123412341234123412341234134133232412412412412412412412412412412412413242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242423412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123413435555555555533412323412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234234234234234234234234234234234234231444442341234123412341234123412341123444444444444444444444444423412341234123412341234123412341231444234123141234444444444444444231444444423142341234223123143421 |
发表评论
-
java String.getBytes()编码问题 (讲到实处了)
2012-12-12 11:26 798转载自: String.getBytes()的问 ... -
JSP中文验证码
2012-05-14 17:18 1248以上两篇文章的内容介绍了有关JSP中产生数字验证码跟中文验证 ... -
One-Jar之旅
2011-09-16 10:06 1771One-Jar之旅 1 ... -
Javamail中的常见中文乱码问题与解决办法
2011-09-09 09:48 1690在使用javamail api开发邮件服务系统时,我们常常会碰 ... -
理解Java ClassLoader机制
2011-07-28 11:24 1391再次阅读这篇文章时,有了更深的体会,特转载之。 理解Ja ... -
JAVA泛型简介
2011-07-22 13:41 1237另篇:http://www.java3z.com/cwbweb ... -
BCEL和Javassist的介绍
2011-07-18 10:49 1626BCEL 介绍: Byte Code E ... -
类加载器特技:OSGi代码生成
2011-07-18 10:08 814转自:http://www.oschina.n ... -
开源的java编译器jikes
2011-06-19 08:50 2253今天才知道java编译器还有个jikes这样的开源产品。 ... -
java的沙盒机制
2011-01-28 18:03 2049JAVA 的安全模型不同于传统的安全方法,传统的安全方法中 ... -
filter的调用顺序
2011-01-06 11:54 1294在一个大型项目中往往有多个servlet过滤器,但是这些ser ... -
JAVA操作COOKIE
2010-12-28 11:32 12781.设置Cookie Cookie cookie = ... -
关于volatile变量的理解
2010-12-12 13:21 1008前些日子在看些多线 ... -
关于Java 构造函数和继续特性的回顾
2010-12-06 09:21 1206java构造函数 java类库的设计者们通过提供 ... -
Java可变参数方法重载的错误3例
2010-12-05 23:28 1127JDK1.5引进了方法的可变参数,受到许多开发人员的青睐。 ... -
JDK1.5新特性
2010-12-05 23:19 728"JDK1.5"的一个重要主题就是 ... -
序列化中serialVersionUID的使用
2010-12-04 08:39 1392先来看一个例子: 定义一个bean: Java代码 ... -
Java 语言的 XPath API
2010-12-02 15:31 963如果要告诉别人买一加仑牛奶,您会怎么说?“请去买一加仑牛 ... -
java -verbose命令
2010-09-23 15:00 9407java -verbose[:class|gc|jni ... -
db2的jdbc驱动
2010-09-20 18:34 1283type1:jdbc-odbc桥 ...
相关推荐
**正文** ...总之,JSP静态化是提升网站性能的有效手段,它结合了动态内容的灵活性和静态页面的高效性。通过合理选用和配置静态化方案,可以显著改善用户体验,减轻服务器压力,同时有利于SEO优化。
本资料"jsp实现URL伪静态.rar"将详细介绍如何在JSP环境下实现这一功能。 首先,我们要理解动态URL与静态URL的区别。动态URL通常包含一系列参数,如问号(?)、等号(=)以及多个参数之间用与号(&)分隔,这样的URL...
通过以上步骤,可以在JSP项目中成功实现伪静态技术,从而提升用户体验和SEO效果。需要注意的是,伪静态技术虽然强大,但在实际应用中还需要考虑到性能问题,特别是在高并发的情况下,可能需要进一步优化配置。
所以这个问题摆在了我的面前,在网上一搜,关于这方面的资料不是很多,又很杂,关于这方面的知识,越来或多的程序员将会碰到,原来项目中这部分静态化的功能主要由我来做的,现在我将我的一点经验和大家分享。
"标签"中的"jsp 伪静态 java伪静态"进一步强调了这是关于JSP和Java环境下的伪静态实现。在Java中,可以使用Servlet Filter来拦截请求,解析URL路径,然后根据路径信息动态生成内容。这种方式不仅适用于JSP,也适用于...
**JSP静态化总结(JSP2HTML)** ...总之,JSP静态化是提高网站性能的有效手段,但实施时需权衡其优缺点,并根据具体业务需求进行选择和配置。通过合理的静态化策略,我们可以构建一个既快速又易于维护的Web应用。
Java JSP页面静态化是一种常见的优化技术,其主要目的是通过将动态内容转化为静态HTML页面,以减少对数据库的访问次数,提高网站的响应速度和用户体验。以下是对这一主题的详细阐述: 1. **JSP页面静态化原理**: ...
在IT行业中,JSP页面静态化是一种常见的优化技术,它将动态生成的JSP页面转换为静态的HTML页面,以提高网站的加载速度和搜索引擎的友好性。以下是JSP页面静态化最常用的三种方法的详细解释: 1. 模板替换法 这种...
总的来说,JSP实现伪静态是一个综合运用URL重写、Servlet和框架特性的过程。通过这种方式,我们可以使Java Web应用在保持动态功能的同时,获得静态URL的诸多优点。在深入理解这些知识点后,你可以根据实际项目需求...
总结来说,JSP页面静态化是提高Web应用性能的有效手段,它需要结合合适的策略和技术,如预渲染、实时转换和缓存,以达到最佳效果。在实际应用中,还需要关注URL管理、数据更新、SEO和安全性等方面,确保系统的稳定性...
Java/JSP网站实现伪静态是一种优化网站性能和搜索引擎优化(SEO)的方法,它将动态页面的URL转换为静态或看似静态的格式,如.html。这样做可以提高网站的加载速度,减少服务器负担,并使搜索引擎更容易抓取和理解...
**JSP页面静态化**是一种优化网站性能的技术,它的核心思想是将动态生成的HTML页面保存为静态文件,以便后续的访问可以直接返回静态页面,从而减少服务器资源的消耗,提高响应速度。 在Web应用程序中,动态页面是...
/jsp-rewrite/WebRoot/WEB-INF/urlrewrite.xml sql文件: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `userpwd` varchar(20)...
在Web开发领域,动态JSP页面静态化是一种常见的优化策略,其主要目的是提高网站的性能和用户体验。这一过程涉及到将原本由服务器动态生成的JSP页面转换为纯HTML页面,从而减少服务器处理请求的压力,加快页面加载...
本文将详细探讨“伪静态插件”以及如何在ASP环境下实现伪静态,并提供关于个性化后缀和网站后缀修改的一些建议。 首先,我们要理解什么是伪静态。静态网页是指内容固定、不依赖服务器动态生成的网页,而动态网页则...
包括使用freemarker和velocity两种技术来实现静态化。压缩包里面的文件有说明文档,说得很仔细,特别适合入门级别的人参考。还有freemarker和velocity开发所需要的jar包和插件。
6. **JSP静态化** JSP静态化是指将原本动态生成的JSP页面转换为纯HTML页面,减少服务器端的计算负担,提高页面加载速度。在FreeMarker中,我们可以预先生成HTML页面并存储在服务器上,当用户请求时直接返回静态页面...
【标题】中的“简单的伪静态”指的是在网页URL管理中的一种技术,通常用于将动态页面的URL转换为静态页面的外观,以提高网站的SEO优化和用户体验。在本例中,作者提到了一个基于JSP的伪静态实现,JSP(JavaServer ...
【资源介绍】:JSP静态化(已测试),多种方法 【备注】: 亲爱的下载用户: 谢谢您光临CSDN阿Q资源中心! 本中心发布的资源均是经过本人测试通过后才发布的,请放心下载。如果您有不清楚的问题或者建议,...