CheckLogonServlet.java
验证用户登陆信息的Servlet,此程序调用了CookieUtil.java中的saveCookie方法
package cn.itcast.servlet;
/* * update 2007.09.23 by lyhapple * 检查用户登陆 * */
import java.io.IOException;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
import cn.itcast.bean.User; import cn.itcast.dao.UserDAO; import cn.itcast.factory.DaoImplFactory; import cn.itcast.util.CookieUtil;
public class CheckLogonServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String username = request.getParameter("username").trim(); String password = CookieUtil.getMD5(request.getParameter("password")); String remeberMe = request.getParameter("remeberMe"); HttpSession session = request.getSession(false);
// 将接收到的用户名传递到UserDao的checkUser方法中,检查用户 // 返回一个User类型的对象 UserDAO ud = DaoImplFactory.getInstance(); User user = ud.selectUserByUsername(username); if (user == null) { request.setAttribute("checkUserError","<a href='register.jsp'><font color=red>用户名不存在,请先注册</font></a>"); request.getRequestDispatcher("index.jsp").forward(request, response); return; }
if(!password.equals(user.getPassword())){ request.setAttribute("checkPasswordError","<font color=red>密码输入错误,请重新输入</font>"); request.getRequestDispatcher("index.jsp").forward(request, response); return; }
//保存Cookie,这里调用了CookieUtil.java中的saveCookie方法,将上面的user对象作为参数传递 if ("on".equals(remeberMe)) { CookieUtil.saveCookie(user, response); } //在Session中保存用户信息,并转向用户的个人信息页面 session.setAttribute("user", user); request.getRequestDispatcher("User/userInfo.jsp").forward(request,response); } } |
UserDAO.java与DaoImplFactory.java属于持久层相关的程序,这里就不贴出来了,读者可根据自己需要选择不同的持久层框架,在本程序中只要实现查询用户的功能就可以了