📄 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 + -