jsp生成html(方法简单,只用使用一个serlvet)

本文转载自:http://www.builder.com.cn/2008/0701/960421.shtml

 

还可以参考:http://www.qudong.com/soft/program/jsp/jinghuawenzhai/20080509/11725.html

 

1   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"):"";
                //url是要生成htm的jsp页面
                String name = "";


                response.setContentType("text/html;charset=gb2312");


                ServletContext sc = getServletContext();


                System.out.println("request.getRealPath"+request.getRealPath(""));


                 name = request.getRealPath("") + "/index.htm";     

 /*生成htm页  位置在%服务器的根目录%/工程名/index.htm 例如:d:/tomcat5.0/webapp/studyteach/index.htm  ,注意这里是在根目录生成,你可以生成后放到你想放的文件夹里,保证其它东西如图片的路径正确     这里就写成name = request.getRealPath("") + "/kszx/kszx.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() {
                                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><font size=3 color=red>首页已经成功生成!</font></p>");
            }
    }
    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>


    使用方法很简单  mytest.jsp(wwwroot下)


    <a href="web/tohtm?urls=/kszx/kszx.jsp">生成静态页</a>    kszx.jsp为要生成htm的动态页
    如果不在wwwroot下,在wwwroot/pp下


    就要写成
    <a href="../web/tohtm?urls=/kszx/kszx.jsp">生成静态页</a>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个简易的jsp+servlet计算器的实现步骤: 1. 创建一个JSP页面,包含一个表单,其中表单中有两个输入框,一个下拉框和一个提交按钮。下拉框中包含加、减、乘、除四个选项。 2. 在表单中提交按钮的onclick事件中,调用JavaScript函数,将表单中的数据通过Ajax方式发送到后台Servlet中。 3. 创建一个Servlet,用于接收前端发送过来的数据并进行计算,计算完成后将结果返回给前端。 4. 在Servlet中,通过request.getParameter()方法获取前端发送过来的数据,然后根据选择的运算符进行计算,并将结果存储在request作用域中。 5. 在Servlet中,通过request.getRequestDispatcher()方法跳转到结果展示的JSP页面。 6. 在JSP页面中,通过EL表达式获取Servlet中计算得到的结果,并将结果展示给用户。 7. 完成以上步骤后,即可实现一个简单jsp+servlet计算器。 这里是一个简单的示例代码: index.jsp: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>简易计算器</title> <script type="text/javascript"> function calculate() { var num1 = document.getElementById("num1").value; var num2 = document.getElementById("num2").value; var operator = document.getElementById("operator").value; if (num1 == "" || num2 == "") { alert("请输入数字!"); return false; } var url = "calculate?num1=" + num1 + "&num2=" + num2 + "&operator=" + operator; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("result").innerHTML = xhr.responseText; } } xhr.open("GET", url, true); xhr.send(); } </script> </head> <body> <h1>简易计算器</h1> <form> <input type="text" id="num1" name="num1"> <select id="operator" name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="text" id="num2" name="num2"> <input type="button" value="计算" onclick="calculate()"> </form> <div id="result"></div> </body> </html> ``` CalculateServlet.java: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CalculateServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); String operator = request.getParameter("operator"); int result = 0; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": result = num1 / num2; break; } request.setAttribute("result", result); request.getRequestDispatcher("result.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` result.jsp: ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>计算结果</title> </head> <body> <h1>计算结果</h1> <p><%= request.getAttribute("result") %></p> </body> </html> ``` 希望这个示例代码能够帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值