方法一:通过ActionContext访问SerlvetAPI,这种方式没有侵入性
Action类部分代码
import com.opensymphony.xwork2.ActionContext;

    public String execute() throws Exception {
if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
//获取Map方式的request
//ActionContext.getContext().put("msg", "登录成功");
//获取Map方式的Session
//ActionContext.getContext().getSession().put("msg", "登录成功");
//获取Map方式的Application
ActionContext.getContext().getApplication().put("msg", "登录成功");
return "success"; } return "error";
}
方法二:通过ServletActionContext访问SerlvetAPI,这种方式没有侵入性,建议使用这种方式
Action类部分代码
import org.apache.struts2.ServletActionContext;
public String execute() throws Exception {
if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
ServletActionContext.getRequest().setAttribute("msg", "登录成功");
ServletActionContext.getResponse();
ServletActionContext.getPageContext().setAttribute("msg", "登录成功");
ServletActionContext.getRequest().getSession().setAttribute("msg", "登录成功");
return "success"; } return "error";
}
方法三:实现装配接口,实现方法(ServletRequestAware,ServletResponseAware)
Action类
package com.djoker.struts2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware; public class LoginAction implements ServletRequestAware,ServletResponseAware{ private User user; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} private HttpServletRequest request; private HttpServletResponse response; public String execute() throws Exception {
if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
this.request.setAttribute("msg", "登录成功");
return "success"; } return "error";
} @Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
} @Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
} }

struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式的更多相关文章

  1. Action访问ServletAPI的三种方式

    一.前言 Struts是一种基于MVC设计模式的web应用框架,主要担任C的角色,用于分离页面显示和业务逻辑处理,那其实在我们学习jsp的时候学过一个具有类似功能的东西——servlet.其实Stru ...

  2. Struts2学习(二)运行Action中方法的三种方式

    1.运行execute()方法 一般的能够直接在action中书写execute,调用action时会自己主动运行此方法 2.配置method方法 在struts.xml中配置action时.写met ...

  3. Struts2学习笔记三:深入Action

    一:Action中获取参数值 在Servlet中,我们通过doGet()/doPost()方法中的参数,获取request/response对象,然后提取参数值: 处理请求结束后,有数据需要携带返回客 ...

  4. struts2学习笔记2 -struts2的开发步骤和工作原理

    struts2的开发步骤: 1.先定义一个能发送请求的页面,可以是链接,也可以是表单(form) 2.开发action类,struts2对action并没有过多的要求,只要求: a 推荐实现actio ...

  5. Cocos2d-x学习笔记(五岁以下儿童) 精灵两种方式播放动画

     这几天在看控件类,临时没有想好实际运用的方向.单纯的创建网上已经有非常多这方面的样例,我就不写了.接下来是学习精灵类.精灵类若是单独学习也是非常easy.于是我加了一些有关动画方面的知识点与精灵 ...

  6. struts2学习笔记(2)---Action中訪问ServletAPI获取Map类型的Servlet元素

    源码: strust.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...

  7. struts2学习笔记(3)---Action中訪问ServletAPI获取真实类型的Servlet元素

    一.源码: struts.xml文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE s ...

  8. struts2学习笔记(2)action多个方法的动态调用

    ①在struts.xml中的action添加method <action name="addhelloworld" method="add" class= ...

  9. struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)

    贴一个简单的例子,通过jquery的post调用action,定义一个对象User,有name和age属性,实例化几个对象,以json的格式返回到jsp,在前台页面显示出来,模拟用户列表. 导入相关j ...

随机推荐

  1. gc roots 垃圾回收

    gc roots包括以下几个: 虚拟机栈(栈桢中的本地变量表)中的引用对象 方法区中的类静态属性引用的对象 方法区中的常量引用的对象 本地方法栈中JNI(即native方法)的引用的对象 java,c ...

  2. Web调用FastReport的配置问题

    1.修改配置webconfig文件 IIS6: <system.web> <httpHandlers> <add path="FastReport.Export ...

  3. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  4. [LeetCode] 423 Reconstruct Original Digits from English

    Given a non-empty string containing an out-of-order English representation of digits 0-9, output the ...

  5. 转行IT行业的心路历程

    以时间顺序记叙我的这些年 2008/09-2011/07 大学学的机械设计,但是没有全身心的投入学习,大部分时间忙着打零工,赚取生活费学费,因为不想让父母太大负担.在大二时成功申请了提前一年毕业,也就 ...

  6. windows环境下安装win8.1+Mac OS X 10.10双系统教程

    首先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区 ...

  7. 移动Web开发中遇见的问题以及解决方法(不断更新中)

    20160524 问题:在使用des加密数据后,作为url参数传递发现,系统会把+自动变为空格,以至于解密的时候出现问题. 例如:uKsRUwdU6+83+J9WfgfflA== 传到服务端后 变为u ...

  8. Linux内核分析之可执行程序的装载和启动

    一.内容分析 1.可执行文件的创建 (1)预处理阶段 预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换,预处理过程还会删除程序中的注释和多余的空白字符.其中预处理指令主 ...

  9. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

  10. SQL SERVER 2000数据库置疑处理

    由于服务器意外的断电,导致SQL SERVER服务器上数据库出现“置疑”而无法使用,通过网上搜索,找到以下方法解决问题,这里记录一下: 产生数据库置疑的时侯,数据库文件和日志文件都是存在的,如果数据库 ...