解决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页面上的提示信息就是乱码。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值