辽金天珠价格:JSP URL重写-Web开发-网站建设

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 03:00:00

这段时间一直都在研究jsp生成静态页面的方法,在网上找了很多资料,也有不少朋友给我提出解决方案,确实解决了不少的问题,但是这样做有点麻烦。其实我并不是想减轻服务器的压力,我们要做的不是门户网站,访问量没那么大,所以不用担心服务器的承受能力。只是希望搜索引擎能够搜索到我们的页面,只要能达到目的,用什么样的方式都可以。

在网上看到了一则URL重写的贴子,感觉比较适合我这样的情况,应用起来简单。然后自己试着写了一个例子,居然成功了,而在Struts里不知道怎么实现,实现转发的时候好象没什么用了。*.do好象不能实现映射
以下是相关代码,若有不正之处,欢迎大家指正!
首先要去下载一个urlrewritefilter-2.6.zip,然后把它解压到WEB-INF下,然后配置一下web.xml



  
    UrlRewriteFilter
    org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
    
      logLevel
      WARN
    

  

  
    UrlRewriteFilter
    /*
  

  
    action
    org.apache.struts.action.ActionServlet
    
      config
      /WEB-INF/struts-config.xml
    

    
      debug
      3
    

    
      detail
      3
    

    0
  

  
    action
    *.do
  


然后再随便建立几个jsp页面,如:
MyJsp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    ">
    
    My JSP 'MyJsp.jsp' starting page
    
    
    
        
    
    
    

  
  
  
  <% 
      String a = request.getParameter("id");
  %>
    <%=basePath %> 

    <%
        if(a.equals("123"))
        {
            out.println("哈哈");
        }
        else
        {
            out.println("再试一次!");
        }
     %>
  

接着在urlrewrite.xml里配置一下路径

        "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">




    
        
            The rule means that requests to /test/status/ will be redirected to /rewrite-status
            the url will be rewritten.
        

        /test/status/
        %{context-path}/rewrite-status
    



    
        
            The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
            the url /rewrite-status will be rewritten to /test/status/.

            The above rule and this outbound-rule means that end users should never see the
            url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
            in your pages.
        

        /rewrite-status
        /test/status/
    

        
            /test/([0-9]+)
            /MyJsp.jsp?id=$1
        


启动服务器,然后输入http://localhost:8080/test/123 ,那么就可以显示了,而实际上读取的路径是http://localhost:8080/MyJsp.jsp?id=123