bang老師 真的是需要你幫忙了,是有關Struts2 action中操作cookie
我做自動登入的功能,是這樣操作的:
但是這樣檢視cookie資料夾,不生成cookie檔案,弄了一個星期了,真得弄不清楚到底是因為什麼傳送不成功,bang老師你可以指點一下嗎?
package com.zuwoba.presentation.action.account; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import org.apache.struts2.StrutsStatics; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionContext; import com.zuwoba.model.User; import com.zuwoba.model.UserSession; import com.zuwoba.presentation.action.base.BaseAction; import com.zuwoba.util.EmailLoginAddress; import com.zuwoba.util.MD5_Encoding; /** * @project_name zuwoba * @file_name LoginAction.java * @author tianhandigeng * @version Oct 25, 2010 2:53:04 PM * @declaration */ public class LoginAction extends BaseAction implements ServletRequestAware,ServletResponseAware{ private String email_username; private String password; private String captcha; private String autologin; private HttpServletRequest request; private HttpServletResponse response; // 提示視窗 private String hint; private String tip; public String getTip() { return tip; } public void setTip(String tip) { this.tip = tip; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getAutologin() { return autologin; } public void setAutologin(String autologin) { this.autologin = autologin; } public String getEmail_username() { return email_username; } public void setEmail_username(String email_username) { this.email_username = email_username; } public String getHint() { return hint; } public void setHint(String hint) { this.hint = hint; } public String getCaptcha() { return captcha; } public void setCaptcha(String captcha) { this.captcha = captcha; } public void setServletRequest(HttpServletRequest servletRequest) { this.request=servletRequest; } public void setServletResponse(HttpServletResponse servletResponse) { this.response=servletResponse; } @SuppressWarnings("unchecked") public String execute() { //// HttpServletResponse response = (HttpServletResponse) ActionContext //// .getContext().get(StrutsStatics.HTTP_RESPONSE); //// HttpServletRequest request = (HttpServletRequest) ActionContext //// .getContext().get(StrutsStatics.HTTP_REQUEST); //// HttpSession session = request.getSession(); // HttpServletResponse response=(HttpServletResponse)ServletActionContext.getResponse(); // HttpServletRequest request=(HttpServletRequest)ServletActionContext.getRequest(); HttpSession session=request.getSession(); //獲得域名 // String host=request.getServerName(); String host="ceshi"; email_username = this.getEmail_username().trim(); password = this.getPassword().trim(); captcha = this.getCaptcha().trim().toLowerCase(); autologin = this.getAutologin(); // 密碼加密 MD5_Encoding md5 = new MD5_Encoding(); password = md5.getMD5ofStr(password); if (!captcha.equals(session.getAttribute("idcode"))) { this.setTip("驗證碼錯誤"); this.setHint("failed"); return INPUT; } else { // Email登入 User user1 = userService.findUserByEmailPassword(email_username, password); if (user1 != null) { if ("N".equals(user1.getEnable())) {// 郵件登陸但沒有啟用 String emailAddress = EmailLoginAddress .getEmialLoginAddress(email_username); session.setAttribute("email", email_username); session.setAttribute("secret", user1.getSecret()); session.setAttribute("tempname", user1.getUsername()); session.setAttribute("emailAddress", emailAddress); return "unverified"; } else { // 處理自動登入 if (autologin != null) { // 建立兩個cookie物件 // 一個cookie記錄使用者名稱,另一個記錄唯一的驗證碼 // 並將此驗證碼寫入資料庫,以備使用者返回時查詢(防止偽造cookie) Cookie cookie1 = new Cookie("SESSION_LOGIN_USERNAME", user1 .getUsername()); cookie1.setMaxAge(60 * 60 * 24 * 14);// 設定cookie有效期為2周 cookie1.setPath("/"); cookie1.setDomain(host); response.addCookie(cookie1); String sessionid = session.getId(); Cookie cookie2 = new Cookie("SESSION_ID", sessionid); cookie2.setMaxAge(60 * 60 * 24 * 14); cookie2.setPath("/"); cookie2.setDomain(host); response.addCookie(cookie2); // 在資料庫中插入相應記錄 UserSession userSession = new UserSession(); userSession.setUsername(user1.getUsername()); userSession.setSessionid(sessionid); userService.addUserSession(userSession); } session.setAttribute("user", user1); return SUCCESS; } } else { // 使用者名稱登陸 User user2 = userService.findUserByUserNamePassword( email_username, password); if (user2 != null) { if ("N".equals(user2.getEnable())) {// 使用者名稱登陸但沒有啟用 String emailAddress = EmailLoginAddress .getEmialLoginAddress(email_username); session.setAttribute("email", email_username); session.setAttribute("secret", user2.getSecret()); session.setAttribute("tempname", user2.getUsername()); session.setAttribute("emailAddress", emailAddress); return "unverified"; } else { // 處理自動登入 if (autologin != null) { // 建立兩個cookie物件 // 一個cookie記錄使用者名稱,另一個記錄唯一的驗證碼 // 並將此驗證碼寫入資料庫,以備使用者返回時查詢(防止偽造cookie) Cookie cookie1 = new Cookie("SESSION_LOGIN_USERNAME", user2 .getUsername()); cookie1.setMaxAge(60*60*24*14);// 設定cookie有效期為2周 cookie1.setPath("/"); cookie1.setDomain(host); response.addCookie(cookie1); String sessionid = session.getId(); Cookie cookie2 = new Cookie("SESSION_ID", sessionid); cookie2.setMaxAge(60 * 60 * 24 * 14); cookie2.setPath("/"); cookie2.setDomain(host); response.addCookie(cookie2); // 在資料庫中插入相應記錄 UserSession userSession = new UserSession(); userSession.setUsername(user2.getUsername()); userSession.setSessionid(sessionid); userService.addUserSession(userSession); } session.setAttribute("user", user2); return SUCCESS; } } else { this.setHint("failed"); this.setTip("不存在這樣的Email或使用者名稱或密碼錯誤"); return INPUT; } } } } } <p class="indent"> |
但是這樣檢視cookie資料夾,不生成cookie檔案,弄了一個星期了,真得弄不清楚到底是因為什麼傳送不成功,bang老師你可以指點一下嗎?
相關文章
- 用過javamail的朋友幫幫忙,我真的沒有辦法了?!!!JavaAI
- 學習JF框架報錯,求banq老師幫幫忙框架
- banq 老師幫忙啊 如何設定log4j???
- 有關javaAPI,請各位高手幫忙,拜謝JavaAPI
- 請高手幫忙了,關於javamail的問題JavaAI
- 實在是解決不了,請各位高手幫忙
- 關於熱搜「原來吃辣是有好處的」是真的嗎?
- Struts2筆記05 action操作域物件筆記物件
- 安裝jivajond3出現的問題,求banq老師幫忙!
- 求助:SimpleJdonFrameworkTest+JBOSS配置,執行出錯。banq老師幫忙看看Framework
- 釋出成功了,但客戶段呼叫有問題,幫幫忙啊
- 請bang老師幫我看下這樣說面向服務和麵向物件的關係是否正確,謝謝物件
- 請教bang老師關於自定義classloader的一些問題
- 【公式】網上說的幫助上岸是真的嗎公式
- 關於struts2 action中map型別屬性的對映型別
- 要你命三千:老程式碼中的那些坑
- struts2 action中result引數詳解
- synchronized關鍵字問題?各位高手,幫幫忙!synchronized
- 有關java的unicode編碼的問題,大家幫忙JavaUnicode
- 有關單體模式設計的問題,請大家幫忙模式
- 請教bang老師:對於java,javaee未來的疑惑?Java
- 【日記】有老師帶真的會好很多(1080 字)
- 遊戲羊了個羊能過關嗎?羊了個羊通關率不足0.1%是真的嗎遊戲
- bang老師請一定要看我的這個問題 關於main方法的AI
- 給老師的作文:育兒經驗-父母是孩子最好的老師薦
- 求救~幫忙看一段程式碼是做什麼用的~
- Struts2 中jsp直接跳轉到actionJS
- 閱讀和實踐是最好的老師
- 高手幫忙
- 高手幫忙!
- BANG老師: 請教一下Hibernate的session問題Session
- 什麼是 CookieCookie
- Cookie的相關操作Cookie
- 什麼是cookie,什麼是sessionCookieSession
- cookie是什麼?和session有什麼區別?CookieSession
- 小企業抱怨谷歌援助是噱頭:幫不上忙還燒錢谷歌
- Ehcahe操作無效,希望各位能幫忙解決
- 問一個關於SSH整合是在action中應用session的問題Session