java控制浏览器的地址栏_关于浏览器地址栏的一些遐想

在blogjava查看别人的文章的时候出现的是www.blogjava.net/XXX/XXXX.html。

对于这个html自己总是感觉是个静态的网页,

后来询问别人才了解到这是用了URL重写的技术,

于是便查找相关资料。

jsp的URL重写可参看http://www.blogjava.net/zs7456/RecentComments.html

今天看书的时候看到了两个另外隐藏用户输入的办法。

一个是使用隐藏域,还有个一个就是使用cookie。

使用隐藏域的方法也算是简单吧。

如你如以前的页面代码为

只需要在第一行前加入

方法很简单,理解就可以使用,不过这只能在保持少量的信息需求的时候才这样做,尽管很简单使用隐藏域很简单。但是如果程序中需要大量的会话状态的时候,可能会引发性能问题。因为在会话期间,会话状态必须包括在每个送往浏览器的页面上,而不管会话状态是否在页面上扮演一个很活跃的角色。

============================================================

以前的想法。

用户写完一篇文章在存储的时候就将其转换为静态的网页。

或来想了一下,

这么大的一个blog至少有几十万的文章,不可能全部用静态的网页。

那样服务器的检索将会是一件难以想象的事情。

再说啦,这样做也不利于管理啦。

生成的静态网站如果说用户换了一个风格的话,那么该怎么办呢?

说说url重写的好处吧,首先在一个地址栏上不用重写技术的话,人们就可以看到用户所提交的检索信息,

如www.blogjava.net/duduli/java?id=xxxx 这样的话xxxx就是提交检索的信息,

其余的都不说就从安全方面就加强了。

还是把别人的写的重点拿过来吧。

-----------------------------------------------------------------------------------------------

原帖:

在网上看到了一则URL重写的贴子,感觉比较适合我这样的情况,应用起来简单。然后自己试着写了一个例子,居然成功了,而在Struts里不知道怎么实现,实现转发的时候好象没什么用了。*.do好象不能实现映射

以下是相关代码,若有不正之处,欢迎大家指正!

首先要去下载一个urlrewritefilter-2.6.zip,然后把它解压到WEB-INF下,然后配置一下web.xml

1

4f1150b881333f12a311ae9ef34da474.png<?xml  version="1.0" encoding="UTF-8"?>24f1150b881333f12a311ae9ef34da474.png34f1150b881333f12a311ae9ef34da474.png44f1150b881333f12a311ae9ef34da474.pngUrlRewriteFilter54f1150b881333f12a311ae9ef34da474.pngorg.tuckey.web.filters.urlrewrite.UrlRewriteFilter64f1150b881333f12a311ae9ef34da474.png74f1150b881333f12a311ae9ef34da474.pnglogLevel84f1150b881333f12a311ae9ef34da474.pngWARN94f1150b881333f12a311ae9ef34da474.png104f1150b881333f12a311ae9ef34da474.png114f1150b881333f12a311ae9ef34da474.png124f1150b881333f12a311ae9ef34da474.pngUrlRewriteFilter134f1150b881333f12a311ae9ef34da474.png/*144f1150b881333f12a311ae9ef34da474.png154f1150b881333f12a311ae9ef34da474.png164f1150b881333f12a311ae9ef34da474.pngaction174f1150b881333f12a311ae9ef34da474.pngorg.apache.struts.action.ActionServlet184f1150b881333f12a311ae9ef34da474.png194f1150b881333f12a311ae9ef34da474.pngconfig204f1150b881333f12a311ae9ef34da474.png/WEB-INF/struts-config.xml214f1150b881333f12a311ae9ef34da474.png224f1150b881333f12a311ae9ef34da474.png234f1150b881333f12a311ae9ef34da474.pngdebug244f1150b881333f12a311ae9ef34da474.png3254f1150b881333f12a311ae9ef34da474.png264f1150b881333f12a311ae9ef34da474.png274f1150b881333f12a311ae9ef34da474.pngdetail284f1150b881333f12a311ae9ef34da474.png3294f1150b881333f12a311ae9ef34da474.png304f1150b881333f12a311ae9ef34da474.png0314f1150b881333f12a311ae9ef34da474.png324f1150b881333f12a311ae9ef34da474.png334f1150b881333f12a311ae9ef34da474.pngaction344f1150b881333f12a311ae9ef34da474.png*.do354f1150b881333f12a311ae9ef34da474.png364f1150b881333f12a311ae9ef34da474.png

然后再随便建立几个jsp页面,如:

MyJsp.jsp

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gif@ page language="java"import="java.util.*"pageEncoding="GBK"%>1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifd18c02628675d0a2c816449d98bda930.pngStringpath=request.getContextPath();

8f1ba5b45633e9678d1db480c16cae3f.pngStringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

4f1150b881333f12a311ae9ef34da474.png%>4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.pngHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png"> 4f1150b881333f12a311ae9ef34da474.png    

4f1150b881333f12a311ae9ef34da474.png

My JSP 'MyJsp.jsp' starting page 4f1150b881333f12a311ae9ef34da474.png    

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png  

4f1150b881333f12a311ae9ef34da474.png

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifd18c02628675d0a2c816449d98bda930.pngStringa=request.getParameter("id");

8f1ba5b45633e9678d1db480c16cae3f.png%>4f1150b881333f12a311ae9ef34da474.png1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifd18c02628675d0a2c816449d98bda930.pngif(a.equals("123"))

d18c02628675d0a2c816449d98bda930.png        {

d18c02628675d0a2c816449d98bda930.png            out.println("哈哈");

d18c02628675d0a2c816449d98bda930.png        }

d18c02628675d0a2c816449d98bda930.pngelsed18c02628675d0a2c816449d98bda930.png        {

d18c02628675d0a2c816449d98bda930.png            out.println("再试一次!");

d18c02628675d0a2c816449d98bda930.png        }

8f1ba5b45633e9678d1db480c16cae3f.png%>4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

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

4f1150b881333f12a311ae9ef34da474.png<?xml  version="1.0" encoding="utf-8"?>4f1150b881333f12a311ae9ef34da474.pngurlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"

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

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png            The rule means that requests to /test/status/ will be redirected to /rewrite-status

4f1150b881333f12a311ae9ef34da474.png            the url will be rewritten.

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png/test/status/4f1150b881333f12a311ae9ef34da474.png%{context-path}/rewrite-status4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png            The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)

4f1150b881333f12a311ae9ef34da474.png            the url /rewrite-status will be rewritten to /test/status/.

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png            The above rule and this outbound-rule means that end users should never see the

4f1150b881333f12a311ae9ef34da474.png            url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks

4f1150b881333f12a311ae9ef34da474.png            in your pages.

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png/rewrite-status4f1150b881333f12a311ae9ef34da474.png/test/status/4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png/test/([0-9]+)4f1150b881333f12a311ae9ef34da474.png/MyJsp.jsp?id=$14f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

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

==============================================================================

在此声明,此文章大部分为http://www.blogjava.net/zs7456/RecentComments.html    在此只作为自己的笔记,以后学习之用。

posted on 2009-01-08 15:16 duduli 阅读(438) 评论(0)  编辑  收藏 所属分类: java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值