📄 updatemyinfo.java
字号:
package cn.ialvin.bbs.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.ialvin.bbs.bean.User;
import cn.ialvin.bbs.common.Tools;
import cn.ialvin.bbs.dao.DAOFactory;
import cn.ialvin.bbs.dao.IUserDAO;
import cn.ialvin.web.Servlet;
import cn.ialvin.web.upload.File;
import cn.ialvin.web.upload.Upload;
import cn.ialvin.web.upload.UploadFilter;
import cn.ialvin.web.upload.exception.UploadException;
public class UpdateMyInfo extends Servlet implements UploadFilter {
private static final long serialVersionUID = 1L;
public UpdateMyInfo() { super(); }
public void destroy() { super.destroy(); }
public void doAction(
HttpServletRequest request,
HttpServletResponse response,
PrintWriter out,
DAOFactory factory)
throws ServletException, IOException {
Upload upload = null;
try {
upload = new Upload(request);
upload.setAllowMax(5 * Upload.M); // 5 M
upload.setFilter(this);
String vcode = upload.getSingleParameter("vcode");
if (!vcode.equals(request.getSession().getAttribute("VCode"))) {
this.alert("验证码不正确!", out);
return;
}
String email = upload.getSingleParameter("email");
if (!email.matches("^(\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)$")) {
this.alert("非法进入!", out);
this.replace("../Index", out);
return;
}
String un = upload.getSingleParameter("un").trim();
if ("".equals(un)) {
this.alert("非法进入!", out);
this.replace("../Index", out);
return;
}
String sign = upload.getSingleParameter("sign").trim();
Object obj = request.getSession().getAttribute("usr");
if (obj == null) {
this.alert("你未登录或登录超时,请先登录!", out);
this.replace("../login.jsp", out);
}
User usr = (User)obj;
if ("yes".equals(upload.getSingleParameter("cPwd"))) {
String pwd = upload.getSingleParameter("opwd");
pwd = Tools.encodeMD5(pwd);
if (!pwd.equals(usr.getPwd())) {
this.alert("旧密码不正确!", out);
this.back(out);
return;
}
pwd = upload.getSingleParameter("pwd");
if (!pwd.matches("^[\\da-z]{4,12}$")) {
this.alert("非法进入!", out);
this.replace("../Index", out);
return;
}
pwd = Tools.encodeMD5(pwd);
usr.setPwd(pwd);
}
File pic = upload.getSingleFile("pic");
if (pic != null
&& !"".equals(pic.getName().trim())
&& "image".equals(pic.getTypeMIME())
&& pic.getExt().matches("(?i)^JPG|GIF|BMP|PNG$")) {
String path = "/userheads/" + usr.getId() + "." + pic.getExt();
String sPath = this.application.getRealPath(path);
java.io.File sFile = new java.io.File(sPath);
boolean flag = pic.saveAs(sFile, true);
if (!flag) {
this.alert("头像保存失败!", out);
} else {
usr.setHead(path.replaceAll("^\\/|^\\\\", ""));
}
}
usr.setEmail(email);
usr.setName(un);
usr.setSign(sign);
IUserDAO ud = factory.getUserDAO();
boolean flag = ud.updateUser(usr);
if (flag)
this.alert("修改成功!", out);
else
this.alert("更新失败!", out);
this.replace("MyInfo", out);
} catch (UploadException e) {
e.printStackTrace();
this.alert(e.getMessage(), out);
this.back(out);
} catch (SQLException e) {
e.printStackTrace();
this.alert("服务器繁忙,请稍候再访问。", out);
this.back(out);
} finally {
if (upload != null)
upload.destory();
}
}
public boolean doFilter(String field, String path, String ext, String contentType) {
if (!Upload.checkInStrI("GIF|JPG", ext)) {
return false;
}
if (!Upload.checkInStr("pic", field)) {
return false;
}
if (!contentType.startsWith("image/")) {
return false;
}
return true;
}
public boolean filterSize(String field, String path, String ext, String contentType, int size) {
if (size > (3*Upload.M)) {
return false;
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -