论坛首页 入门技术论坛

关于servlet中用forward()方法进行页面跳转到新页面中乱码问题

浏览 5411 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-08-29  
用JSP写了一个用户登录的界面,在一个名为login.java的servlet中处理,可根据登录用户的不同级别,转向不同一页面。其中一段代码是这样写的:  
  if(position.equalsIgnoreCase("主管")){  
     RequestDispatcher   rd   =   getServletContext().getRequestDispatcher("/a.jsp");  
     rd.forward(req,res);  
  }else   if(position.equalsIgnoreCase("服务员")){  
              RequestDispatcher   rd   =   getServletContext().getRequestDispatcher("/b.jsp");  
              rd.forward(req,res);  
  }  
   
  程序可以实现转向,但是无论是 a.jsp 还是 b.jsp 中的中文都是乱码,但如果直接在地址栏里敲.../a.jsp,页面就不是乱码,或者在servlet中用 sendredirect() , 一切就正常。  
   
  背景: 工作环境都是 gb2312,页面的属性设置伟gb2312, 字符编码格式也设置伟gb2312

  Dispatcher.forward() 和  sendredirect()都可以跳到下张页面,除了一个能传request,一个不能,他们在编码格式上有什么不同否?

  不知道是什么原因,怎么解决?  

  望指教。
   发表时间:2007-10-22  
你在login.java文件中 加上 
response.setContentType("text/html; charset=gb2312");  
看看好用不??
这句话是设置发出的代码格式。
0 请登录后投票
   发表时间:2007-10-22  
默认的Tomcat服务器端处理的编码是ISO-8859-1,而你是GB2312,应该会出乱码的。我记得javaeye里面有一个关于修改tomcat配置文件来修改默认编码的,你搜一搜吧。
如果勤快点,自己配置一个filter来过滤字符串
0 请登录后投票
   发表时间:2007-10-23  
接楼上的,比如server.xml里面~~~
<Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" 
               URIEncoding="UTF-8"/>

0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics