`
terran_li2008
  • 浏览: 199927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决Servlet输出到JSP页面的JavaScript脚本的中文乱码问题

阅读更多
解决的方法很简单,就是在Servlet中的doPost方法中加上:
response.setContentType("text/html");
response.setCharacterEncoding("utf-8"); //或者使用gbk编码
就可以实现向客户端响应时字符的编码的正确性,即解决中文乱码问题。
我在实现删除用户时写的一个Servlet中遇到这个问题。本来已经加上上面两句了,但是再次出现乱码,让我有些焦虑。结果发现,不知道什么时候获取版本覆盖了自己修改后的内容,导致出现了这个问题。
我就在考虑我的过滤器是否没有起到作用。
虚惊一场,哈哈。
例如,Servlet中doPost方法内容如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
  
   response.setContentType("text/html");
   response.setCharacterEncoding("utf-8");
   PrintWriter out = response.getWriter();
   String id = request.getParameter("id");
   String ops = request.getParameter("ops");
   String curPResCn = request.getParameter("curPResCn");
   String page = request.getParameter("page");
   Student stu = new Student();
   stu.setUserid(id);
   Result res = new Result();
   res.setUserid(id);
   Dir dir = new Dir();
   List rlist = ResultDao.searchResult(res, dir, stu);
   Iterator it = rlist.iterator();
   while(it.hasNext()){
    Result res1 = (Result)it.next();
    Dir dir1 = new Dir();
    dir1.setDirid(res1.getDirid());
    ResultDao.deleteResult(res1, dir1, stu);
   }
   boolean bool = StudentDao.deleteStu(stu);
   if(bool){
    if(ops.equals("delGrant")){
     if(curPResCn.equals("1")){
      if(page.equals("1")){
       out.print("<script language='javascript'>alert('删除成功!');location.href('../admin/listGrantStu.jsp?id=&name=');</script>");
      }
      else{
       out.print("<script language='javascript'>location.href('../admin/listGrantStu.jsp?id=&name=&page="+(Integer.parseInt(page)-1)+"');</script>");
      }
     }
     else{
      out.print("<script language='javascript'>location.href('../admin/listGrantStu.jsp?id=&name=&page="+page+"');</script>");
     }
    }
    if(ops.equals("delGraduate")){
     if(curPResCn.equals("1")){
      if(page.equals("1")){
       out.print("<script language='javascript'>alert('删除成功!');location.href('../admin/listGraduateStu.jsp?id=&name=');</script>");
      }
      else{
       out.print("<script language='javascript'>location.href('../admin/listGraduateStu.jsp?id=&name=&page="+(Integer.parseInt(page)-1)+"');</script>");
      }
     }
     else{
      out.print("<script language='javascript'>location.href('../admin/listGraduateStu.jsp?id=&name=&page="+page+"');</script>");
     }
    }
   }
}
这里是一个实现删除用户记录的Servlet,删除成功则返回提示信息。
alert('删除成功!');这里涉及到了中文,如果在Servlet中没有下面两句代码:
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
在JSP页面上的提示信息就是乱码。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics