用JSP生成HTM网页,减轻数据库操作!
来源:互联网 发布:mac maven安装 编辑:程序博客网 时间:2024/06/05 12:01
此教程的功能: 利用servlet 实现抓取一个网页,把这个网页保存为.htm 比如抓取我们的主页index.jsp,在把他保存为htm,这样当使用了apache和tomcat分离后,我们的主页就由原来的index.jsp 变为 index.htm 了,当tomcat关闭的时候,您的主页也可以访问(实际上是所有静态文件还是一样可以访问)
可能还需要纠正的一个误区: 正常情况下用户在后台发布了一个新闻,会返回一个对话框提示说新闻增加成功!而利用我们这个教程您就不需要在返回一个对话框,直接返回一个网页,问下管理员 发布了新的新闻要不要把主页的htm也更新下,,用户点更新,你们就调用我们的这个servlet重新抓取index.jsp生成一个新的htm文件,事先htm和动态网页更新同步!!
大家跟着做就可以了,首先我们建立个toHtml.java 文件 在里面输入,不需要做任何修改,可以修改的地方我会告诉大家的
package
com.jetsum.mystatic;
import
java.io.ByteArrayOutputStream;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.io.OutputStreamWriter;
import
java.io.PrintWriter;
import
javax.servlet.RequestDispatcher;
import
javax.servlet.ServletContext;
import
javax.servlet.ServletException;
import
javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
javax.servlet.http.HttpServletResponseWrapper;
public
class
toHtml
extends
HttpServlet {
public
void
service(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
String url = request.getParameter(
"urls"
)!=
null
?request.getParameter(
"urls"
):
""
;
String xx = request.getParameter(
"xx"
)!=
null
?request.getParameter(
"xx"
):
""
;
String jishu = request.getParameter(
"i"
)!=
null
?request.getParameter(
"i"
):
""
;
int
i = Integer.valueOf(jishu).intValue();
i = i+
1
;
//url是要生成htm的jsp页面
String name =
""
;
response.setContentType(
"text/html;charset=GBK"
);
ServletContext sc = getServletContext();
System.out.println(
"request.getRealPath"
+request.getRealPath(
""
));
name = request.getRealPath(
""
) + xx;
RequestDispatcher rd = sc.getRequestDispatcher(url);
final
ByteArrayOutputStream os =
new
ByteArrayOutputStream();
final
ServletOutputStream stream =
new
ServletOutputStream()
{
public
void
write(
byte
[] data,
int
offset,
int
length) {
os.write(data, offset, length);
}
public
void
write(
int
b)
throws
IOException {
os.write(b);
}
};
final
PrintWriter pw =
new
PrintWriter(
new
OutputStreamWriter(os));
HttpServletResponse rep =
new
HttpServletResponseWrapper(response)
{
public
ServletOutputStream getOutputStream() {
return
stream;
}
public
PrintWriter getWriter() {
return
pw;
}
};
rd.include(request, rep);
pw.flush();
FileOutputStream fos =
new
FileOutputStream(name);
// 把jsp输出的内容写到xxx.htm
os.writeTo(fos);
fos.close();
PrintWriter out = response.getWriter();
out.print(
"<p align=center>首页生成成功!!!</p>"
);
");
}
}
把他放到WEB-INF/classes/com/jetsum/mystatic/toHtml文件夹下,编译为classes 用jdk1.6编译,编译成功后会出现3个文件 toHtml$1.class , toHtml$2.class , toHtml.class 生成好放在这里就可以了!!
接下来我们设置web.xml
<
servlet
>
<
servlet-name
>tohtm</
servlet-name
>
<
servlet-class
>com.jetsum.mystatic.toHtml</
servlet-class
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>tohtm</
servlet-name
>
<
url-pattern
>/web/tohtm</
url-pattern
>
</
servlet-mapping
>
这个配置好后需要重启tomcat
然后做个htm网页 在里面输入
<a href="http://www.您的域名.com/web/tohtm?urls=/index.jsp&xx=/index.htm&i=0">生成 首页 网页</a>
这里的urls=/index.jsp 是要被抓取的网页
xx=index.htm 是抓取后要生成的htm文件名称
i=0 是如果有分页的情况下自动抓取下一页,默认情况下为0就可以了
把这个htm网页放到您的空间里,打开浏览器,访问这个htm只要点下这个连接,他就会把您的index.jsp文件自动访问抓取保存为index.htm文件
这样就实现了,您的主页或者其他网页都生成为htm的功能
- 用JSP生成HTM网页,减轻数据库操作!
- asp网页生成静态htm文件的方法
- jsp动态生成静态网页
- JSP动态网页生成静态网页
- Freemarker: 把 .ftl 换成 .htm 或者 .jsp类型的, 是否也可以让他生成静态的 .htm 或者 .jsp ?
- JSP网页如何连接数据库?
- JSP操作Access数据库
- JSP中操作数据库
- jsp操作access数据库
- JSP使用数据库操作
- JSP数据库操作
- jsp操作数据库
- Jsp直接操作数据库
- 08. JSP 数据库操作
- word模版另存为网页(*.htm,*.html),转为jsp页面并加入数据后导出成word
- 网页模板技术研究:为什么要用模板生成网页而不用jsp等技术?
- asp.net生成htm
- .aspx生成.htm页面
- log4j
- windows下的PCL1.8.0编译-boost安装
- NLP算法之一(LDA理论和实际部分_ _邮件数据处理)
- Markdown进阶语法整理
- 说说测试驱动开发
- 用JSP生成HTM网页,减轻数据库操作!
- Ionic安装cordova-plugin-crosswalk-webview报错
- Android VectorDrawable -->SVG
- vue2.3.0笔记
- 1002 数塔取数问题
- Spring注解
- Makefile学习笔记<条件判断>
- Java自动发送带图片邮件(带附件)
- caffe与caffe安装教程