public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
HttpSession session=((HttpServletRequest) request).getSession(true);
if(session.getAttribute("username") == null){
System.out.println("你还未登陆");
//String url = "http://localhost:8888/Test_Online/admin/login.jsp";
String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/test_struts2/login.jsp";
//String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath() + LoginRightFilter.FORWARD;
StringBuffer scriptString=new StringBuffer();
scriptString.append(" <script>\n\r");
scriptString.append("alert(\"你还未登陆\")");
scriptString.append("self.top.location.href=\""+url+"\"\n\r");
scriptString.append(" </script>\n\r");
response.getOutputStream().print(scriptString.toString());
//System.out.println(session.getAttribute("adminrole"));
}else{
chain.doFilter(request, response);
} }
执行时报错为:
exception java.io.CharConversionException: Not an ISO 8859-1 character: 你
javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)
filter.LegalUser.doFilter(LegalUser.java:34)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)”你“我曾经输在页面表单你的记录,我觉得应该是。请大家解决一下,不报错。
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
HttpSession session=((HttpServletRequest) request).getSession(true);
if(session.getAttribute("username") == null){
System.out.println("你还未登陆");
//String url = "http://localhost:8888/Test_Online/admin/login.jsp";
String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/test_struts2/login.jsp";
//String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath() + LoginRightFilter.FORWARD;
StringBuffer scriptString=new StringBuffer();
scriptString.append(" <script>\n\r");
scriptString.append("alert(\"你还未登陆\")");
scriptString.append("self.top.location.href=\""+url+"\"\n\r");
scriptString.append(" </script>\n\r");
response.getOutputStream().print(scriptString.toString());
//System.out.println(session.getAttribute("adminrole"));
}else{
chain.doFilter(request, response);
} }
执行时报错为:
exception java.io.CharConversionException: Not an ISO 8859-1 character: 你
javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)
filter.LegalUser.doFilter(LegalUser.java:34)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)”你“我曾经输在页面表单你的记录,我觉得应该是。请大家解决一下,不报错。
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain;charset=UTF-8");试下
改为:
response.setContentType("text/html;charset=utf-8");
response.getOutputStream().write(scriptString.toString().getBytes("UTF-8"));