博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2的学习-通配符和session对象
阅读量:4581 次
发布时间:2019-06-09

本文共 6104 字,大约阅读时间需要 20 分钟。

一、 取得session 3种方法
1、context.getSession() -->>Map对象
2、HttpServletRequest request =
(HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);  
再通过request 对象取得HttpSession
3、实现SessionAware接口,让strtus自动注入session实例给我们。 
二、
1.创建新项目,基本和一样,主要修改两个文件的代码
2.修改struts.xml

2.sesstion方法,编写UserAction.java

 

package com.nf.action;import com.nf.entity.User;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import org.apache.struts2.interceptor.SessionAware;import java.util.Map;public class UserAction extends ActionSupport implements ModelDriven
{ private User user = new User(); //登录用的 public String login(){ System.out.println("用户名:"+user.getUserName()); if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){ //登陆成功后,干什么? return this.SUCCESS; }else { return this.ERROR; } } //跳转到登陆页面的方法 public String loginView(){ return "loginViewSuccess"; } //不需要手动调用 public User getModel() { //告诉struts,你帮我对user进行赋值 System.out.println("struts 调用我们的getModel,获得user的实例"); return this.user; }}

方法1:

package com.nf.action;import com.nf.entity.User;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import org.apache.struts2.interceptor.SessionAware;import java.util.Map;public class UserAction extends ActionSupport implements ModelDriven
{ private User user = new User(); //登录用的 public String login(){ System.out.println("用户名:"+user.getUserName()); if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){ //登陆成功后,干什么? //第一种方法:通过context获得Map对象 //主动获得实例 ActionContext context = ActionContext.getContext(); Map
session = context.getSession(); session.put("user",user); return this.SUCCESS; }else { return this.ERROR; } } //跳转到登陆页面的方法 public String loginView(){ return "loginViewSuccess"; } //不需要手动调用 public User getModel() { //告诉struts,你帮我对user进行赋值 System.out.println("struts 调用我们的getModel,获得user的实例"); return this.user; }}

 

方法2:

 

package com.nf.action;import com.nf.entity.User;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.sun.net.httpserver.HttpServer;import org.apache.struts2.StrutsStatics;import org.apache.struts2.interceptor.SessionAware;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.util.Map;public class UserAction extends ActionSupport implements ModelDriven
{ private User user = new User(); //登录用的 public String login(){ System.out.println("用户名:"+user.getUserName()); if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){ //登陆成功后,干什么? /* //第一种方法:通过context获得Map对象 //主动获得实例 ActionContext context = ActionContext.getContext(); Map
session = context.getSession(); session.put("user",user);*/ //第2种方法 //对javaweb 产生强耦合 ActionContext context = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest)context.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);//这里的错误要导入 HttpSession session = request.getSession(); session.setAttribute("user",user); return this.SUCCESS; }else { return this.ERROR; } } //跳转到登陆页面的方法 public String loginView(){ return "loginViewSuccess"; } //不需要手动调用 public User getModel() { //告诉struts,你帮我对user进行赋值 System.out.println("struts 调用我们的getModel,获得user的实例"); return this.user; }}

添加之后要选上

方法3:

 

package com.nf.action;import com.nf.entity.User;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.sun.net.httpserver.HttpServer;import org.apache.struts2.StrutsStatics;import org.apache.struts2.interceptor.SessionAware;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.util.Map;public class UserAction extends ActionSupport implements ModelDriven
,SessionAware{ //定义为null,不要管它怎么来 private Map
session = null; private User user = new User(); //登录用的 public String login(){ System.out.println("用户名:"+user.getUserName()); if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){ //登陆成功后,干什么? /* //第一种方法:通过context获得Map对象 //主动获得实例 ActionContext context = ActionContext.getContext(); Map
session = context.getSession(); session.put("user",user);*/ /*//第2种方法 //对javaweb 产生强耦合 ActionContext context = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest)context.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST); HttpSession session = request.getSession(); session.setAttribute("user",user);*/ //第3种方法,实现SessionAware直接注入实例 System.out.println("session:" +session); session.put("user",user); return this.SUCCESS; }else { return this.ERROR; } } //跳转到登陆页面的方法 public String loginView(){ return "loginViewSuccess"; } //不需要手动调用 public User getModel() { //告诉struts,你帮我对user进行赋值 System.out.println("struts 调用我们的getModel,获得user的实例"); return this.user; } //用于被框架注入实例用的,不需要手动调用//这里为方法SessionAware可以用快捷键ALT+ENTER
public void setSession(Map 
map) { session = map; } }

  

地址:

转载于:https://www.cnblogs.com/junhua4254/p/7601673.html

你可能感兴趣的文章
平时二测
查看>>
python之字符编码
查看>>
View 的measure 和onMeasure
查看>>
mysql笔记02 创建高性能的索引
查看>>
国外免费空间
查看>>
构建linux内核树
查看>>
Linux C 信号处理
查看>>
第三次作业
查看>>
tomcat
查看>>
MUI开发注意事项
查看>>
elasticsearch摸石头过河——常用数据类型(二)
查看>>
scrum立会报告+燃尽图(第三周第三次)
查看>>
[SQL] 获取 Microsoft SQL Server 2008 的数据表结构
查看>>
iOS进度指示器——NSProgress
查看>>
C语言strcat,ctrcpy函数原型和改进
查看>>
good bye 2015 B - New Year and Old Property
查看>>
(第4篇)hadoop之魂--mapreduce计算框架,让收集的数据产生价值
查看>>
万年历-农历-农历日期
查看>>
如何辞职
查看>>
SSO 单点登录总结(PHP)
查看>>