解决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("");
      }
      else{
       out.print("");
      }
     }
     else{
      out.print("");
     }
    }
    if(ops.equals("delGraduate")){
     if(curPResCn.equals("1")){
      if(page.equals("1")){
       out.print("");
      }
      else{
       out.print("");
      }
     }
     else{
      out.print("");
     }
    }
   }
} 这里是一个实现删除用户记录的Servlet,删除成功则返回提示信息。alert('删除成功!');这里涉及到了中文,如果在Servlet中没有下面两句代码: response.setContentType("text/html");
response.setCharacterEncoding("utf-8"); 在JSP页面上的提示信息就是乱码。

你可能感兴趣的:(JSP/Servlet)