/*
* 第三种方式:
* 不是获取map的request session application
* 这是与容器绑定servlet的方式,非Ioc的,需要在execute方法中初始化
* 这里关注一个类ServletActionContext
*/
//public class LoginAction extends ActionSupport {
// private String username;
//
// private String password;
//
// HttpServletRequest request;
// HttpSession session;
// ServletContext application;
//
// public String getUsername() {
// return username;
// }
//
// public void setUsername(String username) {
// this.username = username;
// }
//
// public String getPassword() {
// return password;
// }
//
// public void setPassword(String password) {
// this.password = password;
// }
//
// public String execute() {
// if (username.trim().equals("admin") && password.equals("1111")) {
//
// request = ServletActionContext.getRequest();
// session = request.getSession();
// application = ServletActionContext.getServletContext();
//
// request.setAttribute("req", "request属性");
// session.setAttribute("sess", "session属性");
// application.setAttribute("app", "application属性");
// return "success";
// } else {
// return "fail";
// }
// }
//}
/*
* 第四种方式:IOC
* 不是获取map的request session application
* 这是与容器绑定servlet的方式,Ioc的,不需要在execute方法中初始化
* 这里要实现两个接口ServletRequestAware,ServletContextAware
*/
public class LoginAction extends ActionSupport implements ServletRequestAware,ServletContextAware{
private String username;
private String password;
HttpServletRequest request;
HttpSession session;
ServletContext application;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() {
if (username.trim().equals("admin") && password.equals("1111")) {
session = request.getSession();
request.setAttribute("req", "request属性");
session.setAttribute("sess", "session属性");
application.setAttribute("app", "application属性");
return "success";
} else {
return "fail";
}
}
public void setServletRequest(HttpServletRequest arg0) {
this.request = arg0;
}
public void setServletContext(ServletContext arg0) {
this.application = arg0;
}
}
前台:
<h1>""登陆成功</h1>
普通属性接收:
username:<s:property value="username" /><br>
password:<s:property value="password" /><br>
request属性接收:${requestScope.request.req}-----------<s:property value="#request.req"/><br>
session属性接收<s:property value="#session.sess"/><br>
application属性接收<s:property value="#application.app"/><br>
返回<a href="index.action">主页</a>
<!--EndFragment-->
本文详细介绍了使用Struts2框架实现登录功能的两种方法。一种是非IoC方式,在execute方法中手动初始化请求、会话及应用上下文;另一种是通过实现特定接口达到IoC效果,简化了初始化过程。文章通过具体代码示例展示了如何验证用户名和密码,并设置不同作用域的属性。
&spm=1001.2101.3001.5002&articleId=83471723&d=1&t=3&u=2f0e02dbe9a045d5907c276b1220ccbc)
946

被折叠的 条评论
为什么被折叠?



