login.jsp裏body代碼:html
<body> <% String USERNAME = "admin"; String USERPWD = "123456"; java
request.setCharacterEncoding("utf8"); String userName = request.getParameter("username").trim(); String userPwd = request.getParameter("userpwd").trim(); System.out.println(userName + "\t" + userPwd); if(userName == null || userPwd == null){ response.sendRedirect("userlogin.html"); return; } if(userName.equals(USERNAME) && userPwd.equals(USERPWD)) { session.setMaxInactiveInterval(30*60); // 設置session失效時間(timeout),單位爲秒 session.setAttribute("userinfo", USERNAME); // 用戶名和密碼正確,保存登陸信息 response.sendRedirect("page111.jsp"); } else { response.sendRedirect("userlogin.html"); // 用戶名和密碼錯誤,跳轉到登陸界面 }
%>web
SetCharacterEncodingFilter.java代碼: import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;session
public class SetCharacterEncodingFilter implements Filter { // 要實現Filter接口 // 存儲編碼格式信息 private String encode = null;app
public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { // 轉換 HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; /* * 判斷在web.xml文件中是否配置了編碼格式的信息 若是爲空,則設置編碼格式爲配置文件中的編碼格式 不然編碼格式設置爲GBK */ if (this.encode != null && !this.encode.equals("")) { request.setCharacterEncoding(this.encode); response.setCharacterEncoding(this.encode); } else { request.setCharacterEncoding("GBK"); response.setCharacterEncoding("GBK"); } /* * 使用doFilter方法調用鏈中的下一個過濾器或目標資源(servlet或JSP頁面)。 * chain.doFilter處理過濾器的其他部分(若是有的話),最終處理請求的servlet或JSP頁面。 */ chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { // 獲取在web.xml文件中配置了的編碼格式的信息 this.encode = config.getInitParameter("encode"); }
}jsp
web.xml代碼:this
<?xml version="1.0" encoding="UTF-8"?>編碼
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>TestJSP</display-name>url
<!-- 過濾器配置信息 -->code
<filter> <filter-name>SetCharacterEncodingFilter</filter-name>
<!-- 過濾器設置編碼文件 -->
<filter-class> com.cloudwise.SetCharacterEncodingFilter </filter-class> <init-param>
<!-- init-param元素定義了過濾器的初始化參數 -->
<description>給參數和值設置名稱和編碼類型</description> <param-name>encode</param-name> <param-value>UTF-8</param-value> </init-param> </filter>
<filter-mapping> <!-- filter-mapping告訴容器全部與模式向匹配的請求都應該容許經過訪問控制過濾器. 全部以.do結尾的訪問都先經過過濾器文件過濾 -->
<filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>
</web-app>