Action中访问ServletAPI.

主要就是接收表单参数及向域对象中存取值.

关于SevletAPI的方法在Action中有三种方式:

1.完全解耦合的形式:

* 使用一个类:ActionContext.

* static ActionContext getContext(); --- 获得ActionContext对象

* Map getParameters();                   --- 接收提交到Action中的参数.

* Map getSession();                      --- 获得Session的Map.

* Map getApplication();                  --- 获得Application的Map.

* void put(String key,Object value); --- 向request中存值.

* Object get(String key);                --- 从request中获得值.

* 代码实现:

// 获得ActionContext对象

ActionContext context = ActionContext.getContext();

// 获得表单提交参数:

Map<String,Object> map = context.getParameters();

String[] username = (String[]) map.get("username");

System.out.println(username[0]);

String[] password = (String[]) map.get("password");

System.out.println(password[0]);

// 向request域中存值

context.put("reqName", "reqValue");

System.out.println("request域中的值:"+context.get("reqName"));

// 向session域中存值

context.getSession().put("sessName", "sessValue");

System.out.println("session域中的值:"+context.getSession().get("sessName"));

// 向ServletContext中存值

context.getApplication().put("appName", "appValue");

System.out.println("application域中的值:"+context.getApplication().get("appName"));

2.使用接口注入的方式:

* 实现接口:

* ServletRequestAware

* ServletResponseAware

* ServletContextAware

* 代码实现:

public class RequestAction2 extends ActionSupport implements ServletRequestAware,ServletContextAware{

private HttpServletRequest request;

private ServletContext context;

@Override

public String execute() throws Exception {

// 1.接收参数:

String username = request.getParameter("username");

String password = request.getParameter("password");

System.out.println(username +"   "+password);

// 2.向request域中存值:

request.setAttribute("reqName", "李健");

// 3.向session域中存值:

request.getSession().setAttribute("sessName", "凤姐");

// 4.向application域中存值.

context.setAttribute("appName", "芙蓉");

return SUCCESS;

}

public void setServletRequest(HttpServletRequest request) {

this.request = request;

}

public void setServletContext(ServletContext context) {

this.context = context;

}

}

3.使用ServletActionContext中静态方法:

方法:

* getRequest();

* getResponse();

* getServetContext();

代码:

// 1.接收参数:

HttpServletRequest request = ServletActionContext.getRequest();

String username = request.getParameter("username");

String password = request.getParameter("password");

System.out.println(username+"    "+password);

// 2.向request域中存值:

request.setAttribute("reqName", "小健健");

// 3.向session域中存值:

request.getSession().setAttribute("sessName", "小凤凤");

// 4.向application中存值:

ServletActionContext.getServletContext().setAttribute("appName", "小蓉蓉");

***** 第一种方式是最好的!习惯第三种用的很方便.

struts2 servlet api 访问方式的更多相关文章

  1. 配置Struts2及Struts2访问servlet api的方式

    Struts2的起源与背景 在很长的一段时间内,在所有的MVC框架中,Struts1处于绝对的统治地位,无论是从市场的普及范围,还是具体的使用者数量. 其他MVC框架都无 法与其相比,作为一一款优秀的 ...

  2. Struts 2 访问Servlet API的方式

    与Servlet API解耦的访问方式 与Servlet API耦合的访问方式 (tips:耦合既依赖) 1.    与Servlet API解耦的访问方式 2.     与Servlet API耦合 ...

  3. 3、Struts2的API访问和数据封装

    一.API的访问 在使用Struts2的框架的过程中,发现Struts2和Servlet的API是解耦合的.在实际开发中,经常使用到Servlet的API,比如进行登录,将用户的信息保存到Sessio ...

  4. JAVA框架Struts2 servlet API

    一:servlet API 1)完全解耦接口: 使用ActionContext类进行相关操作: package jd.com.actioncontex; import com.opensymphony ...

  5. Struts2中获取servlet API的几种方式

    struts2是一个全新的MVC框架,如今被广大的企业和开发者所使用,它的功能非常强大.这给我们在使用servlet 纯java代码写项目的时候带来了福音.但是一般来说,我们的项目不到一定规模并不需要 ...

  6. Struts2学习笔记(五)——Action访问Servlet API

    在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...

  7. Struts2中使用Servlet API步骤

    Struts2中使用Servlet API步骤 Action类中声明request等对象 Map<String, Object> request; 获得ActionContext实例 Ac ...

  8. java:struts框架2(方法的动态和静态调用,获取Servlet API三种方式(推荐IOC(控制反转)),拦截器,静态代理和动态代理(Spring AOP))

    1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...

  9. Struts2访问Servlet API的三种方式

    有时我们需要用到Request, Response, Session,Page, ServletContext这些我们以前常用的对象,那么在Struts2中怎么样使用到这些对象呢,通常有三种方式. * ...

随机推荐

  1. Java并发编程核心方法与框架-CountDownLatch的使用

    Java多线程编程中经常会碰到这样一种场景:某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行.比如裁判员需要等待运动员准备好后才发送开始指令,运动员要等裁判员发送开始指令后才开始比赛 ...

  2. Bootstrap学习------Tabel

    Bootstrap的表格和Html表格大同小异,只是封装了一些css供我们使用 <table>标签必须引用class="table"基类样式,我们可以根据需求赛选需要的 ...

  3. JS URL传递中文参数时出现乱码的处理

    在浏览器中显示的地址是这样的: 但是按F12调试的时候的地址却变化掉了: 这个肯定是是因为浏览器对url路径默认编码了.这个问题是在我们去取值的时候,得到的就是后面那一大串稀奇古怪的东西.得不到我们想 ...

  4. 【C语言入门教程】7.5 枚举

    在实际应用中,有的变量只有几种可能取值.如人的性别只有两种可能取值,星期只有七种可能取值.在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型.所谓枚举是指将变量的值一一列举出来,变量只限于列举出 ...

  5. Ubuntu 14 安装 “宋体,微软雅黑,WPS Office的symbol、wingdings、wingdings 2、wingdings 3、webding字体,Consolas雅黑混合版编程字体” 等 Windows 7 下的字体

    Windows平台下,“宋体”.“微软雅黑”.“Courier New(编程字体)”用的比较多,看的也习惯了.那如何在 Ubuntu下也安装这些字体呢? 操作步骤如下: 第一步:从 Windows 7 ...

  6. c#中两种不同的存储过程调用与比较

    存储过程简介 简单的说,存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用.它的参数可以被传递和返回.与应用程序中的函 ...

  7. mysql常用语句总结

    1.创建语句 CREATE DATABASE database_name //创建数据库 //删表 DROP TABLE IF EXISTS `t_social_user_extend`; //建表C ...

  8. git之tag

    参考:git命令之git tag 给当前分支打标签 1.git tag //查看已有标签 2.创建本地标签 git tag tag_name  //创建标签  git tag -a v0.1.2 -m ...

  9. UNITY3d在移动设备上的一些优化实战(一)-概述

    转自:UNITY3d在移动设备上的一些优化实战(一)-概述 http://blog.csdn.net/leonwei/article/details/39233921 项目进入了中期之后,就需要对程序 ...

  10. 我要阻止做java开发的男朋友去创业型公司工作吗?

    命这样的标题,我没有瞧不起创业型公司,我只是有点急了,因为男朋友今天晚上就要回复招聘公司了.我先来说说来由吧. 前段时间男朋友离职了,从毕业到现在在公司呆了2年多,因为资金不足导致他做的项目被迫停止了 ...