SSH学习(三)Struts2之Action上

SSH2与Struts2集成的CRUD操作实例及源码分析 本文还有配套的精品资源,点击获取 简介:SSH2(Secure Shell 2)是一种提供安全远程服务的协议,而Struts2是一个强大的Java MVC框架,用于开发Web应用。本文提供一个实例,通过集成SSH2和Struts2实现Web应用中的数据操作功能。实例中详细说明了如何添加Struts2所需的JAR包,定义Action类,配置结果映射,以及实现增删改查(CRUD... 阅读详情

原文来自搬砖工,如需转载请注明出处


博主SSH框架专栏请戳这里http://blog.youkuaiyun.com/column/details/14227.html

之前学习了Struts2入门和简单的使用,这篇文章学习一下Struts2中重要的部分Action。鉴于内容比较多,就分为上下两部分学习。

一、Action的定义

在struts2中,控制器由两部分组成,配置在web.xml中的控制器和处理业务逻辑的action。action是struts2中重要的组件,绝大部分业务逻辑都在其中实现。那么该如何在struts2中定义一个action?

1.一个简单的类

package com.study.action;
public class LoginAction {
	public String execute() throws Exception{
	}
}
如上,如果是定义的一个简单的类(未继承或实现任何东西),那么就必须实现execute方法,而且得抛出异常。那么struts2就会执行execute里面的逻辑。格式如:

public String execute() throws Exception{}

2.实现action接口

package com.study.action;
import com.opensymphony.xwork2.Action;
public class LoginAction implements Action{
	public String execute() throws Exception{
	}
}
如上,实现Action接口。在这里要覆盖execute方法。

3.继承ActionSupport

package com.study.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
	public String execute() throws Exception{
	}
}
二、Action如何访问Servlet API

struts2中没有与任何的Servlet API耦合,这样可以不依赖web容器对action进行测试。但是对于web应用来说,访问Servlet API是不可或缺的需求。那么,在Struts2中如何访问Servlet API呢?struts2给出了如下方法:

1.ActionContext

一个操作session的示例

ActionContext ac = ActionContext.getContext();
Map session = ac.getSession();
session.put("", "");
对于ActionContext类,它提供了如下方法来访问Servlet API

1)Object get(Object  obj) 它相当于是HttpServletRequest中的getAttribute方法

2)Map getApplication() Map中保存的是ActionContext作用域中的对象

3)static ActionContext getContext() 是获得一个ActionContext 的实例

4)Map getParameters() 相当于HttpServletRequest的getParameterMap方法

4)Map getSession() Map中保存的是session作用域中的对象

2.实现接口

实现ServletResponseAware和ServletRequestAware接口示例

package com.study.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

public class LoginAction implements ServletResponseAware,ServletRequestAware{
	HttpServletRequest request;
	HttpServletResponse response;
	public String execute() throws Exception{
		HttpSession session = request.getSession();
		return null;
	}

	public void setServletRequest(HttpServletRequest arg0) {
		this.request = arg0;
	}
	public void setServletResponse(HttpServletResponse arg0) {
		this.response = arg0;
	}
}

1)ServletContextAware 通过依赖注入可以得到ServletContext对象

2)ServletResponseAware 通过依赖注入可以得到HttpServletResponse对象

3)ServletRequestAware 通过依赖注入可以得到HttpServletRequest对象

3.使用ServletActionContext

利用ServletActionContext获得ActionContext示例

package com.study.action;
import org.apache.struts2.ServletActionContext;
public class LoginAction{
	public String execute() throws Exception{
		ActionContext ac = ServletActionContext.getContext();
		return null;
	}
}
1)static PageContext getPageContext() 获得一个PageContext 对象

2)static HttpServletRequest getRequest() 获得一个HttpServletRequest 对象

3)static HttpServletResponse getResponse() 获得一个HttpServletResponse 对象

4)static ServletContext getServletContext() 获得一个ServletContext 对象

5)static ActionContext getContext() 获得一个ActionContext 对象


FDTD Solutions-入射波长模式 经常在文献中看到仿真光源使用TM/TE模式,这个确定是十分必要的,决定了仿真结果。 但是也不能局限于选择TM/TE,因为不同领域、不同软件之间的使用习惯和命名可能不同。并且在现代光波导器件中,几乎全部 都是混合模式,或者称之为quasi-TE(准TE模式)和quasi-TM(准TM模式),多数情况下都简称为TE模式和TM模式。要知道 到底是TE模式还是TM模式,需要查看其电场的主分量(即振幅... 阅读详情

相关推荐

RAD Studio 10.4.2 安装避坑指南:从镜像加载到首次运行的全流程解析

本文提供了一份详尽的RAD Studio 10.4.2安装避坑指南,涵盖从镜像验证、文件提取到安装激活的全流程。重点解析了安装教程中常见的权限、路径及激活顺序等关键“坑点”,旨在帮助开发者,尤其是Delphi和C++Builder新手,一次性顺利完成安装与配置,确保开发环境稳定运行。

weixin_29224309的博客 328

SSH学习之Struts2中的Action

回忆 在上一篇博客SSH学习之Struts2的配置文件中写明了Struts2的配置文件,这一篇来写写Struts2中的核心Action。 Action的介绍 官方介绍:Action类是用户请求和业务逻辑之间的桥梁,每个Action充当客户的一项业务代理。 在RequestProcessor类预处理请求时,在创建了Action的实例后,就调用自身的processActionPerform()

木偶线的博客 662

PMOS过压保护电路设计与仿真优化策略

本文深入探讨PMOS过压保护电路(OVP)的设计与仿真优化策略,详细解析PMOS管选型、稳压管特性及三极管配置等关键要素。通过Proteus仿真案例揭示典型设计误区,并提供响应速度提升、抗干扰设计等进阶优化方案,助力工程师实现高可靠性的电源保护系统设计。

weixin_42620340的博客 441

ssh之struts2篇(一)入门&Action讲解

一、struts2入门 举个栗子:hello(步骤) 1.apache官网download下载struts2的包:all.zip 、 lib.zip 、 docs.zip 2.解压lib.zip,里面的jar文件复制到web项目中的WEB-INF/lib路径下,根据需要添加其他jar包。(我下载的2.5.22版本,lib.zip里面8个jar包,黑马中列表13个jar包) 3.若jar包未被开...

阿U的博客 398

S7-200 SMART Modbus RTU从站配置与调试实战指南

本文提供了一份详细的S7-200 SMART PLC配置为Modbus RTU从站的实战指南。内容涵盖从硬件基础、软件准备、指令库调用、核心编程到地址映射与调试排错的完整流程。重点解析了MBUS_INIT与MBUS_SLAVE指令的关键参数配置,并深入探讨了Modbus地址与PLC内部V存储区的对应关系,帮助工程师快速打通通讯链路,实现与上位机、触摸屏等主站设备的稳定数据交互。

potato的博客 754

Halcon实战:5分钟搞定线序颜色检测(附完整代码解析)

本文详细介绍了如何使用Halcon在5分钟内实现工业级线序颜色检测的高效方案。通过机器视觉技术,结合实战项目经验,提供完整的代码解析和优化技巧,帮助开发者快速构建鲁棒性强、准确率高的检测系统,适用于电子制造和汽车线束等行业。

weixin_29098367的博客 441

Struts2中的Action详解

1.Action的由来  struts2框架中有一种java类叫做Action,这种说法就像J2EE项目中有一种java类加Servlet.(人们的生活中有一种人的职业叫警察)struts2框架底层还是封装了Servlet的相关内容而实现出来的.只不过struts2框架除了servlet的功能以外还扩展出了很多其他的功能,同时还大大简化了以前在servlet中繁琐的操作.    在st

重心开始,重新开始 2万+

ESP32-CAM图像糊成马赛克?OV2640参数调优保姆级教程(亮度/对比度/饱和度)

本文提供了一份详细的ESP32-CAM图像调优教程,针对OV2640摄像头常见的图像模糊问题,从分辨率设置、亮度/对比度/饱和度调整到高级寄存器配置,帮助用户优化网页显示画质。通过代码示例和实用技巧,解决马赛克、色彩暗淡等问题,提升摄像头性能。

weixin_30410119的博客 596

Struts2系列(二)Action

一.Action是Struts2的核心,所有用户请求都需要使用Action处理并返回数据。 二.Action测试代码 直接上代码,具体解释见代码注释 代码演示内容:创建Action,Action默认值,Action获取参数 HelloAction.java //import com.opensymphony.xwork2.Action; //import com.opensym...

仲夏风灯 1万+

STM32CubeMX+Keil5实战:手把手教你用STM32F103C8T6开发扫地机器人(附完整代码)

本文详细介绍了如何使用STM32F103C8T6开发智能扫地机器人,从STM32CubeMX配置到Keil5代码实现的全过程。涵盖硬件选型、时钟树配置、GPIO外设设置、电机驱动、超声波测距及自动避障算法等核心内容,并提供完整代码示例,助力开发者快速掌握智能硬件开发技巧。

weixin_30329623的博客 81

格拉姆角场(GAF)实战:用Python实现时间序列图像化处理

本文深入解析了格拉姆角场(GAF)技术,这是一种将一维时间序列转化为二维图像特征的方法,以便利用卷积神经网络(CNN)等图像模型进行深度分析。文章通过Python实战代码,详细演示了GASF和GADF两种核心转换的实现过程,并探讨了其在时序数据分类任务中的应用,为故障预警、金融模式识别等场景提供了强大的图像驱动分析视角。

weixin_29079671的博客 273

SSH学习(三)Struts2之Action下

原文来自搬砖工,如需转载请注明出处 博主SSH框架专栏请戳这里http://blog.csdn.net/column/details/14227.html 接着上篇文章继续学习 三、配置Action 1.配置action示例 当用户发出请求后,先通过配置在web.xml中的拦截器拦截之后,再查找在struts.xml中配置的业务逻辑action。 str

代码搬运工 1821

专为AI打造的浏览器:内存占用仅为Chrome的1/9、比Chrome快11倍(Docker部署教程,支持飞牛nas等服务器部署)

🚀 专为AI打造的无头浏览器来了! 用Zig从零构建,内存仅Chrome的1/9,速度快11倍,原生CDP协议支持Docker部署,适合爬虫、自动化测试和AI代理应用。✨

XiaoqiangClub的博客 733

【SSH】Struts2学习(一)Struts入门、各类配置详解、Action详解

一、准备Struts2的开发包 1、下载 网址:http://struts.apache.org/download 我下载的是Structs 2.3.34版本,也可以下载其他版本,下载后要进行解压 2、解压下载好的Struts2开发包,如下为解压好的目录结构 对文件结构进行简单介绍 二、Struts2初体验 1、创建一个web工程导入相应jar包

麦客子 1244

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【SSH三大框架】Struts2基础第三篇:配置Action以及调用Action的三种方式

配置Action以及调用Action的三种方式

u010800530的专栏 9861

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【SSH三大框架】Struts2基础第二篇:Struts2的Action访问ServletAPI

Struts2访问Servlet API

u010800530的专栏 1618

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SSH三大框架搭建整合struts2+spring+hibernate

SSH框架整合理论: 在SSH框架的JAVAweb项目的开发过程中,WEB层通常使用的是Struts2+jsp,service层使用的是javaBean,DAO层使用的是hibernate,而spring的使用覆盖三层。 使用了spring框架之后,我们可以把对象交给spring来管理。在WEB层中,所有action对象的创建和管理都可以交给spring来完成,这样Struts2就不用自己来new...

子非鱼的博客 1081

struts2不能进入action

前言 分2种情况, 1.struts2 2.ssh struts2 ssh 1.action由spring来管理,即action在ssh里是一个spring Bean。与action对应的spring Bean所在配置文件必须要在web.xml配置(即指明路径,这样spring容器就可以找到与action对应的spring Bean)。 示例:web.xml

B_qxzb的专栏 3939

Spring,Struts2,Hibernate三大框架的集成(SSH)

Spring,Struts2,Hibernate三大框架的集成(SSH) --> 前面已经讲了三大框架的各自优点,这三大框架作为J2EE开发的必备的东西,所以它们的集成也是很重要的! 这里集成呢~光用文字说明是说不清楚的~所以要结合图示,呵呵~开整~ 首先需要导入的包是Struts2的核心包,除了核心包还需要另外一个类库,见图: struts2导入后,接下来就是hibernate的包

lovingshu's Forever 7737

Struts2的核心配置之Struts2的常量配置与Action的配置

    最近在学习SSH框架,之前Javaweb学的不扎实。所以做好笔记,方便以后的学习。 1. Struts2常量的配置     Struts2常量的配置通常采用3种方式,分别如下: 在struts.xml文件中使用< constant >元素配置常量(最常用的方式); name:该属性指定了常量的常...

YYxiaobao0726的博客 469

【Struts2集锦】Struts2的Action中多个方法调用

以前刚做java项目的时候,就用的是SSH框架,做了两个项目都用的是SSH框架,但是里面Action多个方法调用的时候却不一样,其实不止这一个不一样,不同项目用的都叫SSH框架,但是实现方式不一样,后来再回过头儿来系统学习,才发现不是一件事儿就只有一种实现方式,有很多种实现方式。 下面就介绍一下Action中包含多个方法如何调用,三种调用方式。 1.方法的动态调用方式: acti

IT Girl 5337

SSH:Struts2的Action如何返回JSON格式的数据?

在Maven的pom.xml中引入

Frank的专栏 3808

SSH框架学习(struts2+hibernate+spring)

SSH框架学习(struts2+hibernate+spring) 虽然struts2和hibernate这两个框架已经很老了,但是老项目中还是存在,通过这篇文章,可以带你快速入门这两个框架。迅速掌握SSH框架,以应对老项目。 Struts2 快速开始 导包: <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</arti

星时代曹波涛 520

SSH入门之Struts2

本文参考: https://blog.csdn.net/baby_newstar/article/details/6752322 https://blog.csdn.net/u012469528/article/details/78714153、 https://www.cnblogs.com/jukan/p/5259999.html 2019.6.22开始入门 就在这里写笔记吧~ 一、SSH三大...

TonyWang972的博客 641

struts2之实现Action

介绍:Action类作为业务逻辑控制器,包含了对用户请求的处理逻辑, struts2通常直接使用Action封装Http请求参数,因此Action里还应该包含与请求参数对应的实例变量,并提供setter和getter方法,Action类=普通pojo+excute()方法,Action类是否包含是否包含实例变量并不重要,重要的是包含setter和getter方法,因为系统是通过这两个方法处理HTT...

weixin_43638314的博客 177

【SSH三大框架】Struts2基础第八篇:Struts2用AJAX实现JSON插件的使用

AJAX的详细描述就不做介绍了,大家基本都懂这个。 下面我们会通过两个具体的案例,来做具体的实现: 案例一: 案例描述:输入用户名,把用户名通过AJAX异步传输的方式发送至后台,判断此用户名是否存在。 第一步,我们需要导入这三个jar包:commons-lang3-3.1.jar、struts2-json-plugin-2.1.8.1.jar、xwork-core-2.1.6.ja

u010800530的专栏 3137
上一篇: wordpress添加文章打赏按钮
下一篇: bool型返回值函数,没写return语句的时候返回啥?
海之沐
博客等级 码龄12年 1536粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值