packagecom.zh.jsp.filter;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.HttpURLConnection;importjava.net.URL;importjavax.servlet.ServletConfig;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/*** @name
*@authorzhanghao
* @create date Nov 1, 2011*/
public class ConversionServlet extendsHttpServlet {protected void doGet(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException {//设置输出格式
response.setContentType("text/html");
PrintWriter out=response.getWriter();//获取请求的URL
String requestUrl = request.getParameter("name");//指定对应JSP的HTML名称
String name = requestUrl.substring(requestUrl.lastIndexOf("/") + 1,requestUrl.lastIndexOf("."));//判断是否存在对应的HTML文件
File file = new File(request.getRealPath("/") + name + ".html");if (!file.exists()) {//--------如果不存在对应的HTML文件
try{//创建HTML文件
file.createNewFile();//将JSP的内容写入对应的HTML文件内
InputStream in;
StringBuffer sb= new StringBuffer("");//注意这里,不能直接访问请求的URL,如果直接访问的话,会陷入死循环
URL url = new java.net.URL(requestUrl.toString() + "?type=11");
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0");
connection.connect();
in=connection.getInputStream();
java.io.BufferedReader breader= new BufferedReader(new InputStreamReader(in, "UTF-8"));
String currentLine;
FileOutputStream fos= newFileOutputStream(file);while ((currentLine = breader.readLine()) != null) {
sb.append(currentLine);
fos.write(currentLine.getBytes());
}if (null !=breader)
breader.close();if (null !=fos)
fos.close();//转到与JSP对应的HTML页
response.sendRedirect(request.getContextPath() + "/" + name + ".html");
}catch(Exception e) {
e.printStackTrace();
}
}else{//如果存在指定的HTML,直接跳转到指定的HTML页
response.sendRedirect(request.getContextPath() + "/" + name + ".html");
}
}
@Overrideprotected voiddoPost(HttpServletRequest req, HttpServletResponse resp)throwsServletException, IOException {//TODO Auto-generated method stub
super.doGet(req, resp);
}
@Overridepublic voiddestroy() {//TODO Auto-generated method stub
super.destroy();
}
@Overridepublic void init(ServletConfig config) throwsServletException {//TODO Auto-generated method stub
super.init(config);
}
}