後臺out.println向jsp頁面推送中文時亂碼


項目中有個判斷session是否有效的功能,若session失效時,當用戶點擊其他需要訪問到後臺的鏈接時,則會alert出session失效的提示語句。然而在刷新列表時,用到了window.location.reload()這句代碼,彈出的中文提示則變成亂碼,其他情況下提示則正常。

原先代碼如下:

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
	     // TODO Auto-generated method stub  
        HttpServletRequest request = (HttpServletRequest) req;  
        HttpServletResponse response = (HttpServletResponse) resp;  
        HttpSession session = request.getSession();  
        String url = request.getServletPath();
        //這裏判斷目錄,後綴名,當然也可以寫在web.xml中,用url-pattern進行攔截映射  
        if ((!request.getServletPath().equals("/login.do"))) {  
            if (session.getAttribute("userSession") == null) {  
                session.invalidate();   //清空所有已定義的session
                response.setContentType("text/html;charset=gb2313");
                PrintWriter out = response.getWriter();                
                out.println("<script language='javascript' type='text/javascript'>");  
                out.println("alert('由於長時間沒操作或者賬號在其他地方登錄,請重新登錄!');");  
//                out.println("window.location.href='" + request.getContextPath() + "/index.jsp';");  
                out.println("</script>");  
            } else {  
                chain.doFilter(request, response);  
            }  
        } else {  
            chain.doFilter(request, response);  
        }  
	}

                response.setContentType("text/html;charset=gb2313");
改成

                response.setContentType("text/html;charset=UTF-8");
問題則解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章