动态JSP页生成静态HTML

具体实现:<o:p></o:p>

         利用Filter的过滤功能把*.jsp过滤出来,判断是否存在对应的.html文件,如果不存在对应的.html文件,则将其内容读出写入指定的.html文件,再跳转到对应的.html即可。如果存在对应的.html文件,则直接跳转到对应的.html即可。<o:p></o:p>

<o:p> </o:p>

代码:<o:p></o:p>

JspFilter.java<o:p></o:p>

<o:p> </o:p>

import java.io.BufferedReader;<o:p></o:p>

import java.io.File;<o:p></o:p>

import java.io.FileOutputStream;<o:p></o:p>

import java.io.IOException;<o:p></o:p>

import java.io.InputStream;<o:p></o:p>

import java.io.InputStreamReader;<o:p></o:p>

import java.net.HttpURLConnection;<o:p></o:p>

import java.net.URL;<o:p></o:p>

<o:p> </o:p>

import javax.servlet.Filter;<o:p></o:p>

import javax.servlet.FilterChain;<o:p></o:p>

import javax.servlet.FilterConfig;<o:p></o:p>

import javax.servlet.ServletException;<o:p></o:p>

import javax.servlet.ServletRequest;<o:p></o:p>

import javax.servlet.ServletResponse;<o:p></o:p>

import javax.servlet.http.HttpServletRequest;<o:p></o:p>

import javax.servlet.http.HttpServletResponse;<o:p></o:p>

<o:p> </o:p>

public class JspFilter implements Filter {<o:p></o:p>

<o:p> </o:p>

    public void destroy() {<o:p></o:p>

        // TODO 自动生成方法存根<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    public void doFilter(ServletRequest request, ServletResponse response,<o:p></o:p>

            FilterChain chain) throws IOException, ServletException {<o:p></o:p>

<o:p> </o:p>

        HttpServletRequest hreq = (HttpServletRequest) request;<o:p></o:p>

        HttpServletResponse hresp = (HttpServletResponse) response;<o:p></o:p>

<o:p> </o:p>

        String name = hreq.getRequestURL().substring(<o:p></o:p>

                    hreq.getRequestURL().lastIndexOf("/") + 1,<o:p></o:p>

                    hreq.getRequestURL().lastIndexOf("."));<o:p></o:p>

        if (hreq.getRequestURL().indexOf(".jsp") != -1 && (null == hreq.getParameter("type") || hreq.getParameter("type").equals(""))) {            <o:p></o:p>

                hresp.sendRedirect(hreq.getContextPath()+"/testservlet?name="+hreq.getRequestURL());<o:p></o:p>

                return ;<o:p></o:p>

        }<o:p></o:p>

        chain.doFilter(request, response);<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    public void init(FilterConfig arg0) throws ServletException {<o:p></o:p>

        // TODO 自动生成方法存根<o:p></o:p>

    }<o:p></o:p>

}<o:p></o:p>

<o:p> </o:p>

ConversionServlet.java<o:p></o:p>

<o:p> </o:p>

import java.io.BufferedReader;<o:p></o:p>

import java.io.File;<o:p></o:p>

import java.io.FileOutputStream;<o:p></o:p>

import java.io.IOException;<o:p></o:p>

import java.io.InputStream;<o:p></o:p>

import java.io.InputStreamReader;<o:p></o:p>

import java.io.PrintWriter;<o:p></o:p>

import java.net.HttpURLConnection;<o:p></o:p>

import java.net.URL;<o:p></o:p>

<o:p> </o:p>

import javax.servlet.ServletException;<o:p></o:p>

import javax.servlet.http.HttpServlet;<o:p></o:p>

import javax.servlet.http.HttpServletRequest;<o:p></o:p>

import javax.servlet.http.HttpServletResponse;<o:p></o:p>

<o:p> </o:p>

public class ConversionServlet extends HttpServlet {<o:p></o:p>

<o:p> </o:p>

    public ConversionServlet () {<o:p></o:p>

        super();<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    public void destroy() {<o:p></o:p>

        super.destroy(); // Just puts "destroy" string in log<o:p></o:p>

        // Put your code here<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    public void doGet(HttpServletRequest request, HttpServletResponse response)<o:p></o:p>

            throws ServletException, IOException {<o:p></o:p>

<o:p> </o:p>

        response.setContentType("text/html");<o:p></o:p>

        PrintWriter out = response.getWriter();<o:p></o:p>

        //----获取请求的URL<o:p></o:p>

        String reqTarget = request.getParameter("name");<o:p></o:p>

        //----指定对应JSPHTML名称<o:p></o:p>

        String name = reqTarget.substring(reqTarget.lastIndexOf("/") + 1,<o:p></o:p>

                reqTarget.lastIndexOf("."));<o:p></o:p>

        //---判断是否存在对应的HTML文件<o:p></o:p>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值