1、标题标题标题,第一级,第二级,第三级,*,Web元素获取和方法调用PPT讲座,本讲要点与教学目标,【,教学要点,】,1,、依赖于容器的,Map,类型,Web,元素获取,2,、依赖于容器的真实类型,Web,元素获取,Action,中获取,Web,元素的方法,1.,依赖于容器(,ActionContext,)获取,Map,类型的,Web,元素,2.,依赖于容器(,ServletActionContext,)获取真实类型的,Web,元素,Action,对,Web,请求的处理中,仅获取,Web,请求参数是不够的,还需要获取,request,、,session,、,application,等,Web,元
2、素的信息。,Struts2,框架中获取,Web,元素的方法有:,通过,ActionContext,获取,Map,类型,Web,元素,【,ActionContext,】,是,Action,执行的上下文,提供一系列相关方法用于访问保存在,HttpServletRequest,、,HttpSession,、,ServletContext,中的信息,并将其存储在,Map,中。,【,ActionContext,对象获取,】,通过,ActionConext,类的静态方法,getContext(),【,ActionContext,常用方法,】,public,Object get(String key),:,
3、获取,ActionContext,中指定键名的元素对象,public,Map getSession(),:,获取,session,元素对象,public,Map getApplication(),:,获取,application,元素对象,【,Map,常用方法,】,public void,put(String key,Object value),:向,Map,对象中添加一个具有键名标识的元素,public Object,get(Object key),:从,Map,对象中获取指定的元素,通过,ActionContext,获取,Map,类型,Web,元素,【,在,Action,中获取,Web,元
4、素的方法,】,1.,获取,ActionContext,对象,ActionContext ac=,ActionContext.getContext();,2.,通过,ActionContext,对象获取,Map,类型的,Web,元素,Map s=ac.getSession();,或:,Map s=(Map)ac.get(session);,3.,使用,Map,对象的,put/get,方法添加,/,获取属性,s.put(username,lucky);,【,JSP,中获取,Web,元素属性方法,】,1.,通过,JSP,脚本元素,2.,通过,Struts2,框架标签和,OGNL,表达式,通过,Act
5、ionContext,获取,Web,元素,【,基本思路,】,采用模型驱动的方式获取用户登录信息,【,基本步骤,】,1.,创建视图:用户登录页,login1.jsp,;,2.,模型创建:创建数据模型,User.java,;创建,ActionLoginAction1.java,3.,创建视图:登录成功页,success1.jsp,4.struts.xml,配置,【,案例说明,】,以“用户登录”业务为例,在登录,Action,中获取,Map,类型的,request,、,session,、,application,元素,并对其属性进行设置,在,JSP,视图中输出各元素的属性值。,通过,ActionCo
6、ntext,获取,Web,元素,【,用户登录页,】,通过,ActionContext,获取,Web,元素,【,数据模型,User.java,】,public class User,private String username;,private String password;,/,此处省略,getter,和,setter,方法,通过,ActionContext,获取,Web,元素,【,LoginAction1.java,】,通过,ActionContext,获取,Web,元素,通过,ActionContext,获取,Web,元素,【,success1.jsp,】,通过,ActionConte
7、xt,获取,Web,元素,【,success1.jsp,】,通过,ActionContext,获取,Web,元素,【,struts.xml,配置,】,/success1.jsp,/login1.jsp,通过,ActionContext,获取,Web,元素,【,简单总结,】,(,1,)在,Action,中声明,Map,类型变量,(,2,)通过,ActionContext,对象获取指定,Web,元素,(,3,)通过,put(),方法为,Web,元素添加属性,通过,get(),方法获取,Web,元素的属性值,(,4,)在,JSP,中通过,Struts2,标签获取属性值,格式,:,通过,Servlet
8、ActionContext,获取,Web,元素,【,问题,】,通过,ActionContext,获取的,Web,元素是,Map,形式的,这对于习惯了,Servlet,编程的开发人员可能不太习惯,【,解决方法,】,Struts2,框架中可以通过,ServletActionContext,类 获取,ServletAPI,对象,【,ServletActionContext,的常用方法,】,public static HttpServletRequest getRequest(),:获取请求对象,public static ServletContext,getServletContext(),:获取应
9、用程序对象,【,思考,】,获取,HttpSession,的方法?,真实类型,Web,元素的获取,【,基本思路,】,1,、在,Action,中使用真实类型的,Web,元素,即通过,ServletActionContext,获取,HttpServletRequest,、,HttpSession,、,ServletContext,类型的,Web,元素。,2,、在视图中输出,Web,元素属性的方法不变。,【,说明,】,本案例课件中仅给出,Action,的定义,其它参考案例,1,真实类型,Web,元素的获取,【,LoginAction2.java,】,真实类型,Web,元素的获取,【,LoginAction2.java,】,真实类型,Web,元素的获取,【,LoginAction2.java,】,【,说明,】,此种方式将,Action,组件与,Servlet,容器紧密耦合,不利于整个框架的设计,不推荐使用。,






