struts-基础内容-5-数据处理

Struts对数据操作方式一:直接拿到servletAPI,执行操作
 @Override
    public String execute() throws Exception {

        HttpServletRequest request = ServletActionContext.getRequest();

        HttpSession session = request.getSession();
        ServletContext application = ServletActionContext.getServletContext();

        request.setAttribute("request_data","request_data");
        session.setAttribute("session_data","session_data");
        application.setAttribute("application_data","application_data");

        return SUCCESS;

    }


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="data"  namespace="/" extends="struts-default">

        <global-results>
            <result name="success">/data.jsp</result>
        </global-results>

        <action name="data" class="com.cx.Data.DataAction">

        </action>
    </package>

</struts>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>data</title>
</head>
<body>
data
<br>
${request_data}
<br>
${session_data}
<br>
${application_data}
</body>
</html>

方式二:通过ActionContext类-解耦方式-不引入servelt-api

   //方式二
        ActionContext ac = ActionContext.getContext();

        Map<String , Object> request = ac.getContextMap();

        Map<String, Object> session = ac.getSession();

        Map<String ,Object> application = ac.getApplication();

        request.put("request_data","request_data");
        session.put("session_data","session_data");
        application.put("application_data","application_data");

方式三:实现接口

package com.cx.Data;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import java.util.Map;

/**
 * Created by cxspace on 16-7-10.
 */
public class DataAction extends ActionSupport implements RequestAware , SessionAware ,ApplicationAware{

    private Map<String,Object> request;
    private Map<String,Object> application;
    private Map<String,Object> session;

    /*
       1.请求数据封装
       2.调用service层处理业务逻辑,拿到结果数据
       3.数据保存到域中

       Struts对数据操作方式一:直接拿到servletAPI,执行操作
     */

    @Override
    public String execute() throws Exception {

        request.put("request_data","request_data-方式三");
        session.put("session_data","session_data-方式三");
        application.put("application_data","application_data-方式三");

        return SUCCESS;

    }

    @Override
    public void setRequest(Map<String, Object> request) {
        //struts运行的时候,会把代表request的map对象注入
        this.request = request;
    }

    @Override
    public void setApplication(Map<String, Object> application) {
        this.application = application;
    }

    @Override
    public void setSession(Map<String, Object> session) {
        this.session = session;
    }
}
总结方式1:直接通过ServletActionContext获取servelt-api

方式2:通过ActionContext获取不同的map
方式3:实现接口的方法

方式2  vs  方式3方式2适合业务方法少的方式3适合业务方法多的
时间: 2025-01-08 17:26:46

struts-基础内容-5-数据处理的相关文章

struts基础知识

1.框架 (1).是一系列jar包,其本质是对JDK功能的拓展. (2).框架是一组程序的集合,包含了一系列的最佳实践,作用是解决某一个领域的问题. 2.框架的作用:       框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量.与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用 3.框架和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. (1).  框架.设计

3天学习完AngularJS基础内容小结

简介:AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库. 一.AngularJS大致功能模块 二.页面交互变得简单 1.示例:计算价格 <html> <head> <meta name="viewport" content="width=device-width" /> <meta charset="utf-8"> <script src=&q

Struts基础开发(章节摘要)

1,Struts是MVC框架的一种实现,通过Struts的ActionForm可以完成数据的验证,通过Action可以完成与Servlet一样的功能. 2,Struts的所有请求都是通过*.do的路径提交到相应的Action上去的,所有的Action都需要在struts-config.xml文件进行配置. 3,在Struts中所有的资源信息都是通过ApplicationResource.properties文件进行配置的.Struts基础开发(章节摘要)

HtmlParser学习之一:基础内容

1.相关资料 官方文档:http://htmlparser.sourceforge.net/samples.html API:http://htmlparser.sourceforge.net/javadoc/index.html 其它HTML 解释器:jsoup等.由于HtmlParser自2006年以后就再没更新,目前很多人推荐使用jsoup代替它. 2.使用HtmlPaser的关键步骤 (1)通过Parser类创建一个解释器 (2)通过Filter或者Vistor访问Html中的内容. 3

Objective-c学习笔记—— 基础内容

6.5.1 多重继承 Python也支持多种继承形式.一个能继承多个基类的类定义如下: class DerivedClassName(Base1, Base2, Base3): <statement-1> . . . <statement-N> 大多数情况,最简单而言,你可以把从父类继承下来的属性查询看成是遵循深度优先,从左到右. 而不是在同一等级重复的同样类中执行两次.因此,如果一个属性没在派生类中找到,首先会在base1然后再base1的基类中,如果在那里都没发现,就会在bas

node.js基础内容

node.js node.js是建立在谷歌Chrome的JavaScript引擎(v8)的web应用程序框架. node.js 自带的运行环境可在JavaScript脚本的基础上解释和执行.这个运行是运行在浏览器以外的任何机器上执行JavaScript代码.所以也可以在服务端运行,Node.js还提供了各种丰富的JavaScript模块库,它极大简化了使用Node.js来扩展Web应用程序的研究与开发. 特性 Node.js库的异步和事件驱动的API全部都是异步就是非阻塞.它主要是指基于Node

万树IT:Android软件开发必学习的0基础内容

如今安卓系统中国的前景市场是非常广阔的,它主要针对的是移动设备市场,而如今智能手机已经占据人们生活不能缺少的一部分.所以,很多行业投入到安卓软件开发,进入到安卓开发的人才也越来越多. 安卓应用软件开发必学习的5大基础内容: 1.编程语言 2.基础应用开发 3.核心组件开发Android论坛交流 4丶安卓论坛交流学习 5.深入开发 Android软件开发必学习的0基础内容 1.编程语言的学习 安卓应用软件开发中有很多的编程语言可以使用,所以应该重点学习以下几种编程语言. ①  C/C++语言.  

css基础内容

css基础内容 CSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题外部样式表可以极大提高工作效率外部样式表通常存储在 CSS 文件中多个样式定义可层叠为一 一.css的引入方式 1.直接在html标签元素内嵌入css样式 <div style="font-size:14px; color:#FF0000;">行内引入</div&g

python学习之基础内容

python基础内容① 什么是python? -一种计算机语言,计算机语言分为 -高级语言:python.java.Ruby.C#.C++...... -基础语言:C语言.汇编 -计算机可以直接执行基础语言,但是基础语言比较复杂,敲代码很麻烦 -高级语言会自动转化为基础语言,再提供给计算机执行. 安装好python后,print("hello world") -python执行文件后缀名可以是任意的 -但是为了pycharm的执行方便,约定俗称使用“.py”后缀 python 的执行方

我的oracle生涯(1)基础内容篇

总结一下新手oracle相关开发者的职业生涯初期的内容,零基础的可以看看接触一下相关理论. 懒人小结:oracle-数据库(Database DB)  通过DB衍生除了类如EBS(oracle的企业级管理软件(ERP))等相关内容的基础SQL(数据库语言),PLSQL(流程化的SQL)相关小结 1/4 DDL(定义)(Database  Definition Language 下同) { CREATE ALERT DROP TRUNCATE } 2/4 DML (操作) { SELECT INS