第六个版本,我们将User的信息放到Session中,这里的关键是在Action中取得Session对象,然后将对象保存到Session中,最后在jsp页面中取得该对象。
更新后的代码
LoginAction.java
package com.coderdream.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.hp.gddc.ad.db.UserDao;
import com.hp.gddc.ad.form.LoginForm;
import com.hp.gddc.ad.vo.UserView;
public class LoginAction extends Action {
/**
* 处理客户端请求
*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 得到客户的的提交数据
LoginForm lf = (LoginForm) form;
UserDao userDao = new UserDao();
String userName = lf.getUserName();
String password = lf.getPassword();
UserView userView = new UserView();
userView.setUserName(userName);
userView.setPassword(password);
int result = userDao.queryUser(userName, password);
// 业务调用
if (1 <= result) {
HttpSession session = request.getSession();
session.setAttribute("userView", userView);
// 用户名密码验证成功,跳转到成功页面
return mapping.findForward("success");
} else {
// 用户名密码错误,跳转到失败页面
return mapping.findForward("failing");
}
}
}
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录成功</title>
</head>
<body>
用户登录成功!
<br> 对象保存在Session中:
<logic:present name="userView" scope="session">
<bean:write name="userView" property="userName" />
</logic:present>
</body>
</html:html>