解决的方法很简单,就是在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页面上的提示信息就是乱码。
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页面上的提示信息就是乱码。