⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 updatemyinfo.java

📁 又一个课程设计 简易 JSP 论坛 功能较简单的那种, 界面上模仿了 Discuz JSP 本来就学的不行, 只是尽量实现了 MVC
💻 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 + -