jsp页面转换成HTML
我现在正在做一个项目,所有的页面都是JSP的,但是要求把这些所有的jsp页面,用一个类或者是几个类,把前台的jsp的页面转换换成html页面供用户浏览,windows系统...
我现在正在做一个项目,所有的页面都是JSP的,但是要求把这些所有的jsp页面,用一个类或者是几个类,把前台的jsp的页面转换换成html页面供用户浏览,windows系统下,高分求介绍这块的视频教程,运行成功详细的源代码也可以,请发送至我的邮箱:wang_lei21@sina.com,网上复制过来的就不要回答了,谢谢!
展开
3个回答
推荐于2017-05-16
展开全部
搂主的问题是不是在用户第一次访问一个动态页面的时候将该动态页面保存为一个静态页面,当有用户再次访问该动态页面时只需要将保存的静态页面展示给用户即可.
这样可以减少服务器解释jsp代码的次数.
1、编写一个实现 Filter 接口的类,这个类命名为 CacheFilter.java
2、修改web.xml添加Cache Filter的配置参数,将jsp的过滤类指向 CacheFilter 类。
3、在 CacheFilter 类中获取请求,如果请求为需要缓存页面,首先先判断是否被缓存过,如果没有被缓存过便将请求的页面保存为静态页面文件。最后从文件中读取静态页面并写入请求的响应里。重复本次操作进行其它页面的缓存。
原理如上所诉,很简单
为了方便,在实现中使用了网上的 jspbook 包,对包中的程序进行了修改,具体实现步骤如下:
1、下载 jspbook 包,地址: http://onjava.com/onjava/2003/11/19/examples/jspbook.zip
2、解压缩 jspbook 包,修改 CacheFilter 类 和 CacheResponseWrapper 类。
CacheFilter 类
69行:name = name.substring(0,name.lastIndexOf("/")==-1?0:name.lastIndexOf("/"));
改为:String filesp = System.getProperty("file.separator");
name = name.substring(0, name.lastIndexOf(filesp) == -1 ? 0 : name.lastIndexOf(filesp));//修改 获得系统文件夹符号(源程序作者应该是外国人没有考虑中文符号)
75行:wrappedResponse.flushBuffer();// 增加 强制刷新
CacheResponseWrapper 类
35行:stream.flush();
改为: writer.flush();
3、建立动态web项目,建立com.jspbook包,将修改好的jspbook包中的类加入该包下面
4、将jspbook包中的jsp文件拷入web目录下
5、修改web.xml文件,下面是我写的项目的配置文件,请重点看带 filter 的标签
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns=" http://java.sun.com/xml/ns/j2ee" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
JSP2HTML</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- The Cache Filter -->
<filter>
<!-- 设计过滤处理类,生成静态页面 -->
<filter-name>CacheFilter</filter-name>
<filter-class>com.jspbook.CacheFilter</filter-class>
<!-- 不需要缓存的URL -->
<init-param>
<param-name>/TimeMonger.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
<init-param>
<param-name>/TestCache.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
<!-- 缓存超时时间, 单位为秒 -->
<init-param>
<param-name>cacheTimeout</param-name>
<param-value>600</param-value>
</init-param> <!-- 是否根据浏览器不同的地区设置进行缓存(生成的缓存文件为 test.jspid=1_zh_CN 的格式) -->
<init-param>
<param-name>locale-sensitive</param-name>
<param-value>true</param-value>
</init-param> </filter> <!-- 设置需要缓存的 URL, 可以使用通配符, 如 /*.jsp, 或者加入多个映射地址 -->
<!--
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>/news.jsp</url-pattern>
</filter-mapping>
-->
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
</web-app>6、配置web环境,运行web应用,你会发现由于 TestCache.jsp 和 TimeMonger.jsp 被配置成为 nocache 所以每次都回被重新加载。
<init-param>
<param-name>/TimeMonger.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
其它的jsp页面会被保存成为静态文件,然后将静态文件返回给请求的响应。
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
具体的缓存保存路径,请查找 CacheFilter 类 中53行的 String temp = tempDir.getAbsolutePath();
以上代码已经执行通过,如有问题请留言
这样可以减少服务器解释jsp代码的次数.
1、编写一个实现 Filter 接口的类,这个类命名为 CacheFilter.java
2、修改web.xml添加Cache Filter的配置参数,将jsp的过滤类指向 CacheFilter 类。
3、在 CacheFilter 类中获取请求,如果请求为需要缓存页面,首先先判断是否被缓存过,如果没有被缓存过便将请求的页面保存为静态页面文件。最后从文件中读取静态页面并写入请求的响应里。重复本次操作进行其它页面的缓存。
原理如上所诉,很简单
为了方便,在实现中使用了网上的 jspbook 包,对包中的程序进行了修改,具体实现步骤如下:
1、下载 jspbook 包,地址: http://onjava.com/onjava/2003/11/19/examples/jspbook.zip
2、解压缩 jspbook 包,修改 CacheFilter 类 和 CacheResponseWrapper 类。
CacheFilter 类
69行:name = name.substring(0,name.lastIndexOf("/")==-1?0:name.lastIndexOf("/"));
改为:String filesp = System.getProperty("file.separator");
name = name.substring(0, name.lastIndexOf(filesp) == -1 ? 0 : name.lastIndexOf(filesp));//修改 获得系统文件夹符号(源程序作者应该是外国人没有考虑中文符号)
75行:wrappedResponse.flushBuffer();// 增加 强制刷新
CacheResponseWrapper 类
35行:stream.flush();
改为: writer.flush();
3、建立动态web项目,建立com.jspbook包,将修改好的jspbook包中的类加入该包下面
4、将jspbook包中的jsp文件拷入web目录下
5、修改web.xml文件,下面是我写的项目的配置文件,请重点看带 filter 的标签
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns=" http://java.sun.com/xml/ns/j2ee" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
JSP2HTML</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- The Cache Filter -->
<filter>
<!-- 设计过滤处理类,生成静态页面 -->
<filter-name>CacheFilter</filter-name>
<filter-class>com.jspbook.CacheFilter</filter-class>
<!-- 不需要缓存的URL -->
<init-param>
<param-name>/TimeMonger.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
<init-param>
<param-name>/TestCache.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
<!-- 缓存超时时间, 单位为秒 -->
<init-param>
<param-name>cacheTimeout</param-name>
<param-value>600</param-value>
</init-param> <!-- 是否根据浏览器不同的地区设置进行缓存(生成的缓存文件为 test.jspid=1_zh_CN 的格式) -->
<init-param>
<param-name>locale-sensitive</param-name>
<param-value>true</param-value>
</init-param> </filter> <!-- 设置需要缓存的 URL, 可以使用通配符, 如 /*.jsp, 或者加入多个映射地址 -->
<!--
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>/news.jsp</url-pattern>
</filter-mapping>
-->
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
</web-app>6、配置web环境,运行web应用,你会发现由于 TestCache.jsp 和 TimeMonger.jsp 被配置成为 nocache 所以每次都回被重新加载。
<init-param>
<param-name>/TimeMonger.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
其它的jsp页面会被保存成为静态文件,然后将静态文件返回给请求的响应。
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
具体的缓存保存路径,请查找 CacheFilter 类 中53行的 String temp = tempDir.getAbsolutePath();
以上代码已经执行通过,如有问题请留言
2018-06-27 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
你可以新建一个jsp页面,将html中<html></html>标签中的内容替换jsp页面中
<html></html>内容即可。但注意jsp页面中的第一行:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 改为:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
这行意思是你用到了包和页面中显示的是中文。
<html></html>内容即可。但注意jsp页面中的第一行:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 改为:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
这行意思是你用到了包和页面中显示的是中文。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-17
展开全部
楼主的意思是,把jsp里的内容都显示在html上是吗?html上显示动态信息是吗?我知道用freemarker可以生产静态页面。视频教程我也没找到。不过载JavaEye技术网站上有很多相关的文章,建议去看看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询