- 浏览: 21503933 次
- 性别:
博客专栏
-
跟我学spring3
浏览量:2418633
-
Spring杂谈
浏览量:3008767
-
跟开涛学SpringMVC...
浏览量:5639455
-
Servlet3.1规范翻...
浏览量:259916
-
springmvc杂谈
浏览量:1597309
-
hibernate杂谈
浏览量:250216
-
跟我学Shiro
浏览量:5858946
-
跟我学Nginx+Lua开...
浏览量:701998
-
亿级流量网站架构核心技术
浏览量:785219
文章分类
- 全部博客 (329)
- 跟我学Nginx+Lua开发 (13)
- 跟我学spring (54)
- 跟开涛学SpringMVC (34)
- spring4 (16)
- spring杂谈 (50)
- springmvc杂谈 (22)
- 跟我学Shiro (26)
- shiro杂谈 (3)
- hibernate杂谈 (10)
- java开发常见问题分析 (36)
- 加速Java应用开发 (5)
- Servlet 3.1规范[翻译] (21)
- servlet3.x (2)
- websocket协议[翻译] (14)
- websocket规范[翻译] (1)
- java web (6)
- db (1)
- js & jquery & bootstrap (4)
- 非技术 (4)
- reminder[转载] (23)
- 跟叶子学把妹 (8)
- nginx (2)
- 架构 (19)
- flume架构与源码分析 (4)
最新评论
-
xxx不是你可以惹得:
认真看错误代码,有时候重启电脑就行了 醉了 我把数据库配置写死 ...
第十六章 综合实例——《跟我学Shiro》 -
dagger9527:
holyselina 写道您前面说到能获取调用是的参数数组,我 ...
【第六章】 AOP 之 6.6 通知参数 ——跟我学spring3 -
xxx不是你可以惹得:
Access denied for user 'root'@' ...
第十六章 综合实例——《跟我学Shiro》 -
dagger9527:
只有@AspectJ支持命名切入点,而Schema风格不支持命 ...
【第六章】 AOP 之 6.5 AspectJ切入点语法详解 ——跟我学spring3 -
dagger9527:
支持虽然会迟到,但永远不会缺席!
【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
先进行通用配置, 【第十章】集成其它Web框架 之 10.1 概述 Struts1.x是最早实现MVC(模型-视图-控制器)模式的Web框架之一,其使用非常广泛,虽然目前已经有Struts2.x等其他Web框架,但仍有很多公司使用Struts1.x框架。 集成Struts1.x也非常简单,除了通用配置外,有两种方式可以将Struts1.x集成到Spring中: 接下来让我们首先让我们准备Struts1x所需要的jar包: 1.1、从下载的spring-framework-3.0.5.RELEASE-with-docs.zip中dist目录查找如下jar包,该jar包用于提供集成struts1.x所需要的插件实现等: 1.2、从下载的spring-framework-3.0.5.RELEASE-dependencies.zip中查找如下依赖jar包,该组jar是struts1.x需要的jar包: com.springsource.org.apache.struts-1.2.9.jar //struts1.2.9实现包 com.springsource.org.apache.commons.digester-1.8.1.jar //用于解析struts配置文件 com.springsource.org.apache.commons.beanutils-1.8.0.jar //用于请求参数绑定 com.springsource.javax.servlet-2.5.0.jar //Servlet 2.5 API antlr.jar //语法分析包(已有) commons-logging.jar //日志记录组件包(已有) servlet-api.jar //Servlet API包(已有) jsp-api.jar //JSP API包(已有,可选) commons-validator.jar //验证包(可选) commons-fileupload.jar //文件上传包(可选) 只使用通用配置,利用WebApplicationContextUtils提供的获取Spring Web容器方法获取Spring Web容器,然后从Spring Web容器获取Spring管理的Bean。 1、 第一个Action实现: 此Action实现非常简单,首先通过WebApplicationContextUtils获取Spring Web容器,然后从Spring Web容器中获取“message”Bean并将其放到request里,最后转到“hello”所代表的jsp页面。 2、JSP页面定义(webapp/WEB-INF/jsp/hello.jsp): 3、配置文件定义: 3.1、Spring配置文件定义(resources/chapter10/applicationContext-message.xml): 在此配置文件中定义我们使用的“message”Bean; 3.2、struts配置文件定义(resources/chapter10/struts1x/struts-config.xml): 3.3、web.xml部署描述符文件定义(webapp/WEB-INF/web.xml)添加如下内容: Struts1.x前端控制器配置了ActionServlet前端控制器,其拦截以.do开头的请求,Strut配置文件通过初始化参数“config”来指定,如果不知道“config”参数则默认加载的配置文件为“/WEB-INF/ struts-config.xml”。 4、执行测试:在Web浏览器中输入http://localhost:8080/hello.do可以看到“Hello Spring”信息说明测试正常。 有朋友想问,我不想使用这种方式,我想在独立环境内测试,没关系,您只需将spring/lib目录拷贝到spring/webapp/WEB-INF/下,然后将webapp拷贝到如tomcat中即可运行,尝试一下吧。 Spring还提供ActionSupport类来简化获取WebApplicationContext,Spring为所有标准Action类及子类提供如下支持类,即在相应Action类后边加上Support后缀: 具体使用方式如下: 1、Action定义 和第一个示例唯一不同的是直接调用getWebApplicationContext()即可获得Spring Web容器。 2、修改Struts配置文件(resources/chapter10/struts1x/struts-config.xml)添加如下Action定义: 3、启动嵌入式Web服务器并在Web浏览器中输入http://localhost:8080/hello2.do可以看到“Hello Spring”信息说明Struts1集成成功。 这种集成方式好吗?而且这种方式算是集成吗?直接获取Spring Web容器然后从该Spring Web容器中获取Bean,暂且看作是集成吧,这种集成对于简单操作可以接受,但更复杂的注入呢?接下来让我们学习使用Struts插件进行集成。 Struts插件集成使用ContextLoaderPlugin类,该类用于为ActionServlet加载Spring配置文件。 1、在Struts配置文件(resources/chapter10/struts1x/struts-config.xml)中配置插件: 由于我们的ActionServlet在web.xml中的名字为hello,而我们的配置文件在/WEB-INF/hello-servlet.xml,因此contextConfigLocation和namespace可以不指定,因此最简单配置如下: 通用配置的Spring Web容器将作为ContextLoaderPlugin中创建的Spring Web容器的父容器存在,然而可以省略通用配置而直接在struts配置文件中通过ContextLoaderPlugin插件指定所有配置文件。 插件已经配置了,那如何定义Action、配置Action、配置Spring管理Bean呢,即如何真正集成Spring+Struts1x呢?使用插件方式时Action将在Spring中配置而不是在Struts中配置了,Spring目前提供以下两种方式: 看懂了吗?好像没怎么看懂,那就直接上代码,有代码有真相。 2、定义Action实现,由于Action将在Spring中配置,因此message可以使用依赖注入方式了: 3、DelegatingActionProxy方式与Spring集成配置: 3.1、在Struts配置文件(resources/chapter10/struts1x/struts-config.xml)中进行Action定义: 3.2、在Spring配置文件(webapp/WEB-INF/hello-servlet.xml)中定义Action对应的Bean: 3.3、启动嵌入式Web服务器并在Web浏览器中输入http://localhost:8080/hello3.do可以看到“Hello Spring”信息说明测试正常。 从以上配置中可以看出: 很简单吧,DelegatingActionProxy是个代理Action,其实现了Action类,其内部帮我们查找相应的Spring管理Action Bean并把请求转发给这个真实的Action。 4、DelegatingRequestProcessor方式与Spring集成: 4.1、首先要替换掉Struts默认的RequestProcessor,在Struts配置文件(resources/chapter10/struts1x/struts-config.xml)中添加如下配置: 4.2、在Struts配置文件(resources/chapter10/struts1x/struts-config.xml)中进行Action定义: 或更简单形式: 4.3、在Spring配置文件(webapp/WEB-INF/hello-servlet.xml)中定义Action对应的Bean: 4.4、启动嵌入式Web服务器并在Web浏览器中输入http://localhost:8080/hello4.do可以看到“Hello Spring”信息说明Struts1集成成功。 从以上配置中可以看出: 很简单吧,只是由DelegatingRequestProcessor去帮我们查找相应的Action Bean,但没有代理Action了,所以推荐使用该方式。 图10-4 共享及专用Spring Web容器 Struts1x与Spring集成到此就完成了,在集成时需要注意一下几点:10.2 集成Struts1.x
10.2.1 概述
org.springframework.web.struts-3.0.5.RELEASE.jar
10.2.2 最简单集成
package cn.javass.spring.chapter10.struts1x.action;
import org.apache.struts.action.Action;
//省略部分import
public class HelloWorldAction1 extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
WebApplicationContext ctx = WebApplicationContextUtils.
getRequiredWebApplicationContext(getServlet().getServletContext());
String message = ctx.getBean("message", String.class);
request.setAttribute("message", message);
return mapping.findForward("hello");
}
}
<%@ page language="java" pageEncoding="UTF-8"
contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
${message}
</body>
</html>
<bean id="message" class="java.lang.String">
<constructor-arg index="0" value="Hello Spring"/>
</bean>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<action-mappings>
<action path="/hello" type="cn.javass.spring.chapter10.struts1x.action.HelloWorldAction1">
<forward name="hello" path="/WEB-INF/jsp/hello.jsp"/>
</action>
</action-mappings>
</struts-config>
<!-- Struts1.x前端控制器配置开始 -->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/classes/chapter10/struts1x/struts-config.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- Struts1.x前端控制器配置结束 -->
package cn.javass.spring.chapter10.struts1x.action;
//省略import
public class HelloWorldAction2 extends ActionSupport {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
WebApplicationContext ctx = getWebApplicationContext();
String message = ctx.getBean("message", String.class);
request.setAttribute("message", message);
return mapping.findForward("hello");
}
}
<action path="/hello2" type="cn.javass.spring.chapter10.struts1x.action.HelloWorldAction2">
<forward name="hello" path="/WEB-INF/jsp/hello.jsp"/>
</action>
10.2.2 Struts1.x插件集成
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextClass" value="org.springframework.web.context.support.XmlWebApplicationContext"/>
<set-property property="contextConfigLocation" value="/WEB-INF/hello-servlet.xml"/>
<set-property property="namespace" value="hello"/>
</plug-in>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>
package cn.javass.spring.chapter10.struts1x.action;
//省略
public class HelloWorldAction3 extends Action {
private String message;
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setAttribute("message", message);
return mapping.findForward("hello");
}
public void setMessage(String message) {//有setter方法,大家是否想到setter注入
this.message = message;
}
}
<action path="/hello3" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="hello" path="/WEB-INF/jsp/hello.jsp"/>
</action>
<bean name="/hello3" class="cn.javass.spring.chapter10.struts1x.action.HelloWorldAction3">
<property name="message" ref="message"/>
</bean>
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
<action path="/hello4" type=" cn.javass.spring.chapter10.struts1x.action.HelloWorldAction3">
<forward name="hello" path="/WEB-INF/jsp/hello.jsp"/>
</action>
<action path="/hello4">
<forward name="hello" path="/WEB-INF/jsp/hello.jsp"/>
</action>
<bean name="/hello4" class="cn.javass.spring.chapter10.struts1x.action.HelloWorldAction3">
<property name="message" ref="message"/>
</bean>
发表评论
-
第十九章 动态URL权限控制——《跟我学Shiro》
2014-03-28 22:51 0用过Spring Security的朋友应该比较熟悉对URL ... -
第十九章 动态URL权限控制——《跟我学Shiro》
2014-03-28 22:51 0用过Spring Security的朋友应该比较熟悉对URL ... -
在应用层通过spring解决数据库读写分离
2012-11-09 07:28 3如何配置mysql数据库的主从? 单机配置mys ... -
跟我学spring3系列 word原版 下载
2012-11-03 20:39 122189《跟我学spring3系列》自发布以来得到大家的认可,非 ... -
跟我学spring3 电子书下载(完)
2012-05-03 14:23 52715感谢iteye各位网友对我的支持,在此谢过了! ... -
跟我学spring3 目录贴及电子书下载
2012-04-10 19:00 390480扫一扫,关注我的公众号 购买地址 ... -
【第十三章】 测试 之 13.3 集成测试 ——跟我学spring3
2012-03-30 07:11 2749913.3 集成测试 13.3.1 ... -
【第十三章】 测试 之 13.1 概述 13.2 单元测试 ——跟我学spring3
2012-03-28 07:46 2361313.1 概述 13.1.1 测 ... -
【第十二章】零配置 之 12.5 综合示例-积分商城 ——跟我学spring3
2012-03-27 15:13 2079812.5 综合示例 12.5.1 概述 在第十一 ... -
【第十二章】零配置 之 12.4 基于Java类定义Bean配置元数据 ——跟我学spring3
2012-03-26 08:26 2990412.4 基于Java类定义Bean配置元数据 12 ... -
【第十二章】零配置 之 12.4 基于Java类定义Bean配置元数据 ——跟我学spring3
2012-03-26 08:00 56712.4 基于Java类定义Bean配置元数据 12 ... -
spring培训PPT(欢迎下载)
2012-03-24 21:55 45java私塾的 spring培训的PPT 欢迎大家下载。 包括 ... -
java私塾的spring培训PPT(欢迎下载)
2012-03-22 12:41 2973java私塾的 spring培训的PPT 欢迎大家下载。 ... -
【第十二章】零配置 之 12.3 注解实现Bean定义 ——跟我学spring3
2012-03-22 08:00 2665212.3 注解实现Bean定 ... -
【第十二章】零配置 之 12.2 注解实现Bean依赖注入 ——跟我学spring3
2012-03-19 08:00 3314912.2 注解实现Bean依赖注入 12.2.1 ... -
【第十二章】零配置 之 12.1 概述 ——跟我学spring3
2012-03-19 07:59 2028812.1 概述 12.1.1 什 ... -
【第十一章】 SSH集成开发积分商城 之 11.3 实现积分商城层 ——跟我学spring3
2012-03-16 08:09 1805711.3 实现积分商城层 11.3.1 概述 ... -
【第十一章】 SSH集成开发积分商城 之 11.2 实现通用层 ——跟我学spring3
2012-03-14 08:08 1911611.2 实现通用层 11.2 ... -
【第十一章】 SSH集成开发积分商城 之 11.1 概述 ——跟我学spring3
2012-03-13 16:37 1941611.1 概述 11.1.1 功能概述 ... -
【第十章】集成其它Web框架 之 10.4 集成JSF ——跟我学spring3
2012-03-13 08:46 12591先进行通用配置, 【第十章】集成其它Web框架 之 1 ...
相关推荐
cuda_10.2.89_441.22_win10.exe64位安装包,下载链接详情见txt文件
CentOS 6.X版本专用 升级命令: rpm -Uvh polkit-0.96-11.el6_10.2.x86_64.rpm 或yum localinstall -y polkit-0.96-11.el6_10.2.x86_64.rpm 参考链接: https://ubuntu.com/security/CVE-2021-4034 ...
AIX下 oracle rac 10.2.0.1升10.2.0.4.4 详细步骤,内附详细步骤
RadStudioKeygen_10.2.3.2631.exe
ArcGIS10.2 学习课程——7.数据建模.pptx
Oracle 10.2.0.4 X64是一个针对64位操作系统的数据库服务器版本。这个版本在Oracle数据库的10g系列中是相对稳定和广泛使用的,它提供了多种功能和服务,对于需要处理大量数据的企业级应用尤其适用。下面我们将深入...
这些组件包括oci.dll(Oracle Call Interface库)、sqlplus.exe(命令行SQL工具)和其他必要的动态链接库文件,它们共同构成了一个基本的数据库连接环境。用户无需安装完整的Oracle客户端,仅需将这些文件部署到目标...
3. **OPatch**:OPatch是Oracle用来应用和管理补丁的工具,对于10.2.0.5.0到10.2.0.5.8的升级,OPatch起到了关键作用。它能帮助管理员自动化补丁应用过程,减少手动干预,降低出错概率。 4. **升级步骤**: - **...
标题中的"ojdbc14-10.2.0.2.0.jar.zip"是一个包含Oracle JDBC驱动程序的压缩文件,主要用于在Java应用程序中连接到Oracle数据库。Oracle JDBC驱动程序,也称为Oracle Thin Driver,是Java开发人员用来与Oracle数据库...
由于ojdbc是收费的,所以maven是获取不到这两个jar包的,这里提供ojdbc6-10.2.0.4.0.jar、ojdbc14-10.2.0.2.0.jar、ojdbc14-10.2.0.4.0.jar下载
1. **10.1 概述**:这一章讨论了Spring与其他Web框架如Struts1.x、Struts2.x和JSF的集成,以增强应用程序的灵活性和可扩展性。 2. **10.2 集成Struts1.x**:展示了如何在Spring中配置Struts1的动作类,利用Spring的...
连接oracle使用 oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm
oracle-instantclient-basic-10.2.0.3-1.x86_64
10.1节概述集成其他Web框架,10.2节介绍如何集成Struts1.x,10.3节介绍如何集成Struts2.x,10.4节介绍如何集成JSF(JavaServer Faces)。 【第十一章】SSH集成开发积分商城。SSH即Spring + Struts + Hibernate的...
SQLPrompt
"basic-10.2.0.5.0-linux.zip"这个压缩包文件,显然包含了Oracle即时客户端的Linux版本,版本号为10.2.0.5.0。 在Linux环境下,Oracle即时客户端包含了一系列必要的库文件和实用程序,使得应用程序能够连接到Oracle...
Oracle即时客户端instantclient-win32-10.2.0.5官方安装包 适用环境:Windows 7/8/10 32或64位 1. 与8.0.4及以后版本的PLSQL兼容 2. 不用安装oracle软件,解压即可使用,部署快。 3. 安装包中包括了Network文件夹,...
"polkit提权漏洞polkit-0.96-11.el6_10.2.x86_64.rpm" 这个标题提到了一个特定的安全漏洞,即“polkit提权漏洞”,并且给出了该漏洞相关的软件包版本号“polkit-0.96-11.el6_10.2.x86_64”。polkit是一个在Unix-like...
windowsx64系统上cuda10.2安装包,支持win10和win11,由于文件太大放百度网盘,如果失效请及时联系博主
《跟我学Spring3》这本书详细介绍了Spring框架与各种ORM(对象关系映射)框架的集成,以及Spring的事务管理和Web框架集成。以下是其中关键知识点的深入解析: **8. ORM支持** 1. **8.1 概述**:ORM允许开发者以面向...