具体实现:<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>
//----指定对应JSP的HTML名称<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>