JavaWeb 使用Cookie實現——顯示使用者上次訪問時間(教材學習筆記)
阿新 • • 發佈:2018-12-03
當用戶訪問一些web應用時,會自動顯示該使用者上次登陸的時間,使用Cookie技術可以實現這一要求
一、建立Servlet
在eclipse中建立web-chapter05的專案,並在專案下建立一個cn.itcast.chapter05.cookie.example的包,並在包中編寫一個LastAccessServlet的Servlet類,該類主要是獲取Cookie資訊並將當前時間作為Cookie值傳送給客戶端,具體程式碼如下:
package cn.itcast.chapter05.cookie.example; import java.io.IOException; import java.util.Date; import java.text.SimpleDateFormat; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/LastAccessServlet") public class LastAccessServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //指定伺服器輸出內容編碼方式為UTF-8 response.setContentType("text/html;charset=utf-8"); String LastAccessTime = null; //獲取所有的cookie,並將這些cookie存放在陣列中 Cookie[] cookies = request.getCookies(); //遍歷cookie陣列 for(int i=0;cookies!=null && i<cookies.length;i++) { //如果cookie的名稱為lastAccess,則獲取該cookie的值 if("lastAccess".equals(cookies[i].getName())) { LastAccessTime = cookies[i].getValue(); break; } } if(LastAccessTime==null) { response.getWriter().print("您是首次訪問本站!!!!"); }else { response.getWriter().print("您上次的訪問時間是"+LastAccessTime); } //建立cookie,將當前時間作為cookie的值傳送給客戶端 String currentTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()); Cookie cookie = new Cookie("lastAccess", currentTime); //傳送cookie response.addCookie(cookie); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
二、在web.xml中配置相關路徑
<servlet> <servlet-name>LastAccessServlet</servlet-name> <servlet-class>cn.itcast.chapter05.cookie.example.LastAccessServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LastAccessServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
三、啟動tomcat並檢視執行效果
我嘗試了三次,結果依次如下:
可以看到確實返回了上次訪問時間