?? useroperation.java
字號:
/**
* @(#)tarena.action.UserOperation.java 2008-11-5
* Copy Right Information : Tarena
* Project : xindou
* JDK version used : jdk1.6.4
* Comments : 用戶操作類。
* Version : 1.0
* Sr Date Modified By Why & What is modified
* 1. 2008-11-5 小豬 新建
**/
package tarena.action;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.Set;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.MappingDispatchAction;
import org.apache.struts.upload.FormFile;
import tarena.dao.LevelsDAO;
import tarena.dao.UserDAO;
import tarena.entity.Receiveaddress;
import tarena.entity.User;
import tarena.form.LoginForm;
import tarena.form.RegisterForm;
import tarena.form.UploadFileForm;
import tarena.form.UserForm;
import tarena.global.CookieOperate;
import tarena.global.PublicParameter;
import tarena.global.Transform;
/**
* 用戶操作類。<br>
* 用戶注冊、登陸、修改個人信息等。
* 2008-11-5
* @author 達內科技[Tarena Training Group]
* @version 1.0
* @since JDK1.6(建議)
*/
@SuppressWarnings("unchecked")
public class UserOperation extends MappingDispatchAction {
/**
* 用戶注冊
*/
public ActionForward register(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setAttribute("title", "用戶注冊 -");
return mapping.findForward("register");
}
/**
* 用戶注冊
*/
public ActionForward registerok(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
RegisterForm rform = (RegisterForm)form;
if(!rform.getPassword().equals(rform.getRepassword())){
ActionMessages msgs=new ActionMessages();
msgs.add("repassword", new ActionMessage("tip.passwordnotmatch"));
saveErrors(request, msgs);
return mapping.findForward("fail");
}
UserDAO userDAO = new UserDAO();
User user = new User();
user.setUsername(rform.getUsername());
user.setPassword(rform.getPassword());
user.setMobile(rform.getMobile());
user.setEmail(rform.getEmail());
user.setSex(new Byte("0"));
user.setRegistertime(new Date());
user.setLevels(new LevelsDAO().findById(1));
userDAO.save(user);
// setAttribute(request,"恭喜,注冊成功! -","注冊會員","恭喜,注冊成功!稍后將以會員的身份登陸首頁","default.htm");
// //request.getSession().setAttribute("username", rform.getUsername());
// Cookie cookie = new Cookie(PublicParameter.cookie_user,rform.getUsername());
// cookie.setMaxAge(-1);
// cookie.setPath("/");
// CookieOperate.SaveCookie(cookie, response);
// return mapping.findForward("message");
//注冊成功后,調用登錄模塊,進行登錄
LoginForm lf = new LoginForm();
lf.setUsername(user.getUsername());
lf.setPassword(user.getPassword());
lf.setExpires(-1+"");//默認cookie的有效期為瀏覽器進程
return sendlogin(mapping, lf, request, response);
}
/**
* 驗證注冊碼
*/
public ActionForward validateCode(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setStatus(200);
return null;
}
/**
* 驗證用戶名
*/
public ActionForward validateName(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setStatus(200);
return null;
}
/**
* 驗證錯誤
*/
public ActionForward errorRe(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
//System.out.println("come error");
response.setStatus(529);
return null;
}
/**
* 用戶登陸
*/
public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setAttribute("title", "會員登錄 -");
return mapping.findForward("login");
}
/**
* 用戶提交登陸
*/
public ActionForward sendlogin(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
LoginForm lform = (LoginForm)form;
UserDAO userDAO = new UserDAO();
String lastvisite = null;
try {
lastvisite = request.getSession().getAttribute(PublicParameter.LAST_PAGE).toString();
} catch (RuntimeException e) {
}
if(!isNull(lform.getUsername()) && !isNull(lform.getPassword()) && !isNull(lform.getExpires())){
if(userDAO.isRegisterUser(lform.getUsername())){
if(userDAO.isRegisterUser(lform.getUsername(), lform.getPassword())){
if(!isNull(lastvisite)){
setAttribute(request, "登陸成功 -", "會員登錄", "恭喜,登陸成功!稍后將跳轉到您最近訪問的頁面.", lastvisite);
}else{
setAttribute(request, "登陸成功 -", "會員登錄", "恭喜,登陸成功!稍后將跳轉到首頁.", "default.htm");
}
Cookie cookie = new Cookie(PublicParameter.cookie_user,lform.getUsername());
cookie.setMaxAge(Transform.StringToInteger(lform.getExpires())*60);
cookie.setPath(request.getContextPath());
CookieOperate.SaveCookie(cookie, response);
}else
setAttribute(request, "登陸錯誤 -", "會員登陸", "您輸入的密碼不正確!", "");
}else
setAttribute(request, "登陸錯誤 -", "會員登陸", "您輸入的用戶名不存在!", "");
}else
setAttribute(request, "登陸錯誤 -", "會員登陸", "用戶名或密碼不能為空!", "");
return mapping.findForward("message");
}
/**
* 檢測某字符串是否為空。
* @param str 字符串
* @return 返回是否為null或者"";
*/
private boolean isNull(String str){
return str==null || str.equals("");
}
/**
* 設置消息的屬性。
* @param request
* @param title 標題
* @param operation_title 操作的標題。
* @param operation_content 操作的內容。
* @param redirect_url 跳轉到的url。
*/
private void setAttribute(HttpServletRequest request,String title,String operation_title,String operation_content,String redirect_url){
request.setAttribute("title", title);
request.setAttribute("operation_title", operation_title);
request.setAttribute("operation_content", operation_content);
request.setAttribute("redirect_url", redirect_url);
}
/**
* 用戶退出
*/
public ActionForward logout(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
Cookie cookie = CookieOperate.FindCookie(PublicParameter.cookie_user, request.getCookies());
if(cookie!=null){
cookie.setMaxAge(0);
cookie.setPath("/");
CookieOperate.DeleteCookie(cookie, response);
setAttribute(request, "會員退出 -", "會員退出", "已經清除了您的登錄信息, 稍后您將以游客身份返回首頁", "default.htm");
}else
setAttribute(request, "錯誤 -", "錯誤", "非法訪問本頁面!", "default.htm");
return mapping.findForward("message");
}
/**
* 用戶控制面板首頁
*/
public ActionForward usercp(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
saveUserToSession(request);
return mapping.findForward("usercp");
}
/**
* 保存用戶信息。
*
* @param request
*/
private void saveUserToSession(HttpServletRequest request){
request.setAttribute("title", "用戶控制面板");
User user = getUser(request);
if(user!=null)
request.setAttribute("user", user);
}
private User getUser(HttpServletRequest request){
User user = null;
String username = CookieOperate.FindCookie(PublicParameter.cookie_user, request.getCookies()).getValue();
if(username!=null)
user = new UserDAO().findUserByUsername(username);
return user;
}
/**
* 編輯個人檔案
*/
public ActionForward usercpprofile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
saveUserToSession(request);
return mapping.findForward("usercpprofile");
}
/**
* 保存個人檔案
*/
public ActionForward save_usercpprofile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
User user = getUser(request);
if(user!=null){
UserForm uform = (UserForm)form;
user.setSex(Byte.valueOf(uform.getGender()));
user.setNickname(uform.getNickname());
user.setEmail(uform.getEmail());
if(uform.getShowemail()!=null)
user.setEmailsecret(Byte.valueOf(uform.getShowemail()));
else
user.setEmailsecret(new Byte("0"));
user.setMobile(uform.getMobile());
user.setPhone(uform.getPhone());
user.setHomepage(uform.getWebsite());
user.setComefrom(uform.getLocation());
user.setQq(uform.getQq());
user.setMsn(uform.getMsn());
user.setSkype(uform.getSkype());
user.setIcq(uform.getIcq());
user.setYahoo(uform.getYahoo());
user.setSelfshow(uform.getBio());
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -