我现在有一个做好的jsp web工程,我想把地址兰里的url与我工程里的实际路径不一样,怎么弄?请教!
就是说:我现在的访问路径是:http://localhost:8080/demo/index.jsp
我想让它在地址兰里显示成:http://localhost:8080/demo/1.jsp
我不希望去改工程,j2ee的,要改的话工作量不小呢。。能只通过配置文件,实现这个障眼法吗?
我在网上查过有关:url伪装 ,这个要求在servlet跳转的时候就写成一个伪静态的跳转地址,然后通过一个xml文件把<from>来的静态地址再往<to></to>里的实际地址。
但问题是:现在的我的工程servlet里的跳转路径都已经写好了,是实际路径,请教在这种情况下怎么实现,url的伪装呢?
就是说:我现在的访问路径是:http://localhost:8080/demo/index.jsp
我想让它在地址兰里显示成:http://localhost:8080/demo/1.jsp
我不希望去改工程,j2ee的,要改的话工作量不小呢。。能只通过配置文件,实现这个障眼法吗?
我在网上查过有关:url伪装 ,这个要求在servlet跳转的时候就写成一个伪静态的跳转地址,然后通过一个xml文件把<from>来的静态地址再往<to></to>里的实际地址。
但问题是:现在的我的工程servlet里的跳转路径都已经写好了,是实际路径,请教在这种情况下怎么实现,url的伪装呢?
.....
<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
要在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怎么办?
表面上看是:优化url,方便收录,隐藏网站真实路径,也是有一定安全性的!
实现意义:略!
实际上是很有意义的,比如我拿来一个别人的网站,我把页面都改了。。但是地址很能被人发现,所以我想搞个url的伪装,这样子比较安全一些!技术是需要灵活运用的!懂不?