struts2学习心得

一.配置问题:最新的struts2为GA版2.2.1其中必须类库为mons-fileupload-1.2.1.jar2. commons-io-1.3.2.jar3. freemarker-2.3.16.jar4. javassist-3.7.ga.jar5. ognl-3.0.jar6. struts2-core-2.2.1.jar7. xwork-core-2.2.1.jar之前的版本使用ognl时不需要javassist这个类库现在这个版本则需要。

二.EL表达式(JSP EL)目的是为了使JSP写起来更加简单。

A、语法结构${expression}B、[ ]与.运算符EL 提供“.“和“[ ]“两种运算符来存取数据。

当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。

例如:${user.My-Name}应当改为${user["My-Name"] }如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。

例如:${er[data]}中data 是一个变量C、变量EL存取变量数据的方法很简单,例如:${username}。

它的意思是取出某一范围中名称为username的变量。

因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。

假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。

属性范围在EL中的名称Page PageScopeRequest RequestScopeSession SessionScopeApplication ApplicationScopeD、特别强调:1、注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。

例如:即使现有的pageContext 属性包含某些其他值,${pageContext} 也返回PageContext 对象。

2、注意<%@ page isELIgnored="true" %> 表示是否禁用EL语言,TRUE表示禁止.FALSE 表示不禁止.JSP2.0中默认的启用EL语言。

3、在web中用EL表达式时${name}其意思是调用其getName方法,而不是name这个属性例如:public class HelloWordAction{private String msg;public String getMessage{return msg;}}在jsp中使用${message} 就是返回msg的值。

经实验证明了的三.Struts2是在webwork2的基础上发展而来的。

和struts1一样也是mvc框架。

但是虽然他们名字一样但是原理差异很大。

Struts2之所以会产生是因为有以下几个优点:1.在软件设计方面struts2没有像struts1那样和servlet API和struts API那样紧密的耦合。

Struts2可以不依赖它们。

Struts2属于无侵入式设计。

而struts1属于侵入式设计。

Public class HelloWordAction extends Action{Public ActionForward execute(ActionMapping mapping ActionForm form HttpRequest request HttpResponse response)throws Exception{。

}}而struts2则不需要,只需自己定义就好。

2.Struts2不需要注意线程同步的问题,而struts1则面临这个问题,因为struts1对action 创建的时候只创建一次,当多个用户同时访问这个action时,则必须出现这个同步的问题。

而对struts2来说,需要action时都要重新new出一个对象。

四.Namespace决定了action的访问路径,默认为“”,可以接受所有路径的action。

Namespace 后面可以加/也可以加/xx或者/xx/yy,则action的访问的路径就相对于/index.action,/xx/index.action或者/xx/yy/index.actionPackage顾名思义为“包”可以把你的action包裹进来,然后在里面定义自己的action可以定义N个包,但是包和包之间的名字不能重复,包里面的action可以和别的包的重复。

3.Action的几个属性:1.Name:2.Method:默认为自动的Actionsupport 里面有个方法execute()方法返回suceess字符串。

所以result的默认值为success。

但是注意:并不是一定要执行execute()方法,而是根据Method方法指定的来说,也可以在地址中动态指定(动态方法调用DMI(动向指标或趋向指标))推荐使用(开发action一般继承Actionsupport重写execute()方法。

(企业开发只用这种)当然还有其他两个方法自己写个execute()方法,或者继承Action接口重写execute()方法)3.Class:自己开发写的action路径。

五.路径问题:一般用绝对路径因为struts2的路径问题是根据action的路径而不是jsp路径来确定的六.通配符(WildCard)*一定要遵守“约定优于配置”的原则:就是说什么东西你必须符合一定的标准,在这个基础上在进行优化配置。

<package name=”actions” extend=“struts-default”namespace=“/actions”看第一个action配置<action Name=“Student*”class=“。

”method=“{1}”/><result>student{1}_success.jsp<result>意思就是说凡是带url为/actions/Student,后缀无论是什么的都可以访问,但是method=“{1}”说明其方法为你之前*所代表的那个.当你返回success时就调用student{1}_success.jsp比如:你访问http://……./actions/Student Add,那他就调用的方法是Add成功之后(返回success)访问student Add_success.jsp看第二个action配置<action Name=”*_*” class=”cn.itcast.struts2.{1}Action” method=”{2}”/><result>/{1}_{2}_success.jsp</result>这又是什么意思呢?就是说凡是带url为/actions/*_*的,无论两个*星号代表什么都可以访问,但是method=“{2}”说明其访问的方法为第一个*所代表的那个类中的第二个*所代表的方法比如:你访问http://....../actions/Student_Add,,那他就调用Student Action中的Add方法成功之后就访问Student_Add_success.jsp这就是通配符的具体意思七.Action参数的传递方式:1.直接在地址栏上传递(url)http://localhost:8080/project-name/namespace/action-name!add?name=a&age=10就是给action中的两个属性name和age 分别传值a和102.用DomainModel方式传递1.当需要的参数过多时,创建一个域模型DomainModel也就是(javabean)注意的是:这个DomainModel要有不含参数(参数为空)的构造方法,而且想让他自己new出对象的会必须要传参数值比如http://localhost:8080/project-name/namespace/action-name!add?=aa&user.age=10解释一下,add?之前的和前面的一样,和user.age是指把数据传给user这个对象的name和age属性因为在action中我们不定义属性而是直接定义一个User类型的对象Private User user;并有getUser()方法和setUser()方法而这个User就是我们说的DomainModel,他定义了两个属性name和age并有getter和setter方法,方便我们送值和取值。

(相当于一个javabean)2.当传入的值的个数和DomainModel的属性个数不一致的情况下,再用DTO(Data Transfer Object(数据传输对象))举个例子说明一下:如果用户注册的时候肯定有用户名,密码和验证密码。

但是你定义一个User的时候只能有两个属性username和password,那这种情况下怎么办呢?我传的第三个值传给谁呢?所以要再建一个DTO(其实也是一个java类)UserDTOPrivate String username;Private String password;Private String confirmPassword;生成getter和setter方法,然后通过这个再定义User的DomainModelPrivate String username;Private String password;写出getter方法和setter方法注意:要写一个带UserDTO参数的User构造方法,Public User(UserDTO userDTO){}目的是为了把得到的UserDTO属性传给User对象!接受参数的时候注意,一定要把得到的值放到User对象里,即调用setter方法User.setName(userDTO.getName());用url传参数时要传给userDTO3.用ModelDriven方式传递参数ModelDriven是一个接口(不大常用)。

八.配置struts2的属性有三种方法:1.写一个struts2。

Properties文件来管理属性。

一般放在项目的WEBINF/classes下。

采用的key-value对。

每个key就是struts2的属性,每个value就是这个struts2的属性值。

2.在struts2的配置文件struts.xml配置常量在里面加入<constant name=”” value=””>Name为属性,value为属性值3.在web.xml文件中配置filter时也可以配置属性<init-param><param-name> </param-name>里面为属性名<param-value> </param-value>里面为属性值<init-param>上述文件的加载顺序为:struts.xml struts.properties web.xml意思就是说如果重复的属性则按最后那个文件配置的算起。

合集下载

Struts2框架工作原理及应用体会

Struts2框架工作原理及应用体会
图1
二、Struts2 工作原理 ( 一) Struts2 框架组成。Struts2 框架由三个主要部分组 成: 核心控制器、业务控制器,以及由用户实现的业务逻辑组 件。这里我们将侧重于核心控制器与业务控制器的理解与 说明。
( 二 ) 核 心 控 制 器: FilterDispatcher。 FilterDispatcher 是 Struts2 框架的核心控制器 ,在此,我们可以将 FilterDispatcher 看作一个类似于过滤网的过滤器。当用户发出请求,并到达 Web 硬哟那种时,该过滤器会过滤用户请求。如果用户请求 的结尾为 action,则将该请求转入 Struts2 框架进行处理。当 Struts2 框架获得了* . actio 请求后,会根据请求前面“* ”的 那部分内容,决定调用哪个业务逻辑组件作为响应单位。这 里需要说明的是 Struts2 用来处理用户请求的 Action 实例并 不是业务控制器,而是作为 Action 的代理———正因为 Struts2 的一大特点,与 Servlet API 的非耦合性,使得用户实现的业 务控制器无法直接处理用户请求。有效的提高了后期调试 维护的效率。而 Struts2 框架再次提供了了一系列的拦截器。 这些拦截器负责将 HttpServletRequest 请求的参数解析出来, 传入 Action 中,并毁掉 Action 的 Execute 方法来处理用户请 求。用户实现的 Action 类仅作为 Struts2 的 Action 代理的代 理目标。用户实现的业务控制器则包含了对用户请求的处 理。用户的请求数据包含在 HttpServletRequest 对象中,而用 户的 Action 类无需访问 HttpServletRequest 对象。拦截器负 责将 HttpServletRequest 里的请求数据解析出来,并传给业务 逻辑组件 Action 实例。

学习struts2——常见问题与处理

学习struts2——常见问题与处理

学习struts2.2.1遭遇滑铁卢~~~~~好多异常~~~~~好多bug~~~~好多问题~~~~~~好多困难~~~好多肥羊~~~一、Filter mapping specifies an unknown filter name ----filter标签在web.xml 里的顺序<filter-mapping><filter-name>adminOperateLogFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>adminOperateLogFilter</filter-name><filter-class>com.berheley.exam.web.filter.AdminOperateLogFil ter</filter-class></filter>这样写启动服务器时报错 Filter mapping specifies an unknown filter nameadminOperateLogFilter将这两块换个顺序就没问题了,web.xml信息的加载是有顺序的,filter在mapping之前必须要让服务器找到其定义。

<filter><filter-name>adminOperateLogFilter</filter-name><filter-class>com.berheley.exam.web.filter.AdminOperateLogFil ter</filter-class></filter><filter-mapping><filter-name>adminOperateLogFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>二、ng.IllegalArgumentException: Filter mapping specifies an unknown filter nameStruts2答:“Struts2”?大写的?are you sure?我猜你一定是看了某struts2.0的权威指南(那是一个chm文件电子书,而且你看的可能是翻译成中文的),我不知道英文版的有没有写错,但是我检查了很久后才发现中文版存在这个大小写错误。

struts2

struts2

—高级软件人才实作培训专家! 高级软件人才实作培训专家!
搭建Struts2开发环境
搭建Struts2环境时,我们一般需要做以下几个步骤的工作: 1》找到开发Struts2应用需要使用到的jar文件. 2》编写Struts2的配置文件 3》在web.xml中加入Struts2 MVC框架启动配置
北京传智播客教育
北京传智播客教育
—高级软件人才实作培训专家! 高级软件人才实作培训专家!
搭建Struts2开发环境--Struts2在web中的启动配置
在struts1.x中, struts框架是通过Servlet启动的.在struts2中, struts框架是通过Filter启动的.他在web.xml中的配置如下:
—高级软件人才实作培训专家! 高级软件人才实作培训专家!
Struts2
讲师: 讲师:黎活明
北京传智播客教育
—高级软件人才实作培训专家! 高级软件人才实作培训专家!
Struts2
Struts2是在WebWork2基础发展而来的.和struts1一样, Struts2也属于MVC框架. 不过有一点大家需要注意的是:尽管Struts2和struts1在名字上的差别不是很大,但 Struts2和struts1在代码编写风格上几乎是不一样的.那么既然有了struts1,为何还要 推出struts2.主要是因为struts2有以下优点:
北京传智播客教育
—高级软件人才实作培训专家! 高级软件人才实作培训专家!
第一个Struts2应用--HelloWorld
在默认的配置文件struts.xml 中加入如下配置:
<?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> <package name="itcast" namespace="/test" extends="struts-default"> <action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" > <result name="success">/WEB-INF/page/hello.jsp</result> </action> </package> </struts>

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完成初始化操作。

实验六 Struts2 的开发应用

实验六  Struts2 的开发应用

实验六Struts2 的开发应用网络11-2班3110757214 陈宇鹏一、实验目的理解MVC设计模式的基本概念和Java Web开发的两种模式Model1和Model2,以及Struts开发工作流程和基本应用。

二、实验要求1.掌握Struts2.0的开发环境的建立。

2.理解Struts的框架原理。

3.掌握Struts的工作流程。

4.掌握Struts2.0的基本应用。

三、实验内容(一)Struts2的文件上传1.文件上传页面,其中包含两个表单域:文件标题和文件浏览域♦程序功能:上传页面,包含两个表单域。

♦程序源码:upload.html<html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GBK" /><title>简单的文件上传</title></head><body><form action="upload.action" method="post" enctype="multipart/form-data">文件标题:<input type="text" name="title" /><br>选择文件:<input type="file" name="upload" /><br><input value="上传" type="submit" /></form></body></html>2.处理上传请求的Action类程序源码:UploadAction.javapublic class UploadAction extends ActionSupport{private String title;private File upload;private String uploadContentType;private String uploadFileName;//接受依赖注入的属性private String savePath;//接受依赖注入的方法public void setSavePath(String value){this.savePath = value;}private String getSavePath() throws Exception{return ServletActionContext.getRequest().getRealPath(savePath);}public void setTitle(String title) {this.title = title;}public void setUpload(File upload) {this.upload = upload;}public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType;}public void setUploadFileName(String uploadFileName) {this.uploadFileName = uploadFileName;}public String getTitle() {return (this.title);}public File getUpload() {return (this.upload);}public String getUploadContentType() {return (this.uploadContentType);}public String getUploadFileName() {return (this.uploadFileName);}@Overridepublic String execute() throws Exception{System.out.println("开始上传单个文件-----------------------");System.out.println(getSavePath());System.out.println("==========" + getUploadFileName());System.out.println("==========" + getUploadContentType());System.out.println("==========" + getUpload());//以服务器的文件保存地址和原文件名建立上传文件输出流FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getUploadFileName());FileInputStream fis = new FileInputStream(getUpload());byte[] buffer = new byte[1024];int len = 0;while ((len = fis.read(buffer)) > 0){fos.write(buffer , 0 , len);}return SUCCESS;}}1.配置文件上传的Action程序源码:Struts.xml<?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><constant name="struts.custom.i18n.resources" value="globalMessages"/><constant name="struts.i18n.encoding" value="GBK"/><package name="lee" extends="struts-default"><action name="upload" class="lee.UploadAction"><param name="savePath">/upload</param> <result>/succ.jsp</result></action></package></struts>.部署并浏览该页面。

Struts2的介绍及总结

Struts2的介绍及总结

Struts2在WebWork基础上发展起来的,可扩展的JAVA EE web框架。

框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。

Action类:Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。

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

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

线程模式:Struts2Action对象为每一个请求产生一个实例,因此没有线程安全问题。

Servlet依赖:Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。

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

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

可测试性:Struts2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。

捕获输入:Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。

Action属性能够通过web页面上的taglibs访问。

表达式语言:Struts 2 使用"ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。

ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。

Struts2不仅支持JSTL,Struts2 还可使用OGNL进行类型转换。

提供基本和常用对象的转换器。

校验:Struts2支持通过validate方法和XWork校验框架来进行校验。

XWork 校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性。

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标签中使用,如果有多个标签,需要重新定义。

2022java实训心得体会(12篇)

我学习 java 基础一直使用的是《编程思想》第四版这本书,
第2页 共33页
感觉挺不错的,全面透彻通俗易懂,在国外也是广受好评,我很 惋惜没有早点知道这本书,否则也不回浪费大学三年青春岁月, 一无是处的打发光阴,值得庆幸的事这本书一定程度上激发了我 对 java 学习的兴趣与潜力。英语能力强的话,可以直接看英文原 版。我一直强调重视基础,如果你的 java 基础打的牢,你在学习 那些 java 框架就是非常轻松的事了。 java 实训心得体会 2
2022java 实训心得体会(12 篇)
java 实训心得体会 1 面临毕业与就业的压力,不久将来就要从一个学生到一个社
会人的转变:技术在不断的提高,思路在不断的开阔,思想在不 断的升华,更重要的是自己的理想和抱负更加的坚定。对于一个 投身于 IT 的新人,经验谈不上,一些学习的心得倒是可以拿出来 探讨一下,我们该如何面临这个似曾相识的社会,突然一天如此 接近。面对“全球经济不景气”带来的就业压力,我们正在逐渐 走向成熟,我们意志更加坚强,我们深知不经一番寒彻骨,哪来 梅花扑鼻香。深深地体会到找一份好工作多么不容易的,尤其是 能力匮乏的我们。一切都要付出行动,不能空想,要实现目标, 就得不懈的努力。
第7页 共33页
最后终于要结束了,大家都有种释怀的感觉,当然我想我更 多的是兴奋和自己掌握了知识之后的饱满感,学知识就像吃东西 一样,吃饱了就应该好好的消化。要不断的温习和运用,做到举 一反三,将所学知识充分融入到平时的学习生活中去,为以后的 工作做好坚实的基础。感谢学校和老师能够为我们提供这次机会, 让我们更好的掌握和了解 JAVA 这门语言。 java 实训心得体会 4
短短的一个月很快就过去了,在这短短的一个月里,我学到 了很多,了解了很多。在这一个月里我学到了有关 JAVA 等方面的 知识,了解了关于软件开发的流程。了解了自己的不足,知道了 自己努力的方向。

java实训心得体会(精选17篇)

java实训心得体会(精选17篇)(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如总结计划、党团报告、合同协议、策划方案、演讲致辞、规章制度、条据文书、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as summary plans, party and youth league reports, contract agreements, planning plans, speeches, rules and regulations, doctrinal documents, teaching materials, complete essays, and other sample essays. If you would like to learn about different sample formats and writing methods, please stay tuned!java实训心得体会(精选17篇)java实训心得体会(精选17篇)我们心里有一些收获后,常常可以将它们写成一篇心得体会,通过写心得体会,可以帮助我们总结积累经验。

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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档