是不可以,在tomcat和resin都不行。这个应该属于特殊字符,没用过。

解决方案 »

  1.   

    不可以,这个是url非法。dispatcher.forward(request, response);是转发请求用的,主要目的是转发请求,保持数据的持久,而不是像link那样,仅仅是一个链接。锚点是html点击事件里的东西。
      

  2.   

    对,我用了过滤器,开始我也以为是过滤器的问题,可是我撤掉过滤器后再测试,还是有此问题,这才到csdn发贴的。
      

  3.   

    这个不是特殊字符,我直接使用http://xxx.xxx.xx.xxx/xxx/wap/test.jsp#content1能跳转到test.jsp的相应锚位置。如果url是非法的,RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);创建出来的dispatcher就应该为null,但是调试结果表明dispatcher确实成功创建了,所以这样的url不是非法的。况且sendRedirect可以使用这样的url的,虽然它是回了一次客户端的。如果说dispatcher不能转发请求到这样的url,那如果我有这样的需求该如何实现呢,也就是转发请求到一个带锚的url?另外需要说明一下的是我不能使用sendRedirect()来代替dispatcher.forword(),因为我使用request传递了对象形式的参数。还请各位大侠们继续指导,谢谢!
      

  4.   

    "/web/test.jsp#content1",把前面的第一个/  去掉。。不过。。谁能告诉我#是做什么用的啊? 我只知道? 是传参数的
      

  5.   

    锚应该是在网页内部的跳转,由浏览器来管理的
    所以在dispatcher里无效
    假如从/index.jsp页dispatcher到test.jsp页,地址/index.jsp#content1却是有效的。
      

  6.   

    通过验证发现lovelymaomao(小老鼠) 的做法也不能解决问题,其效果与不去掉"/"一样。不知还有哪位高人能解答一下,谢谢!