您好,匿名用户
随意问技术百科期待您的加入

IE下不能调用servlet,Firefox下可以

+1 投票

用tomcat和servlet搭建一个查询数据库的小系统
URL: s?k=value&city=bj
贴一下主要的代码

servlet:

//在IE下控制台不会打印do Get,设断点也不会拦截,Firefox下正常,Myeclipse控制台启动tomcat也没有显示任何不正常信息 
public void doGet(HttpServletRequest request,HttpServletResponse response) 
{ 
    System.out.println("do Get"); 
    request.setCharacterEncoding("utf-8"); 
    String k=request.getParameter("k"); 
    String city=request.getParameter("city"); 
    request.setAttribute("city", city); 
    request.getRequestDispatcher("test.jsp").forward(request, response); 
}

Test.jsp

<body> 
<%String city=(String)request.getAttribute("city");%> 
<%=city%> 
</body> 

web.xml 
<servlet> 
      <servlet-name>s</servlet-name> 
      <servlet-class>com.search.servlet.SecServlet</servlet-class> 
      <load-on-startup>0</load-on-startup> 
  </servlet>  
<servlet-mapping> 
    <servlet-name>s</servlet-name> 
    <url-pattern>/s</url-pattern> 
</servlet-mapping>

用firefox运行,控制台打印显示也正常,test.jsp的值是正常的,request.setAttribute("city", city);city的值更改后test.jsp中显示的是更改后的值,如果不先用firefox运行,那么IE下就一直保持一个值

刚发现直接用地址栏用url请求,IE会把此请求当作上一次请求,而不进行处理.
有人建议在URL后面加一个时间,这样每次请求的参数都不一样,可以避免这种情况。
可是除了这个办法还有没有其他的

用户头像 提问 2012年 12月1日 @ Olaf 上等兵 (366 威望)
分享到:

1个回答

0 投票

可以设置你的response的Cache-Control以及Expires等header, 以让浏览器不要缓存你的页面。具体可以看下这个博客: http://blog.csdn.net/afeilxc/article/...

用户头像 回复 2012年 12月1日 @ Blitzcrank 上等兵 (358 威望)
提一个问题:

相关问题

0 投票
1 回复 35 阅读
用户头像 提问 2012年 12月1日 @ Corki 上等兵 (263 威望)
0 投票
1 回复 43 阅读
+3 投票
1 回复 62 阅读
用户头像 提问 2013年 8月11日 @ Quinn 上等兵 (107 威望)
+1 投票
1 回复 76 阅读
用户头像 提问 2012年 12月1日 @ Rider 上等兵 (281 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...