我现在有一个做好的jsp web工程,我想把地址兰里的url与我工程里的实际路径不一样,怎么弄?请教!
就是说:我现在的访问路径是:http://localhost:8080/demo/index.jsp
我想让它在地址兰里显示成:http://localhost:8080/demo/1.jsp
我不希望去改工程,j2ee的,要改的话工作量不小呢。。能只通过配置文件,实现这个障眼法吗?

我在网上查过有关:url伪装 ,这个要求在servlet跳转的时候就写成一个伪静态的跳转地址,然后通过一个xml文件把<from>来的静态地址再往<to></to>里的实际地址。

但问题是:现在的我的工程servlet里的跳转路径都已经写好了,是实际路径,请教在这种情况下怎么实现,url的伪装呢?

解决方案 »

  1.   

    web.xml
    .....
    <servlet-mapping>
    <servlet-name>plugin_match</servlet-name>
    <url-pattern>/dyn/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>plugin_match</servlet-name>
    <url-pattern>/html/*</url-pattern>
    </servlet-mapping>
    .....
    urlrewrite.xml
    <?xml version="1.0" encoding="utf-8"?>  
    <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"   
            "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">  
      
    <urlrewrite decode-using="GBK">  
        <rule>  
            <from>html/(about|play|play_02|play_03|play_04|play_05|play_06|play_07|play_08|play_09|shop|feature).htm$</from>  
            <to type="forward">html/$1.jsp</to>  
        </rule>
        <rule>  
            <from>html/news_content_(\w+).html$</from>  
            <to type="forward">html/news_content.jsp?id=$1</to>  
        </rule>  
       <rule>  
            <from>dyn/newslist_(\w+).html$</from>  
            <to type="forward">html/news.jsp?type=$1</to>  
        </rule>  
        <rule>  
            <from>dyn/newshow_([0-9]+).html$</from>  
            <to type="forward">html/news_content.jsp?id=$1</to>  
        </rule>  
        <rule>  
            <from>dyn/piclist_([0-9]+).html$</from>  
            <to type="forward">html/pic.jsp?id=$1</to>  
        </rule>
        <rule>  
            <from>dyn/picshow_([0-9]+).html$</from>  
            <to type="forward">html/pic_content.jsp?id=$1</to>  
        </rule>
        <rule>  
            <from>dyn/reviselist.html</from>  
            <to type="forward">html/revises.jsp</to>  
        </rule>
        <rule>  
            <from>dyn/reviseshow_([0-9]+).html$</from>  
            <to type="forward">html/revisescontent.jsp?id=$1</to>  
        </rule>
        <rule>  
            <from>dyn/system.html</from>  
            <to type="forward">html/system.jsp</to>  
        </rule>
        <rule>  
            <from>dyn/topicshow_([0-9]+).html$</from>  
            <to type="forward">html/system_content.jsp?id=$1</to>  
        </rule>
        <rule>  
            <from>dyn/faqlist.html</from>  
            <to type="forward">html/faq.jsp</to>  
        </rule>
        <rule>  
            <from>dyn/faqshow_([0-9]+).html$</from>  
            <to type="forward">html/faq_content.jsp?id=$1</to>  
        </rule>
    </urlrewrite> 
    一個 urlrewrite-3.2.0.jar
      

  2.   

    楼上,谢谢你第一时间回答我的问题!我之前在网上查过了这个主要实际伪静态。但是伪静态好像
    要在servlet里提前写一个伪静态地址。。如下:
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.sendRedirect("/a.jsp"); }然后在urlrewrite.xml下配置如下:<urlrewrite>          
    <rule>
    <from>/a.jsp</from>
    <to>/index.jsp</to>
    </rule>

    </urlrewrite>实现的结果应该是:你访问http://localhost:8080/a.jsp,url里显示的是a.jsp,但结果走的是index.jsp.现在问题是:我servlet里的跳转是:index.jsp,不能修改servlet,我想让地址兰里显示成a.jsp怎么办?
      

  3.   

    為靜態,只能訪問你設的虛擬目錄你servlet必須是你對應的虛擬目錄!
      

  4.   


    表面上看是:优化url,方便收录,隐藏网站真实路径,也是有一定安全性的!
    实现意义:略!
      

  5.   


    实际上是很有意义的,比如我拿来一个别人的网站,我把页面都改了。。但是地址很能被人发现,所以我想搞个url的伪装,这样子比较安全一些!技术是需要灵活运用的!懂不?