1.Struts2入门

合集下载

struts2自学完全文档

struts2自学完全文档

一.Struts2基础知识1. struts2的特点及配置1.1struts2与struts1的比较1)在软件设计上struts2没有struts1那样跟ServletApi和StrutsApi有着紧密的耦合,Struts2的应用可以不因爱ServletApi和StrutsApi.struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计public class OrderListAction ectends Action//struts依赖于java2)Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能3)Struts2提供了类型转换器,我们可以把特殊的请求参数转换成我们需要的类型,在struts1中,如果我们实现同样的功能,就必须向struts1的底层实现BeanUtil注册类型转换器4)Struts2提供了支持多种表现层技术,如JSp,freeMarker等5)Struts2的输入校验可以对指定方法进行校验,解决了Struts的长久之疼6)提供了全局范围,包范围和Action范围的国际化资源文件管理实现1.2搭建struts2的开发环境1)新建web项目2)导入必要的包3)写配置文件Struts2默认的配置文件为Struts.xml,该文件需要存放在WEB-INF/classes下,该文件的配置模板如下(在m yeclipse中放在src目录下就可以了)模板在D:\Program Files\struts-2.3.4.1-all\struts-2.3.4.1\apps 解压struts2-blank.var再打开web-info/classes中的struts.x m l文件即可<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration2.3//EN""/dtds/struts-2.3.dtd"><struts></struts>4)在web.xm l中加入Struts2MVC框架启动配置在struts1.x中struts框架是通过Servlet启动的,在struts2中,struts框架式通过Filter 启动的,他在web.xm l中的配置如下:(D:\Program Files\struts-2.3.4.1-all\struts-2.3.4.1\apps 解压struts2-blank.var再打开Web-Info\web.xm l即可)<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.Str utsPrepareAndExecuteFilter</filter-class><!—自从struts2.1.3以后,下面的FilterDispatcher已经标注为过时<filter-class>org.apache.struts2.dispatcher.ng.filter.FilterDispather</filter-class> --></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>在StrutsPrepareAndEXecuteFilter()方法中将会读取类路径下的默认文件struts.xml完成初始化操作。

第1章Struts2框架技术入门ok

第1章Struts2框架技术入门ok
35
第35页,共121页。
36
第36页,共121页。
(2)使用新建Struts2项目
❖ 本书使用的工具是:JDK 7、、、Eclipse 4.2 、 Tomcat 7。如需使用这些工具可在其官方网站下载。 有关JDK、NetBeans、MyEclipse、Eclipse、 Tomcat的下载、安装、配置和使用请参考相关资料或
第31页,共121页。
32
第32页,共121页。
③安装插件。下载的插件是名为的zip文件。首 先解压缩该文件,然后单击菜单栏中“工 具”->“插件”,弹出如图1-8所示的对话框。
33
第33页,共121页。
34
第34页,共121页。
④在图1-8所示的对话框中单击“已下载”>“添加插件”,弹出如图1-9所示的“添加插 件”对话框,找到下载插件(需先解压缩插 件文件)所在的位置,如图1-9所示,选定后 单击“打开”,在弹出的对话框中单击“安 装”, Struts2插件即安装完成,最后重新启 动。
20
第20页,共121页。
Struts2的下载
21
第21页,共121页。
22
第22页,共121页。
23
第23页,共121页。
下载Struts2时有以下选项:
(1) 这是Struts2的完整下载包,内容包括Struts2的核心类库、源代码、文档、
实例等,建议选择该选项。
(2) 该包只包含Struts2的实例,在完整版的Struts2下载包中已经包含了该
选项中所有实例。 (3) 该包只包含Struts2的核心类库,在完整版的Struts2下载包中已经包含了
该选项中所有类库。
(4) 该包只包含Struts2的相关文档,包括使用文档、参考手册和API等,在

struts1.2入门

struts1.2入门

Struts1.2教程一 Struts1.2入门我们为什么要用Struts1.2这个框架,他的到来到底为了解决什么样的问题在这前的我们已经学习了Java WEB,我们已经知道Java WEB开发的两个模式Model1和Model2,其中Model2模式借鉴了一种MVC模式(模型、视图、控制),这个模式能够有效的将业务与视图分开,从而将开发人员与网页美工人员分离开,有利于分工合作,但Model2模式也有它致命的弱点,由于所有的用户请求都通过控制器来与后台业务交互,但每一个用户请求又不同,这样我们就必须为每一个请求写一个控制器(servlet),如果一旦业务庞大,就可能有很多的控制器,这样会给系统维护和扩展都带来巨大的不便,为了解决这一问题基于MVC 模式的开源框架Struts悄然问世,在这个框架中我们所有的请求都到一个中央控制器(ActionServlet)统一处理,这样既有利于我们的维护工作,也增强了系统的扩展性。

Struts1.2初始化流程和具体工作流程初始化流程:struts最主要的是中央控制器(ActionServlet),它和其他Servlet一样,ActionServlet的加载取决于Servlet容器(WEB容器)来决定,容器根据配置文件(web.xml)的<load-on-startup>标签决定是在容器启动时加载还是第一次请求到来时加载。

不管哪种方式,当ActionServlet加载时,ActionServlet加载并初始化Struts配置文件struts-config.xml,它会把每一个<action>标签的内容生成ActionMapping对象存放在内存中,对于每一个<form-bean>标签会生成ActionFormBean对象存放在内存中等等,最后加载并初始化消息文件到内存中。

基本工作流程:当完成Struts初始化工作后,以下是一个请求到来时的工作流程。

Struts2入门

Struts2入门

L1 《Struts2入门》上机手册1.内容回顾(3-5分钟)1.Struts2框架的特点?2.Struts2有关的配置文件有哪些?3.Struts2环境的搭建,怎么配置4.Struts2简单应用开发2.上机目标1.掌握如何搭建Struts2开发环境2.掌握Struts2应用开发步骤3.初步理解Struts2的工作方式3.上机任务1.搭建Struts2开发环境(15分钟)2.开发HelloWorld应用(15分钟)3.开发Hello应用(20分钟)4.开发用户登录验证应用(25分钟)4.指导练习4.1 搭建Struts2开发环境1、准备Struts2二进制分发包struts2-*.zip,解压之。

2、在Eclipse中建一个Web工程,,比如strutsdemo3、将Struts2框架必须的Jar包部署到项目中,将分发包解压目录中lib目录下的以下文件复制到Web项目的WEB-INF/lib下。

这些文件是必须的,这里忽略了具体的版本号,请依据实际版本选择。

xwork.jarstruts2-core.jarognl.jarcommons-fileupload.jarfreemarker.jar3、在web.xml中配置Struts2这里,struts2通过配置过滤器FilterDispatcher来拦截Struts请求。

4.2 开发HelloWorld应用1”、功能要求,接收客户端请求,回应一个HelloWorld”内容。

2、编写一个Action组件来处理该请求,该组件必须在Struts2环境中运行,需要实现Action接口,且实现其execute()方法,参考代码如下:方法的返回值为字符串,比如success”表示回应成功。

注意:这里execute()”3、配置Action组件在src目录下编写一个struts.xml文件,在其中对Action组件进行配置,参考配置如下:说明:(1)<constant>标记是对Struts2的一些特性进行设置,这里将strtus.devMode设置为true,表明可进行调试信息输出。

struts2入门手册

struts2入门手册

struts2入门手册首先这个教程是基于你已经安装了myeclipse的基础上的,如果你还没有安装myeclipse 工具软件的话,你需要马上去安装一个。

如果你已经有了工具软件了的话,现在就按照以下步骤来入门struts2吧。

一、下载struts2进入struts的官网/,点击download,选择Full Distrybution:下的struts2-xxx-all.zip,下载struts2的最新版本,将压缩包解压,放置到D盘目录下。

二、解压struts2进入你解压后的struts2文件夹中,到D:\struts2-xxx\apps中,解压其中的struts2-blank.war 压缩文件到D:\struts2-xxx\example,这是struts2提供的基础例子,里面的WEB-INF\lib目录下的包正是struts2正常工作所需要的基本包。

三、导入struts2基本包打开你的myeclipse,创建一个web project工程,命名为test(你也可以自己随意起一个),不要急着点击Finish,先选择Next>,继续选择Next>,在弹出的对话框中把第二个单选框打勾,如图,再点击Finish。

创建好之后在你创建的工程上目录下的WebRoot/WEB-INF/lib目录上单击右键,选择import...,选择General下的File System,点击Next>,选择Browse...,浏览选择到D:\struts\example\WEB-INF\lib目录,点击确定。

选择Sellct All,点击Finish,就完成了struts需要的最基础的核心包的导入。

四、用struts实现一个简单的登陆验证1.修改工程目录下的WebRoot\WEB-INF目录下的web.xml文件,将里面的内容替换为如下代码:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><display-name>test</display-name><!-- 设置初始页面的URL --><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><!-- 设置struts过滤器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>2.在工程的src目录下创建struts.xml,代码如下:<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><!-- 是否开启动态方法调用 --><constant name="struts.enable.DynamicMethodInvocation"value="false"/> <!-- 指定被struts2处理的请求的后缀类型,多个用逗号隔开 --><constant name="struts.action.extension"value="action"/><!-- 设置浏览器是否静态缓存内容,开发阶段最好关闭 --><constant name="struts.devMode"value="true"/><!-- 设置当struts.xml改动后,是否重新加载,默认为false,开发环境下最好打开 --> <constant name="struts.configuraction.xml.reload"value="true"/> <package name="myPackage"namespace="/"extends="struts-default"> <action name="login"class="action.LoginAction"><result name="success">/welcome.jsp</result> <result name="input">/login.jsp</result></action></package></struts>3.在工程的src目录下创建package(包),命名为action,在action中新建class,命名为LoginAction,代码如下:package action;import javax.servlet.http.HttpSession;import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.ServletActionContext;@SuppressWarnings("serial")public class LoginAction extends ActionSupport {private String name;private String password;public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String forward() throws Exception {return SUCCESS;}//重载ActionSupport中的execute()方法public String execute() throws Exception {//验证输入的Name是否为"name",是则返回"success"否则返回"input"if("name".equals(name)) {HttpSession session = ServletActionContext.getRequest().getSession();session.setAttribute("name", name);return SUCCESS;} else {return INPUT;}}}4.在工程的WebRoot目录下创建login.jsp,代码如下:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>Login</title></head><body><!-- 创建一个登陆表单 --><s:url action="login"id="loginUrl"></s:url><s:form action="%{loginUrl}"method="post"><s:textfield label="Name"name="name"/><s:password label="Password"name="password"/><s:submit></s:submit></s:form></body></html>5.在工程的WebRoot目录下创建welcome.jsp,代码如下:<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>Welcome</title></head><body><h1>登陆成功</h1></body></html>现在就来验证一下我们的登陆页面吧,选择工具栏中的按钮,在弹出的对话框中单击project后的矩形选框,从下拉列表中选择你创建的工程,然后单击Add,从弹出的对话框中单击sever后的矩形选框,从下拉列表中选择tomcat7,单击Finish。

Struts2知识点总结

Struts2知识点总结

Struts2基础知识Struts2概述1.Struts2框架应用javaee三层结构中的web层框架。

2.Struts2框架在struts1和webwork基础之上发展的全新框架。

3.Struts2所解决的问题:在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。

图解:4.现在比较稳定的Struts2版本struts-2.3.24-all.zip5.web层常见框架1.struts2.springMVCStruts2框架入门1.导入jar包1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring包,是不能使用的,导入会导致程序不能运行。

2.到app目录里面复制案例的jar包是最好的方法。

2.创建action3.配置action类的访问路径1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的,位置必须在src下面,名称为struts.xml 。

2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即可。

3.action的配置*注意访问路径:http://域名/端口号/项目名/action名.action注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。

4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴即可。

Struts2执行过程图解:Struts2配置1.是一种常量标签2.修改Struts2的默认常量值1.常用方式在struts.xml中进行配置。

2.其它两种方式1.在src下面创建struts.properties文件并修改。

2.在web.xml文件中进行修改。

3.Struts2最常用的常量struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。

Struts2笔记(一)可使用全局页面。

1、配置方法:在package标签下配置2、注意:该标签只能在一个package标签中使用,如果有多个标签,需要重新定义。

STRUTS2入门教程(全新完整版)

STRUTS2入门教程(全新完整版)

一、发展历史及简介发展历史Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages、Servlet、标签库以及面向对象的技术水准。

Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。

这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。

这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。

当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。

同样,软件工程师使用Struts为业务应用的每一层提供支持。

它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。

我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。

如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。

早期Smalltalk程序语言便采用了MVC(Model-View-Controller)模式(Patterns)以增加程序代码弹性,MVC模式将程序代码整理切割为三部分,Model部分是业务与应用领域(Business domain)相关逻辑、管理状态之对象,Controller部分接收来自View所输入的资料并与Model部分互动,struts业务流程控制(Flow Control)之处,View部分则负责展现资料、接收使用者输入资料。

在Java应用中,JFC/Swing、AWT、JSP皆是可用作View的技术规格,而JavaBean与Enterprise JavaBean规格则可用于Model程序代码,一旦应用程序以MVC模式加以适当的分割,Model部分程序代码可在不同使用者接口外观的应用程序中重复使用。

随着JSP与Servlet技术大量应用于以Web为基础的应用程序,Java开发人员群体认为应以较佳的模式以提升Web应用程序的可维护性与重复使用性。

struts2入门教程一(环境搭建,基本案例实现)CSDN

struts2入门教程一(环境搭建,基本案例实现)CSDN

Struts2入门初步需掌握1.struts2概述2.struts2环境搭建(第一个struts2的应用程序)3.struts.xml文件配置详解4.struts2请求的URL的搜索路径的顺序概述5.struts2工作原理概述6.struts2指定多个配置文件7.struts2动态方法调用8.使用通配符定义action一:简介Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

二:环境搭建搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1.找到开发Struts2应用需要使用到的jar文件.下载官网:/download.cgi#struts221解压后:开始学习使用依赖的最基本的jar 包2:编写Struts2的配置文件解压其中一个案例在此目录下找到struts.xml 文件先拷贝到项目的src 下。

再对起进行修改。

删除剩余如下代码:[html]01.<?xml version ="1.0"encoding ="UTF-8" ?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" 04."/dtds/struts-2.3.dtd"> 05.06.<struts> 07.08. </struts>无法加载插件。

01、struts2(Struts2开发入门 、常用配置、参数传递) - 副本

01、struts2(Struts2开发入门 、常用配置、参数传递) - 副本

1. Struts2简介1.1. 什么是Struts21.1.1. Struts2的概念Struts2是轻量级的MVC框架,它主要解决了请求分发的问题,重心在于控制层和表现层。

轻量级,指的是Struts2具有较低的侵入性,就是它对我们业务代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的业务代码中基本上不需要import它的包。

Struts2实现了MVC,满足了MVC设计思想。

在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的、隐含的,我们不需要再写特别的代码来实现MVC了。

作为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。

这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此在很大程度上,我们的开发变得可以复用。

Struts2解决请求分发的问题,我们会在后面为什么使用Struts2中讲解。

重心在控制层和表现层,是纵观整个Struts2理论课程来看的,从中我们会体会到这一点,随着大家对Struts2的逐步了解,届时我们再回顾这一点。

1.1.2. 什么是MVCMVC是代码的分层思想,是软件设计领域经典的设计模式。

它根据代码功能的不同,将一个软件的代码分为3部分,即模型、视图、控制器,这3部分代码的含义和功能如下。

1、M-Model 模型模型(Model)的职责是负责业务逻辑。

包含两层:业务数据和业务处理逻辑。

比如实体类、DAO、Service都属于模型层。

2、V-View 视图视图(View)的职责是负责显示界面和用户交互(收集用户信息)。

属于视图的组件是不包含业务逻辑和控制逻辑的JSP。

3、C-Controller 控制器控制器是模型层M和视图层V之间的桥梁,用于控制流程。

比如:在Servlet项目中的单一控制器ActionServlet。

Java使用框架:Struts 2框架使用指南

Java使用框架:Struts 2框架使用指南

Java使用框架:Struts 2框架使用指南引言:在当今快节奏的软件开发领域,使用框架已经成为一种常见的做法。

框架可以帮助开发人员更高效地构建应用程序,提高开发速度和质量。

在Java开发领域,Struts 2框架是一个非常受欢迎的选择。

本文将为读者提供一个详细的Struts 2框架使用指南,帮助他们更好地理解和应用该框架。

第一部分:Struts 2框架简介1.1 Struts 2框架概述Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。

它提供了一组用于开发Web应用程序的组件和工具,如控制器、视图和模型。

Struts 2框架的目标是简化Web应用程序的开发过程,提高应用程序的可维护性和可扩展性。

1.2 Struts 2框架的特点- 提供了清晰的MVC架构,使开发人员能够更好地组织和管理代码。

- 支持灵活的配置和注解,使开发人员能够根据具体需求进行定制。

- 提供了丰富的标签库和表单验证机制,简化了用户界面的开发和验证过程。

- 整合了许多常用的Java技术,如Hibernate、Spring和Tiles,提供了更强大的功能和扩展性。

第二部分:Struts 2框架的核心组件2.1 控制器(Action)Struts 2的控制器被称为Action。

一个Action是一个Java类,用于处理用户请求并生成相应的结果。

在Struts 2中,Action可以使用注解或配置文件进行声明和配置。

开发人员可以通过继承ActionSupport类来简化Action的开发。

2.2 视图(View)Struts 2的视图用于呈现结果给用户。

视图可以是JSP、FreeMarker模板或其他支持的模板引擎。

Struts 2提供了丰富的标签库和表单标签,使开发人员能够更轻松地构建用户界面。

2.3 模型(Model)Struts 2框架本身不提供持久化机制,但它可以与其他持久化框架(如Hibernate)集成。

第一章Struts2系统架构

第一章Struts2系统架构

第一章Struts2系统架构本章主要介绍的Struts2的系统架构,让学员对Struts2框架在结构上有一个整体概念为我们以后更加详细的学习Struts2打下一个良好的基础。

第一节Struts2的系统架构及处理的主要流程1.Struts1简介Struts1的历史比较久远,Struts1是世界上第一个发布的MVC框架,目前市场率最高的框架。

下面将简单讲解Struts1的基本架构。

图1-1显示了Struts1的数据流图。

图1-1 Struts1数据流图Struts1框架以ActionServlet为核心控制器,ActionServlet获得客户端请求。

然后ActionServlet根据请求信息调用匹配的业务逻辑控制器(Action)处理用户请求。

请求处理完成后,业务逻辑处理器调用相应的JSP显示处理结果。

Struts1框架实现了MVC模式,下面我们了解一下Struts1是怎样实现MVC模式的。

Struts1框架中并没有提供Model层的实现。

在实际的企业应用中,通过一个JavaBean 实现一个业务逻辑,在功能比较复杂的应用中也采用EJB或WebService服务实现业务逻辑。

Struts1框架的View层采用JSP实现。

Struts1提供了大量丰富的标签库。

这些标签库与Struts的组件兼容的特别好,可以很容易的输出控制器的处理结果。

Struts1框架中,控制器是它的核心,Struts1的控制器由两部分组成:核心控制器(ActionServlet)和业务逻辑控制器(Action),核心控制器由Struts1框架提供。

业务逻辑控制器需要由用户自己继承Struts1框架提供的Action类实现。

在Struts1框架中,JSP/Servlet耦合非常紧密。

这种紧密关系促使Struts1存在各种缺陷。

下面我们分析一下Struts1中存在的缺陷。

●支持的表现层技术单一●耦合性强,不便于单元测试●代码依赖于Struts1 API,侵入性强2.WebWork简介WebWork出自于开源组织opensymphony,实际的创始人是Java领域的名人Rickard Oberg(JBoss和XDoclet的作者)。

第1章Struts2框架技术入门

第1章Struts2框架技术入门
3
1.1.1 Struts2的由来与发展

Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于 MVC框架。,但Struts2和struts1在代码编写风格上几乎不一样的, struts2有以下优点:
Struts2的应用可以不依赖于Servlet API和struts API。 Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等
6
2. Struts2软件包中主要文件
7
(1)apps文件夹:该文件夹中存放基于 Struts2的实例应用,这些实例对学习者来说 是非常有用的资料。 (2)docs文件夹:该文件夹中存放Struts2的 相关文档,Struts2 API、Struts2快速入门等 文档内容。 (3)lib文件夹:该文件夹中存放Struts2框架 的核心类库以及Struts2的第三方插件类库。 (4)src文件夹:该文件夹中存放Struts2框架 的全部源代码。
27
不同的开发者有自己的方式来实现模型组件,
Struts2框架的目的是使用Action来调用模型 组件。例如一个银行存款的模型组件,代码 如【例1-1】所示。
28
29
【例1-1】中的代码是一个完成某一功能的业
务逻辑模块,在执行saving(String accounts,String money)方法时能够通过调用 其他类或者直接访问数据库完成存款功能。 使用业务控制器Action可以调用该业务逻辑 组件在Action的execute()中实现,代码如 【例1-2】所示。
25
26
1.2.2 Struts2的模型组件
模型组件可以是实现业务逻辑的模块,可以

struts2课堂笔记(第一天)

struts2课堂笔记(第一天)
七、 结果页面的配置(处理结果Result的详解)
八、 基于注解的struts2 开发
知识结构(原理及流程------>所有配置文件----->重点配置文件(struts.xml)----------->常量配置(还有Action)------>
Action类的编写------>action中方法调用-------->动态方法调用--------->ServletAPI获取三种方法
今天所学:
一、框架概述
二、Struts2开发快速入门
三、struts2 运行流程分析
四、 struts2 常见配置(配置文件加载顺序,struts.xml常用配置,常量配置)
五、 Action的访问(Action的三种编写方法,详细配置Action , 动态方法调用)
六、在Action中使用Servlet API
四、 struts2 常见配置
学习路径
1)、 struts.xml常量配置(配置文件顺序)、Action访问(Servlet API)、结果集 (使用Struts2 编写简单案例)
2)、 请求数据
3)、 响应页面生成
1、 struts2 配置文件的加载顺序
struts2 配置文件 由核心控制器加载 StrutsPrepareAndExecuteFilter (预处理init(),执行过滤)
init_DefaultProperties(); // [1] ---------- org/apache/struts2/default.properties
init_TraditionalXmlConfigurations(); // [2] --- struts-default.xml,struts-plugin.xml,struts.xml

01 Struts2快速入门

01 Struts2快速入门

7
JavaWEB 开发回顾-Servlet规范
• Session
– 在多个请求中提供一个会话 – 通常对应于一个用户 – 允许Servlet去绑定对象和操纵信息
• Filter
– 执行发送请求和响应的过滤。 –在web.xml中配置 – 用于认证,日志等
8
JavaWEB 开发回顾-Web应用结构(WAR)
• Servlet是打包成作为war的Web应用程序文件 • 包括
– – – – Servlets Java classes Web 资源(html,css,js,images,template) 依赖的第三方jar 包
9
JavaWEB 开发回顾-Servlet容器
• JavaWeb 应用都是发布到Servlet 容器
• Struts1(/)
从过去的岁月来看,struts 1是所有mvc框架中不容辩驳的胜利者,不 管是市场占有率,还是所拥有的开发人群,struts 1都拥有其他mvc 框架不可比拟的优势。struts 1的成功得益于它丰富的文档、活跃 的开发群体。当然,struts 1是世界上第一个发布的mvc框架: struts 1.0在2001年6月发布,这一点可能是使它得到如此广泛拥戴 的主要原因。
12
MVC 思想概述(续)
• MVC的特点如下:
– 多个视图可以对应一个模型 – 模型返回的数据与显示逻辑分离 – 应用被分隔为三层,降低了各层之间的耦合,提 供了应用的可扩展性 – MVC更符合软件工程化管理的精神。不同的层各 司其职,每一层的组件具有相同的特征,有利于 通过工程化和工具化产生管理程序代码
11
MVC思想概述
• MVC架构的核心思想是:将程序分成相对独立,而 又能协同工作的三个部分。通过使用MVC架构,可 以降低模块之间的耦合,提供应用的可扩展性。 • 起初,MVC模式是针对相同的数据需要显示不同的 应用而设计的,从设计模式角度看,其思想类似于 观察者模式。 • MVC的每个组件只关心组件内的逻辑,不应与其他 组件的逻辑混合 • MVC是Model、View、Controller三个词的缩写,三 个词分别代表应用的三个组成部分:模型、视图和 控制器

Struts 2讲义(一)

Struts 2讲义(一)

Struts 2入门讲义宋 铁11/2011CH 基本1. 2. 3. Str 1. 称作1体与内单应会导况更设计上讲务的深层页需意,中提和内H10. St 本内容Struts 2的由下载和搭建案例:基于ruts 2的Model 1早期的JSP 规作JSP Model 体系中,如图内容的分离,应用的需要,导致JSP 页内更为严重。

尽计人员开发并讲,将导致角Model 2体的方法。

它吸层次的处理任需要使用的b 在JSP 页内没提取动态内容内容,明确了truts 由来和概述。

Struts 2的运Struts 2的H 由来和概、Model 规范提出了两1 和JSP Mod 1所示,JSP 因为所以的它却不能满被嵌入大量尽管这对于Ja 并维护的――通角色定义不清体系结构,如吸取了两种技任务。

在这里ean 和对 象没有处理逻辑容插入静态模了角色的定义2(一)运行环境。

HelloWorld 程概述2和MVC 两种用JSP 技del 2,它们的P 页面独自响数据存取都是满足复杂的大的脚本片段或ava 程序员来通常这是开发清和职责分配图1.图2所示,是术各自的突出,servlets 充象,同时根据用辑;它仅负责模板。

在我看来义以及开发者)程序。

C技术建立应用的本质区别在响应请求并将是由bean 来型应用程序的或Java 代码,来说可能不是发大型项目的不明,给项 Model 1示是一种把JS 出优点,用J 充当控制者的用户的动作决责检索原先由来,这是一种与网页设计用程序的方式在于处理批量将处理结果返来完成的。

尽的实现。

不加,特别是当需是什么大 问题的规范――这项目管理带来示例图P 与servlets JSP 生成表达角色,负责管决定把那个J 由servlets 创建种有代表性的计者的分工。

式。

这两种方量请求的位置返回客户。

这尽管 Model 1加选择地随意需要处理的请题,但如果JS 这就确实是个来不必要的麻联合使用来达层的内 容,管理对请求的JSP 页传给请建的对象或 的方法,它清事实上,项方式在术语中置不同。

第五章 Struts2基础入门 (理论)

第五章   Struts2基础入门 (理论)

第5章Struts2 基础入门本章学习内容:1. Struts2 体系结构2. Struts2 运行流程3. Struts2与Struts1的对比4. Struts2入门示例5. 跟踪用户状态6. ValueStack的概念本章学习目标:1. 掌握Struts2体系结构2. 理解Struts2运行流程3.掌握struts.xml文件的配置4.能使用Struts2框架开发Web应用程序5.掌握使用ValueStack存储数据本章简介:通过上一章的学习,我们掌握了Struts1框架的HTML标签库、Bean标签库、Logic标签库等知识。

但是Struts1框架有天生的设计缺陷,包括:支持的表现层技术单一、与Servlet API严重耦合,难于测试、代码严重依赖于Struts1 API,属于侵入式设计等。

为了弥补以上缺陷,Struts2框架应运而生。

Struts2的体系与Struts1的体系差别非常大,因为Struts2使用了WebWork的设计核心,而不是使用Struts1的设计核心。

Struts2大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器彻底与Servlet API分离。

Struts2下的控制器不再像Struts1下的控制器,需要继承一个Action父类,甚至可以无需实现任何接口,Struts2的控制器就是一个包含execute方法的普通POJO类。

本章主要讲述Struts1存在的问题、Struts2体系结构、运行流程、使用Struts2重构用户登录、Struts2中的valueStack等知识。

5.1Struts2概述Struts1现在已经发展成为一个高度成熟的框架,不管是稳定性还是可靠性,都得到了广泛的证明。

但由于Struts1存在一些设计上的缺陷,于是催生了Struts2框架。

Struts2与Struts1相比,确实有很多革命性的改进,但它并不是一个全新的框架,而是在WebWork基础上发展起来。

struts1与struts2的区别Java进阶必备知识点

struts1与struts2的区别Java进阶必备知识点

Struts1与struts2的对比一.Action类·Struts1要求Action类继承一个抽象类。

Struts1的一个普遍问题是使用抽象类编程儿不是接口。

·Struts2中Action类可以实现一个Action接口,也可是实现其他接口,试可选和定制的服务成为可能。

Struts2提供一个Action-Support基类去实现常用的接口。

Action接口不是必须的,任何execute标识的POJO对象都可以用作Struts2的Action对象。

二.线程模式·struts1中Action是单例模式并且是线程安全的,因为仅有Action的一个实力来处理所有的请求。

单例策略限制了struts1 Action能做的事,并且要在开发时特别小心Action资源必须是线程安全的或同步的。

·struts2中Action对象为每一个请求产生一个实例,因此没有线程上的安全问题。

(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)三.Servlet依赖·struts1中Action依赖于servletAPI,因此当一个Action被调用时HttpServetRequest和HttpServletResponse被传递给execute 方法。

·struts2中Action不依赖于容器,允许Action脱离容器单独被测试。

如果需要,struts2 Action仍然可以访问初始的request和response。

但是,其他元素减少或者消除了直接访问HttpServetRequest和HttpServletResponse的必要性。

四.可测性·测试struts1中Action的一个主要问题是execute方法暴露了servletAPI(这使得测试要依赖于容器)。

一个第三方扩展—Struts TestCase—提供了一套Struts1的模拟对象(来进行测试)。

01 struts2入门课件

01 struts2入门课件

Struts2入门
—高级软件人才实作培训专家 ! 搭建Struts2开发环境的步骤
搭建Struts2环境时,我们一般需要做以下几个步骤 的工作: 1.创建javaweb工程 2.找到开发Struts2应用需要使用到的jar文件 3.创建jsp文件 4.创建action文件 5.编写Struts2的配置文件 6.在web.xml中加入Struts2 MVC框架启动配置
利用Class.forName()方法取得类的完整路 径,然后在利用newInstance()方法创建一 个实例
北京传智播客教育
—高级软件人才实作培训专家 ! 模拟Struts2工作原理
4.客户端请求提交给Servlet或过滤器来处理
private Map<String,String> map=new HashMap(); public void init(FilterConfig filter) throws ServletException { map.put("/primer/userAction.action","erAction"); map.put("/helloWorld/helloAction.action","cn.itcast.action.HelloAction"); }try { Action userAction =(Action)Class.forName(map.get(path)).newInstance(); userAction.execute(); req.getRequestDispatcher("/success.jsp").forward(req, res); } catch (InstantiationException e) { 用Map保存客户端请求链接和要访问 e.printStackTrace(); } catch (IllegalAccessException e) { action的对应值 e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } 北京传智播客教育
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



17
1.2.3 Struts2的优势
Action不需要继承 一个请求对应一个Action实例 不依赖于容器 自动接收表单输入 可以使用JSTL/EL、OGNL,甚至在struts.xml中也可以使用 OGNL • 通过ValueStack,可以直接从action中取值 • 使用OGNL进行类型转换 • 通过validate()或Validator框架进行表单验证
25
1.2.5 Struts2环境搭建
编写Struts2的配置文件: Struts2默认的配置文件为struts.xml ,该文件需要存放在WEBINF/classes下,该文件的配置模版如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "/dtds/struts-2.0.dtd"> <struts> …. </struts>
19
1.2.4 Struts1与Struts2区别续

Servlet 依赖: Struts1 Action 依赖于Servlet API ,Struts2的应用可以不依赖于Servlet API。 Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。
• • •

可测性: Struts1与Servlet API严重耦合,难于测试 ;Struts2与Servlet API解耦合, 易于测试 表现层: Struts1支持的表现层技术单一,只支持JSP;Struts2提供支持多种表现层技 术,如:JSP、freeMarker、Velocity等。 类型转换: Struts 1 ActionForm 属性通常都是String类型。Struts1使用CommonsBeanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置 的;Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。 数据校验: Struts 1支持在ActionForm重写validate方法中手动校验,或者通过整合 Commons alidator框架来完成数据校验。Struts 2支持通过重写validate方法 进行校验,也支持整合XWork校验框架进行校验。
• 本章内容
1.1 Web开发框架概述 1.2 Struts 2框架概览 1.3 第一个Struts2应用
4
1.1.1 Java Web应用
Client-Side Presatation Brower
Pure HTMl Java Applet
Server-Side Presatation Web Server JSP
... ...
<filter> <filter-name>struts2</filter-name> <filterclass>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ... ...
23
1.2.5 Struts2环境搭建

搭建Struts2环境时,我们一般需要做以下几个步骤的工作: 1. 找到开发Struts2应用需要使用到的jar文件
2. 编写Struts2的配置文件 3. 在web.xml中加入Struts2 MVC框架启动配置
24
1.2.5 Struts2环境搭建

开发struts2工程需要的基本JAR包: – struts2-core-2.x.x.jar :Struts 2框架的核心类库 – xwork-core-2.x.x.jar :XWork类库,Struts 2在其上构建 – ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language), struts2框架通过其读写对象的属性 – freemarker-2.3.x.jar :Struts 2的UI标签的模板使用 FreeMarker编写 – commons-logging-1.x.x.jar :ASF出品的日志包,Struts 2框 架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。 – commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后 必须加入此文件

Struts2是Struts的新一代产品,是在Struts和WebWork的技术 基础上进行了合并的全新的Struts2框架。其全新的Struts2的 体系结构与Struts1的体系结构的差别巨大。 Struts2以WebWork为核心,采用拦截器的机制来处理用户的 请求,使用IoC和AOP最先进的设计思想,这样的设计使得业 务逻辑控制器能够与Servlet API解耦合。 Struts2 支持基于Annotation的配置。
JavaEE Platform
客户端
Web服务器
应用服务器
EIS
5
1.1.1 Java Web应用

典型的J2EE框架分为四个层次: – 客户端层 – Web服务器层 – 应用服务器层 – 数据服务器层
6
1.1.2 Java Web技术介绍

开发一个Java Web应用一般会使用到一下几种技术: – Servlet – JSP – JavaBean
Struts2 入门
1
课程结构
内容
第一章:Struts2入门 第二章:Struts2中的Action 第三章:Struts2拦截器 第四章:表达式语言OGNL 第五章:Struts2标签库 第六章:类型转换 第七章:国际化 第八章:文件上传和下载 第九章:校验框架
课时(H)
3 6 3 3 3 3 3 3 3
• • • • •
18
1.2.4 Struts1与Struts2区别



Action 类: Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问 题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一个 Action接口,也可实现其他接口,使可选和定制的服务成为可能。 Struts2提供一个ActionSupport基类去实现常用的接口。Action接口 不是必须的,任何有execute标识的POJO对象都可以用作Struts2的 Action对象。 线程模式: Struts1 Action是单例模式并且必须是线程安全的,Action资源 必须是线程安全的或同步的。 Struts2 Action对象为每一个请求产生 一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请 求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题) 表达式语言: Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象 图遍历,但是对集合和索引属性的支持很弱。 Struts2可以使用JSTL ,但是也支持一个更强大和灵活的表达式语言--"Object Graph Navigation Language" (OGNL).
9
1.1.3 JSP架构模式ModelⅠ

ModelⅠ模式的优点缺点: – 优点 • 编码的简单性 • 适用于小型项目 – 缺点 • 页面与数据业务逻辑不能完全分离 • 在JSP页面中嵌入大量的Java代码 • 不适用于中大型项目
10
1.1.4 JSP架构模式ModelⅡ
11
1.1.4 JSP架构模式ModelⅡ
注意:此文件在开发的时候是放到src目录下,程序编译后会自动 拷贝到WEB-INF/classes目录下。
26
1.2.5 Struts2环境搭建
web.xml中加入Struts2 MVC框架启动配置:
在struts1.x中, struts框架是通过Servlet启动的。在struts2中,struts框架是 通过Filter启动的。他在web.xml中的配置如下:
•Java EE的基于MVC的WEB编程框架
Struts1.x Struts2 • 基于Action的编程框架; • 在WebWork基础上开发,与Struts1不同。 Spring MVC • 也包含有一个完整的WEB框架。 JSF、Tapestry、Cocoon、... ...
16
1.2.2 Struts2框架
2
第一章:Struts2 入门
目标: 本章旨在向学员介绍: 1)MVC架构模式 2)Struts1、Struts2、Webwork之 间的关系 3)Struts1与Struts2的区别 4)Struts2的环境搭建
时间:3学时 教学方法:授课+练习
5)编写第一个Struts2的
web应用
3
第一章:Struts2 入门
20
1.2.5 Struts2环境搭建
Struts 2框架由WebWork和Struts1框架发展而来 准备开发环境 – 安装JDK – 安装Tomcat – 安装MyEclipse – 安装数据库MySql或Oracle
21
1.2.5 Struts2环境搭建
• 相关软件下载
下载Struts 2.2.1.1 /download.cgi#struts217 (选择下 载full distribution) • 下载XWork: /xwork/download.action • 下载tomcat6.0, • 下载JDK1.6,/download/jdk6
相关文档
最新文档