执行JSP后生成HTML静态文件
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="";
String name="";
ServletContext sc = getServletContext();
//你要访问的jsp文件,如index.jsp
//则你访问这个servlet时加参数.
//如http://localhost/toHtml?file_name=index
String file_name=request.getParameter("file_name");
//这是你要生成HTML的jsp文件,如
//http://localhost/index.jsp的执行结果.
url = "/"+file_name+".jsp";
//这是生成的html文件名,如index.htm.
name="/home/resin/resin-2.1.6/doc/"+file_name+".htm";
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() {
相关文档:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta NAME="Copyright" CONTENT="Copyright (c) 2009 LOADCOM Corporation. All Rights Reserved."> ......
一般,在很多应用系统中,用户多次提交重复数据是一个很严重的问题,会导致应用系统中很多垃圾数据,在Struts中框架中,有TOKEN机制来防止用户提交重复数据,这是一个很好的办法,但是,TOKEN机制必须得用到html:form标签,我不喜欢用这个标签,我觉得是一个累赘,所以我去掉HTML:FORM标签,重新定义TOK ......
JSP页面中一般有两类注释
1.html注释
形如<!--...................-->
它会同html标记一同发到客户端
2.jsp注释(3种)
形如<%--.............................--%>
它不会被发送到客户端,只用来注释服务器端的jsp文件,连jsp生成的servlet也没有注释进去,这也是大部分人使用的注释
形如<%//...... ......
JSP的指令是用来包含外部文件或是进行页面全局设置的;它的有三种,分别是page,include,taglib指令
1.page指令
形如<%@page 属性='值' 属性='值' ........ %>
属性有:
language=''java'' : 设定jsp页面的脚本语言,目前只支持java,默认是java
......
1.首先要保证jsp页面的编码格式、数据库编码格式、java文件保存格式、服务器server.xml中的URIEncoding编码格式保持一致
2 手动写一个过滤器,并且在web.xml文件中进行配置。
具体代码参考如下(调试通过):
package cn.com.model2.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.se ......