jsp 转换 html
??????? // Put your code here??
??? }??
??? public void doGet(HttpServletRequest request, HttpServletResponse response)??
??????????? throws ServletException, IOException {??
??????? response.setContentType("text/html");??
??????? PrintWriter out = response.getWriter();??
??????? //----获取请求的URL??
??????? String reqTarget = request.getParameter("name");??
??????? //----指定对应JSP的HTML名称??
??????? String name = reqTarget.substring(reqTarget.lastIndexOf("/") + 1,reqTarget.lastIndexOf("."));??
??????????
??????? //---判断是否存在对应的HTML文件??
??????? File file = new File(request.getRealPath("/") + name + ".html");??
??????????
??????? if (!file.exists()) {?? //--------如果不存在对应的HTML文件??
??????????? try {??
??????????????????
??????????????? file.createNewFile();?? //--------创建HTML文件??
??????????????? //-------将JSP的内容写入对应的HTML文件内??
??????????????? InputStream in;??
??????????????? StringBuffer sb = new StringBuffer("");??
??????????? //----注意这里,不能直接访问请求的URL,如果直接访问的话,会陷入死循环??
??????????????? URL url = new java.net.URL(reqTarget.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, "GBK"));??
??????????????? String currentLine;??
??????????????? FileOutputStream fos = new FileOutputStream(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");??
??????? }??
??? }??
??? public void doPost(HttpServletRequest request, HttpServletResponse response)??
??????????? throws ServletException, IOException {??
??????? doGet(request, response);??
??? }??
??? public void init() throws ServletException {??
??????? // Put your code here??
??? }??
}??
web.xml??
?? <servlet>??
??? <servlet-name>ChangeHtml</servlet-name>??
??? <servlet-class>com.servlet.ChangeHtml</servlet-class>??
????? </servlet>??
<servlet-mapping>??
??? <servlet-name>ChangeHtml</servlet-name>??
??? <url-pattern>/changeHtml</url-pattern>??
</servlet-mapping>??
?? <filter>??
??? <filter-name>jspfilter</filter-name>??
??? <filter-class>com.servlet.JspFilter</filter-class>??
</filter>??
<filter-mapping>??
??? <filter-name>jspfilter</filter-name>??
??? <url-pattern>*.jsp</url-pattern>??
</filter-mapping>??
<servlet>??
??? <servlet-name>conversion</servlet-name>??
??? <servlet-class>com.servlet.ConversionServlet </servlet-class>??
</servlet>??
<servlet-mapping>??
??? <servlet-name>conversion</servlet-name>??
??? <url-pattern>/conversion</url-pattern>??
</servlet-mapping>