Struts2练习题说课讲解

Struts2练习题说课讲解
Struts2练习题说课讲解

Struts 2作业

1.简述什么是MVC?

答:MVC 的全称为model-view-controller(模型-视图-控制器)。MVC 是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。使用MVC 开发出来的应用程序一般包括以下几块内容:·控制器(Controller):控制器类处理客户端向Web 应用程序发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。·模型(Model):模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。·视图(View):视图类是Web 应用程序中用来生成并显示HTML 格式的服务器端对客户端请求的响应结果的模板文件

2.Struts 2以(WebWork)为核心,采用(拦截器)的机制来处理用户的

请求。

3.简述一个请求在Struts 2框架中的处理流程,请按自己对框架的理解叙述。答:1-用户提交自己的请求;2-由web.xml拦截,转发到action进行处理;3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面。

4.不属于Action接口中定义的字符串常量是( B )?

A)SUCCESS

B)FAILURE

C)ERROR

D)INPUT

5.资源文件的后缀名为(D)?

A)txt

B)doc

C)property

D)properties

6.在JSP页面中可以通过Struts 2提供的(D)标签来输出国际化信息。

A)

B)

C)

D)

7.以文字过滤拦截器为例,简述拦截器的使用步骤。

答:1-用户提交自己的请求;

2-由web.xml拦截,转发到action进行处理;

3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面;

8.在同一个系统中配置多个拦截器,试说明它们的执行顺序。

答:一般来说:先配置的拦截器,会先获得执行的机会,但是实际情况不是这样。execute()方法执行之前,配置在前面的拦截器,会先对用户的请求起作用。execute()方法执行之后,配置在后面的拦截器,会先对用户的请求起作用。(两头向中间靠拢的执行)。

9.请简述struts2中输入校验的几种方式。

答:客户端校验:在客户端用过使用javascript脚本对用户输入的数据进行校验;服务器校验:在服务器端对数据进行校验。

10.使用配置方式实现输入校验有哪两种方式?它们的命名规则是?如果同时配

置了两种方式,寻找校验文件的顺序是?

答:-1 重写validate()方法实现和validateXxx()方法实现;

-2 命名规则:必须以validate开头;

-3 顺序:当被请求的action方法处理逻辑还有相应的validateXxx()方法。那么该校验方法将在validate()校验之前进行。

11.校验器配置风格有哪两种?举例解释使用标签的含义。

答:-1 一种是字段优先,称为字段校验器风格;一种是校验器优先,称为非字段校验器风格。

-2 字段校验器:以 指定action中校验的属性指定校验器,message为校验器的失败提示信息 key为国际化资源文件中的key -3 非字段校验器:以为基本元素。Type指定该元素的类型, Param 指定传人参数。

12.Struts 2哪些内置校验器支持客户端校验?以及如何通过Struts 2标签自动生

成客户端校验代码?

答:必填校验器(required)

必填字符串校验器(requiredstring)

字符串长度校验器(stringlength)

整数校验器(int)

日期校验器(date)

邮件地址格式校验器(email)

网址格式校验器(url)

转换校验器(conversion)

表达式校验器(expression)

字段表达式校验器(fieldexpression)

正则表达式校验器(regex)

13.自定义校验器必须实现哪个接口?注册校验器的配置文件应如何命名?

答:实现com.opensymphony.xwork2.validator.Validator;接口;配置文件必须以validate.xml命名;

14.按照自己的理解,谈谈自定义类型转换器的方法。

答:1 继承DefaultTypeConverter类;

2 注册局部类型转换器方法

在Action所在的目录下,创建ActionClassName-conversion.properties文件,文件内容格式syntax: =

3 注册全局类型转换器方法

在classpath的根下创建 xwork-conversion.properties 文件,文件内容语法:syntax: =

15. Struts2中动态调用的格式(CD)

A)ActionName?methodName.do。

B)ActionName!methodName.do。

C)ActionName?methodName.action。

D)ActionName!methodName.action。

16什么是国际化?国际化资源文件的命名格式是?

答:国际化是(i18n)指的是软件设计阶段,就应该使软件具有支持多种语言和地区的功能、这样,

当需要在应用中添加对一种新语言和国家的支持是不需要对已有的软件返工,不需要修改的代码;

java资源文件的命名可以有3种格式: basename_language_country.properties basename_language.properties basena me_properties

17.在页面中使用()输出国际化信息;在Action类中如何输出国际化信息?表单标签中又当如何?

答:在action类中,可以继承actionSupport,使用getText()方法得到国际化信息;在表单标签中,通过key属性指定资源文件的key

18.加载国际化资源文件有哪四种方式?

答:加载全局范围资源文件,加载包范围资源文件,加载action范围资源文件,加载临时指定范围内的资源文件;

19.按照你的理解,谈谈如何实现自由选择语言环境?

答:Struts 2提供一个名字为i18n的拦截器,并已把该拦截器添加到默认拦截器中。

i18n拦截器自动查找客户端请求中名字为request_locale的参数,并根据该参数实例化一个Locale对象。

Struts 2会把Locale保存在Session中的一个名字为WW_TRANS_I18N_LOCALE 的属性中,该属性值将会作为浏览器默认的Locale.

20.请画出OGNL上下文的结构示意图。解释如何访问OGNL上下文的对象?常常需要配合哪个Struts标签使用?

答:

添加值栈,将值存放到值栈里面,在页面访问方式# 配合

21.Struts 2默认响应请求的后缀名是.action,若要配置Struts 2只处理以.do为后缀名的请求,有哪些方法?若要处理多个后缀又当如何?

答:1 .可以修改struts.xml 和struts.properties来修改默认的配置,

在struts.xml中添加子接点

或者是修改struts.properties文件添加struts.action.extension = do这都是一样的效

注意:struts.xml 和struts.properties的都放在src下发布的时候会自动拷贝到WEB-INF/classes下

2. 在web.xml里面的filter中加入值为do; 3 处理多个后缀,在步骤1里面用逗号隔开添加即可;

22.实现在Action中访问Servlet API有哪几种方法?

答:直接访问方式,间接访问方式,ioc和非ioc方式;

23.Struts 2文件上传需要用到那两个包?根据你的理解,谈谈实现文件上传的步骤。

答:Comons-fileupload-1.2.1.jar 和 commons-io-1.2.1.jar

第一步:在web-inf/lib下面添加必须的jar文件

第二步:把form表单的enctype设置为“multipart/form-data”; 第三步:在action 类中;添加必要属性: private File upload;//得到上传文件的类型 private String uploadFIletype;//文件类型 private String uploadFileName;//文件名称

24.在strutrs2中数据验证失败时,通过(D)标签显示错误信息。

E)

F)

G)

H)

25.以下配置文件上传拦截器只允许bmp图片文件代码,正确的是(D)。

I)*.bmp

J)bmp

K)image/*.bmp

L)image/bmp

26.如下代码,对DemoAction起作用的拦截器有( B )。

M)只有testInterceptor.

N)只有demoInterceptor.

O)都不起作用。

P)同时起作用。

27.假设在Session中存在名称为uid属性。通过OGNL访问该属性。真确的代码是(B)

Q)#uid。

R)#session.id。

S)uid 。

T)${session.id}。

28.如下代码说法正确的是(AD)(多选)


U)奇数行为黄色

V)偶数行为黄色

W)奇数行为红色

X)偶数行为红色

29.下面代码运行的效果是( B)

<%

String url="生成超链接";

pageContext.setAttribute("uid",url);

%>

Y)生成超链接

Z)生成超链接。

AA)找不到对象。

BB)什么都不输。

30.简述如何用拦截器解决表单重复提交问题?

答:第一步:在表单中加入

第二步:在struts.xml中添加如下配置token拦截器

/tokenTag.jsp

Java工程师面试题(三大框架)

Java工程师(程序员)面试题 Struts,Spring,Hibernate三大框架的面试 1.Hibernate工作原理及为什么要用? 原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Transation 5.持久化操作6.提交事务7.关闭Session 8.关闭SesstionFactory 为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2.Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many 4.Struts1流程: 1、客户端浏览器发出HTTP请求。 2、根据web.xml配置,该请求被ActionServlet接收。 3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action 进行处理。 4、是否验证,需要验证则调用ActionForm 的validate方法,验证失败则跳转到input,成功则继续。 5、Action从ActionForm获得数据,调用javabean 中的业务方法处理数据。 6、Action返回ActionForward对象,跳转到相应JSP 页面或Action。 7、返回HTTP响应到客户端浏览器。 MVC设计模式:modal:“模型”也称业务逻辑,是正真完成任务的代码,相当与JavaBeanview:视图,其实就是显示界面,相当于JSPcontroller:控制器,他控制模型和视图的交互过程,相当于servletstruts1是基于MVC设计模式hibernate是基于ORM对象关系映射 5.struts是什么? struts1是基于JSP和servlet的一个开源的Web应用框架,使用的是MVC的设计模式struts2是基于webwork技术的框架,是sun和webwork公司联手开发的一个功能非常齐全的框架,struts2和struts1没有任何关系,是一个全新的框架 6.spring是什么? spring是一个集成了许多第三方框架的大杂烩,其核心技术是IOC(控制反转,也称依赖注

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

2012年第11卷第6期 产业与科技论坛2012.(11).6 Industrial &Science Tribune Struts2框架工作原理及应用体会 □宋 君 张家爱 【摘要】通过针对特定用户的分析,搭建以Struts2为技术核心的旅行社管理系统。本文简单的介绍了MVC 、 Struts2的工作原理,同时总结了在项目制作过程中所得到的心得。 【关键词】 Struts2;MVC ;FilterDispatcher ;Action 【基金项目】本文为大学生科技创新院级基金项目(编号:2011070)成果 【作者单位】宋君,吉林农业科技学院信息工程学院;张家爱,吉林农业科技学院信息工程学院教师 本着锻炼自我与积极参与到实用性技术的目标,以发掘自身创新意识为前提。利用空闲时间,在老师的指导下,进行了一次大学生创新项目的实践性活动。本着实用原则,以某中小旅行社为客户(根据用户需求,匿名),以Struts2框架为基点,进行了一次旅行社管理系统的开发。在项目结束之余, 特将在项目过程中经历的种种认识进行了简单的总结,希望让阅读本文的朋友们,更多的参与到此类活动中。 一、基础思想— ——MVC 简述作为时下经典框架之一, MVC 具有其独特的价值。MVC 框架简单的说,就是将数据模型与用户视图进行分离。通过控制器进行协调处理的一种结构是框架。同时,也是本文中要讨论的Sturts2框架的基础思想。 M 是指模型层(Model ),V 是指用户视图(View ),C 则是指控制器 (Controller )。这种划分方式是以将模型层与视图层进行代码分离,从而降低两者之间的耦合性,使同一程序可以使用不同形式进行表现。不同层之间的修改不会或尽量少的印象到其他层功能的史前为前提。有效的提高的代码的维护性和设计难度。 图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 实例。 (三)业务控制器。业务控制器就是前文提到的用来实现用户Action 的实力,这里的每个Action 类通常包含有一个execute 方法,当业务控制器处理完用户的请求后,该方法将会针对此次处理返回一个字符串— ——该字符串就是一个逻辑树图名。当程序开发人员开发出系统所需要的业务控制器后,还需要针对性的配置Struts2的Action ,即需要配置Ac- tion 的以下三个部分:(1)Action 所处理的URl 。(2)Action 组件所对应的实现类。(3)Action 里包含的逻辑试图和物理资源之间的对应关系。每个Action 都要处理一个用户请求,而用户请求则总是包含有指定的URL 。当核心控制器过滤用户请求,并调用后,根据请求的URL 和Action 处理URL 之间的对应关系来处理转发。 · 342·

Struts2练习题说课讲解

Struts 2作业 1.简述什么是MVC? 答:MVC 的全称为model-view-controller(模型-视图-控制器)。MVC 是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。使用MVC 开发出来的应用程序一般包括以下几块内容:·控制器(Controller):控制器类处理客户端向Web 应用程序发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。·模型(Model):模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。·视图(View):视图类是Web 应用程序中用来生成并显示HTML 格式的服务器端对客户端请求的响应结果的模板文件 2.Struts 2以(WebWork)为核心,采用(拦截器)的机制来处理用户的 请求。 3.简述一个请求在Struts 2框架中的处理流程,请按自己对框架的理解叙述。答:1-用户提交自己的请求;2-由web.xml拦截,转发到action进行处理;3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面。 4.不属于Action接口中定义的字符串常量是( B )? A)SUCCESS B)FAILURE C)ERROR D)INPUT 5.资源文件的后缀名为(D)? A)txt B)doc C)property D)properties 6.在JSP页面中可以通过Struts 2提供的(D)标签来输出国际化信息。 A) B) C) D) 7.以文字过滤拦截器为例,简述拦截器的使用步骤。 答:1-用户提交自己的请求; 2-由web.xml拦截,转发到action进行处理; 3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面; 8.在同一个系统中配置多个拦截器,试说明它们的执行顺序。 答:一般来说:先配置的拦截器,会先获得执行的机会,但是实际情况不是这样。execute()方法执行之前,配置在前面的拦截器,会先对用户的请求起作用。execute()方法执行之后,配置在后面的拦截器,会先对用户的请求起作用。(两头向中间靠拢的执行)。 9.请简述struts2中输入校验的几种方式。

JAVA框架面试题汇总

1.SpringMVC Framework的理解: 1、它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件。并且和Spring提供的其他基础结构紧密集成 2、不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的) 3、可以任意使用各种视图技术,而不仅仅局限于JSP 4、支持各种请求资源的映射策略 5、它应是易于扩展的 2.简单的谈一下SpringMVC的工作流程? 流程? 1、用户发送请求至前端控制器DispatcherServlet? 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。? 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。? 4、DispatcherServlet调用HandlerAdapter处理器适配器? 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。? 6、Controller执行完成返回ModelAndView? 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet? 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器? 9、ViewReslover解析后返回具体View? 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。? 11、DispatcherServlet响应用户 3.如何解决POST请求中文乱码问题,GET的又如何处理呢? 在web.xml中加入: . .CharacterEncodingFilter . .???? .????????encoding .?????? utf-8

华为外包java面试题

SSH篇(后台) 一、SSH概述 1.1 SSH的含义 当前J2EE企业级应用分为三层:表现层-业务层-数据源层,而SSH代表了每一层的具体实现,它是三种流行的开源框架的缩写,S-Struts,S-Spring,H-Hibernate。这三者的组合是当前J2EE开发的标准模式,也代表了J2EE正在朝着简化复杂性,轻量化方向发展,最新J2EE 6已证明了这种趋势。 1.2 J2EE开发模式的演变 J2EE应用一直采用三层加构,即表现层-业务层-数据源层。 旧石器时代:J2EE应用采用表现层-远程EJB-实体EJB(或JDBC),这是最为正宗也是最复杂的J2EE开发,适用于银行等小部分项目;随后由于微软.NET的兴起以及其对J2EE的挑战,正宗的J2EE出现了一个变种:表现层-本地EJB-Ibatis,在这种模型中业务层选择了本地EJB,同时数据源层也改为Ibatis,这种模式极大的提高性能,华为大部分项目采用这种构架。在这两种架构中,由于采用了EJB组件模型,从而依赖于EJB容器,而EJB容器以一种全无或全有的方式提供服务,同时业务实现也受制于容器。这种开发模式导致了以下复杂性:依赖于应用服务器,不可移植,开发困难,无法在容器外测试,部署复杂,效率低下。 新石器时代:在新石器时代依然采用了三层加构,只是抛弃了EJB,而采用了Spring等轻量级容器,同时持久化由全自动的Hibernate承担。在这种架构中,由于放弃了EJB,放弃了全功能的应用服务器,在节省了软件许可费用的同时也大大提高了软件开发效率。由于web服务器的可移植也好于应用服务器,从而使得J2EE应用可顺利移植。

struts2标签使用实例

Struts2中数据标签使用示例 S truts2提供了大量丰富的标签供使用,它不再像S truts1中一样,将种类标签进行分门列别,但可以根据其使用的用途用以区别。本文通过对S truts2中数据标签的学习,来对S truts2中标签的学习起到一个抛砖引玉的作用。 文中将介绍Action标签、Bean标签、Data标签、Include标签、P aram标签、Set标签、T ext标签、P roperty 标签等标签。 代码下载:https://www.360docs.net/doc/1d9002989.html,/y1ps2Mjpc3NiLKuetMOpCsZOOypD6KSdo8-46Zy2wpoMcABeo4vOC NJXtWDEO93-TXgZogwAF YxSOni5BEG2EoN65OFwHdG71v-/St ruts2DataTags.rar?download 一、标签 Action标签,顾名思义,是用来调用Action的标签,在JSP中页面中,可以指向具体指定某一命名空间中的某一Action。而标签的主体用于显示及渲染Actionr的处理结果。 1.WebRoot\pages\dataTagssuccess.jsp处理页面 <%@ page contentType="text/htm l; charset=GBK" %> <%@ taglib prefix="s" uri="/struts-tags" %> Action Tag 示例

Action Tag 示例

s:action标签用于在页面显示结果.
这里使用标签进行页面跳转,并用于显示处理的结果。 2.先来看st ruts.xml中的配置: /pages/dataTags/success.jsp

软件工程师面试题含答案

、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答: MVC设计模式(应用观察者模式的框架模式) M: Model(Business process layer) ,模型,操作数据的业务处理层, 并独立于表现层(Independent of presentation) 。 V: View(Presentation layer) ,视图,通过客户端数据类型显示数据, 并回显模型层的执行结果。 C: Controller(Control layer) ,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图 MVC框架的一种实现模型 模型二(Servlet-centric) : JSP+Servlet+JavaBean ,以控制为核心,JSP 只负责显示和收集数据,Sevlet ,连接视图和 模型,将视图层数据,发送给模型层,JavaBea n,分为业务类和数据实体,业务类处理业 务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。StrutsMVC 框架(Web application frameworks) Struts是使用MVC勺实现模式二来实现的,也就是以控制器为核心。 Struts提供了一些组件使用MVC开发应用程序: Model: Struts没有提供model类。这个商业逻辑必须由Web应用程序的幵发者以JavaBean 或EJB的形式提供 View:Struts 提供了action form 创建form bean, 用于在controller 和view 间传输数据。此外,Struts 提供了自定义JSP标签库,辅助幵发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中Controller :Struts 提供了一个核心的控制器ActionServlet ,通过这个核心的控制器来

Struts2的工作机制原理分析及实例

Struts2的工作机制分析及实例 一、概述 本章讲述Struts2的工作原理。 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验,那么千万不要想当然地以为这一章可以跳过。实际上Struts1.x 与Struts2并无我们想象的血缘关系。虽然Struts2的开发小组极力保留Struts1.x的习惯,但因为Struts2的核心设计完全改变,从思想到设计到工作流程,都有了很大的不同。 Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork 的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。 本章主要对Struts的源代码进行分析,因为Struts2与WebWork的关系如此密不可分,因此,读者需要下载xwork的源代码,访问https://www.360docs.net/doc/1d9002989.html,/xwork/download.action即可自行下载。 下载的Struts2源代码文件是一个名叫struts-2.1.0-src.zip的压缩包,里面的目录和文件非常多,读者可以定位到 struts-2.1.0-src\struts-2.0.10\src\core\src\main\java目录下查看Struts2的源文件,如图14所示。 (图14) 二、主要的包和类 Struts2框架的正常运行,除了占核心地位的xwork的支持以外,Struts2本身也提供了许多类,这些类被分门别类组织到不同的包中。从源代码中发现,基本上每一个Struts2类都访问了WebWork提供的功能,从而也可以看出Struts2与WebWork千丝万缕的联系。但无论如何,Struts2的核心功能比如将请求委托给哪个Action处理都是由xwork完成的,Struts2只是在WebWork 的基础上做了适当的简化、加强和封装,并少量保留Struts1.x中的习惯。

struts面试题

1.简述Struts框架的初始化流程。 答案:对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServlet ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到ActionMappings对象中。 在Struts framework中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的 业务逻辑一块)。 其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务 逻辑或流程的运行方向。 2.简述Struts框架响应客户请求的工作流程 1.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。 2.如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。 3.根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。 4.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessge的ActionErrors对象,就表示表单验证成功。 5.ActionServlet根据AtionMapping实例包含的映射信息决定将请求转发给哪个Action。如果应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。 6.Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。 7.ActionForward对象指向的JSP组件生成动态页面,返回给客户。 对于以上流程的步骤(4),如果ActionForm的validate()方法返回一个包含一个或多个ActionError 的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含客户提交表 单的JSP组件。在这种情况下,不会再创建Action对象并调用Action的execute方法。 3Struts框架的数据验证可分为几种类型? 表单验证(由ActionForm Bean处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验证 错误 业务逻辑验证(由Action处理):如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许向“Monster”打招呼,因此将生成业务逻辑错误。 4简述Form Bean的表单验证流程。 1、当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean中。 2、接下来Struts框架会调用ActionForm Bean的validate()方法进行表单验证。 3、如果validate()方法返回的ActionErrors对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。 4、如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过 标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。 5在struts配置文件中action元素包含哪些属性和子元素? path属性:指定请求访问Action的路径 type属性:指定Action的完整类名 name属性:指定需要传递给Action的ActionForm Bean scope属性:指定ActionForm Bean的存放范围 validate属性:指定是否执行表单验证 input属性:指定当表单验证失败时的转发路径。

Liferay Struts2 完整实例 修正

目录 一.Liferay,ext开发环境的搭建 (1) 二.集成struts2 (3) 1.依赖包: (3) 2.使用Struts2 (3) 三.使用Hibernate. Spring (4) 1.建立bean (4) 2.建立事务层: (5) 3 .建立持久层 (8) 4. Action 中调用事务层 (10) 三.将portlet注册到portal (11) 四.加入国际化 (13) 五.加入处理页面 (13) 2010年12月20日,修改在页面上的标签找不到国际化信息。 一.Liferay,ext开发环境的搭建 1.进入myeclipse,修改liferay-portal-src-5. 2.3文件名为portal。导入portal到eclipse. 2.展开portal工程目录,我们可看到一个release.properties文件, 新建一个它的扩展配置文件, 文件名为release.${username}.properties。 ${username}是计算机当前用户名 我文件名是release.Administrator.properties,文件内容只一行:lp.ext.dir=D:\myspace\ext 即扩展工程放置路径。 3.打开myeclipse里面ant视图(window--> show view --> ant) , 在ant视图中,点击添加, 选择:\portalspace\portal\目录下build.xml 顺序执行clean ,start ,build-ext

4.将liferay-portal-tomcat-6.0- 5.2.3.zip解压到D:\portalspace\目录下,并更名为servers。 在D:\portalspace\ext目录下我们可以看到app.server.properties文件, 同样我们也要建立一个扩展配置文件app.server.${username}.properties,文件内容两行:lp.ext.dir=D:/myspace/ext app.server.type=tomcat app.server.tomcat.dir=D:/ myspace /servers/tomcat-6.0.18 5.将myspace/ext 工程导入到eclipse中。 6.打开window --> preference --> myeclipse --> application servers 将其他应用服务器 disabble掉, 找到tomcat6,将tomcat home diretory 指向D:\myspace\servers\tomcat-6.0.18, 展开tomcat6,JDK选择我们配置好的JDK1.5+, JDK选项下面optional java vm argument输入如下内容: -Xms128m -Xmx256m -XX:MaxPermSize=128m 7.建立数据库lportal 。在D:\myspace\ext\ext-impl\src\portal-ext.properties文件中添加数据 库连接信息 # MySQL jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql://localhost:3306/lportal https://www.360docs.net/doc/1d9002989.html,ername=root jdbc.default.password=root hibernate.dialect=org.hibernate.dialect.MySQLDialect 若不添加以上内容liferay就会使用自带默认数据库. 8.选择 :\myspace\ext\目录下build.xml 顺序执行clean,deploy 将ext项目部署到 tomcat-6.0.18. 然后选择eclipse中的tomcat6.0启动即可 9.在浏览器里输入http://localhost:8080/可以看到portal系统了。输入emal: test@https://www.360docs.net/doc/1d9002989.html, password: test登录

java笔试模拟题三

Java寒假笔试模拟题三 姓名:________学号:___________ 一、单项选择题: 1.Struts是一个开源的Web开发框架,它是由哪个组织进行维护的?( c )。 A.BEA B.JBoss C.Apache D.Sybase 2.如果在Web应用程序中添加struts2框架的支持,需要在配置哪个类作为struts2的核心控制器( a )。 A.FilterDispatcher B.StrutsServlet C.ApplicationContextListener D.SessionFactory 3.Struts2的核心控制器需要在哪个配置文件中进行配置( b ) A.struts.xml B.web.xml C.applicationContext.xml D.webwork.xml 4.关于开发人员自己创建的Action,以下说法正确的是( c ) A.Struts2中的Action必须继承Action类 B.Struts2中的Action必须实现Action接口

C.Struts2中的Action无需实现或者继承任何类或接口 D.Struts2中的Action必须继承ActionSupport类 解释:Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口,还实现了Validateable 接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。 5.以下关于Struts2配置文件中package元素说法错误的是( d ). A.package元素的name属性不可以重复 B.package元素可以进行继承 C.package元素可以声明为抽象(abstract=”true”) D.package元素可以嵌套 6.以下关于Struts2配置文件中action元素说法错误的是( a ). A.任何一个action的name属性都不可以相同 B.action元素可以没有class属性 C.action元素中拥有method属性 D.action元素的子元素可以配置interceptor-ref 7.Struts2进行数据收集和类型转换的工作,是由以下哪个负责完成的( a )。 A.FilterDispatcher B.ActionInvocation

struts2教程(完全版)

Yaio 4 一、准备工作及实例 4 1.解压struts- 2.1.6-all.zip 4 2.六个基本包 4 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 5 (5)其它配置文件 5 4.让MyEclipse提示xml信息 5 5.如何使用alt+/提示 5 6.实例 5 7.开启struts2自带的开发模式常量 7 8.vo传参模式 8 9.ModerDriven传参模式(不建议采用) 8 10.为什么要使用struts2代替struts1.x 9

二、struts.xml配置及例程 9 1.配置文件的优先级 9 2.配置形式 9 3.package配置相关 10 4.分工合作include:指定多个配置文件 12 5.tomcat认证访问 12 6.初识拦截器 13 7.Action中的method属性 15 8.使用ForwardAction实现页面屏蔽。 17 8.使用default-Action配置统一访问 17 小结Action 18 9.使用通配符 18 10.使用0配置:ZERO Annotation 19 11.Result配置详解 19 12.异常处理 24 三、在Action获取Scope对象 25 方式一、与Servlet解耦合的非IOC方式 25

方式二、与Servlet解耦合的IOC方式 27 方式三、与Servlet耦合的非IOC方式 27 方式四、与Servlet耦合的IOC方式 28 四、OGNL与ValueStack(VS) 29 1.值栈入门 29 2.OGNL入门 31 3.普通方法访问 31 4.静态方法访问 31 5.默认类Math的访问 32 6.调用普通类的构造方法 32 7.集合对象初步 32 8.集合对象进阶 33 9.N语法top语法 34 10.获取Stack Context中的信息 35 11.总结$ # %的区别 35 12.总结OGNL[重点] 35 五、拦截器 36

Struts2配置详解2 配置Action

配置Action Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法。 该方法如下: public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方法即可:public String xxx() 在实际开发中,action类很少直接实现Action接口,通常都是从 com.opensymphony.xwork2.ActionSupport类继承,ActionSupport实现了Action接口和其他一些可选的接口,提供了输入验证,错误信息存取,以及国际化的支持,选择从ActionSupport继承,可以简化action的定义。 开发好action之后,好需要对action进行配置,以告诉Struts2框架,针对某个URL的请求应该交由哪个action进行处理。 1.Action映射: action映射是Struts2框架中的基本”工作单元”,action映射就是将一个请求 URL(即action的名字)映射到一个action类,当一个请求匹配某个action的名字 时,框架就使用这个映射来确定如何处理请求。 action元素的完整属性表 例如: /user.jsp 2. 使用method属性 在配置action时,我们可以通过action元素的method属性来指定action调用的方法,所指定的方法,必须遵循与execute方法相同的格式。 在Struts2.xml文件中,我们可以为同一个action类配置不同的别名,并使用 method属性。 在Struts.xml文件中为同一个Action类配置不同的别名 /Methods/list.jsp

软件工程师面试题含答案

一、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答: MVC设计模式(应用观察者模式的框架模式) M:Model(Businessprocesslayer),模型,操作数据的业务处理层,并独立于表现层(Independentofpresentation)。 V:View(Presentationlayer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。C:Controller(Controllayer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图 MVC框架的一种实现模型 模型二(Servlet-centric): JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。 StrutsMVC框架(Webapplicationframeworks) Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。 Struts提供了一些组件使用MVC开发应用程序: Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB 的形式提供 View:Struts提供了actionform创建formbean,用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。 Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在的特定配置文件中进行配置,接收JSP输入字段形成Actionform,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。 二、什么是WebService? 答: WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。 WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web 服务定义语言)/SOAP(简单请求协议)规范的。 WebService=WSDL+SOAP+UDDI(webservice的注册) Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。WebService是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。 WebService的优点 (1)可以让异构的程序相互访问(跨平台) (2)松耦合 (3)基于标准协议(通用语言,允许其他程序访问) WebService的基本原理 (1)ServiceProvider采用WSDL描述服务 (2)ServiceProvider采用UDDI将服务的描述文件发布到UDDI服务器(Registerserver) (3)ServiceRequestor在UDDI服务器上查询并获取WSDL文件 (4)Servicerequestor将请求绑定到SOAP,并访问相应的服务。

Struts2简单示例

Struts2增删改查例子 UserBean //要添加set,get public class UserBean{ private Long id; private String name; private String password; private int age; private Date birthday; private Long sex; private Set likes; private String des;//描述 } public class LikeBean{ private Long id; private String name; } FormAction public class FormAction{ //属性要生成get,set //标记(添加,修改) private String tip; private UserBean userBean; private List likeList; private List userList; //到列表页面 public String list(){ userList =new ArrayList(); userList.add(new UserBean("abc",19,new Date())); userList.add(new UserBean("def",70,new Date())); userList.add(new UserBean("ghi",40,new Date())); return"list"; } //到添加页面 public String toAdd(){ likeList =new ArrayList(); likeList.add(new LikeBean(new Long(1),"上网")); likeList.add(new LikeBean(new Long(2),"读书")); likeList.add(new LikeBean(new Long(3),"游戏")); tip ="add"; return"info";

三大框架面试题

1.Spring中Bean的生命周期 1.容器启动,实例化所有实现了BeanFactoyPostProcessor接口的类。他会在任何普通Bean 实例化之前加载. 2.实例化剩下的Bean,对这些Bean进行依赖注入。 3.如果Bean有实现BeanNameAware的接口那么对这些Bean进行调用 4.如果Bean有实现BeanFactoryAware接口的那么对这些Bean进行调用 5.如果Bean有实现ApplicationContextAware接口的那么对这些Bean进行调用 6.如果配置有实现BeanPostProcessor的Bean,那么调用它的postProcessBeforeInitialization 方法 7.如果Bean有实现InitializingBean接口那么对这些Bean进行调用 8.如果Bean配置有init属性,那么调用它属性中设置的方法 9.如果配置有实现BeanPostProcessor的Bean,那么调用它的postProcessAfterInitialization方法 10.Bean正常使用 11.调用DisposableBean接口的destory方法 12.调用Bean定义的destory方法 如果从大体上区分值分只为四个阶段 1.BeanFactoyPostProcessor实例化 2.Bean实例化,然后通过某些BeanFactoyPostProcessor来进行依赖注入 3.BeanPostProcessor的调用.Spring内置的BeanPostProcessor负责调用Bean实现的接口: BeanNameAware, BeanFactoryAware, ApplicationContextAware等等,等这些内置的BeanPostProcessor调用完后才会调用自己配置的BeanPostProcessor 4.Bean销毁阶段 2.你对spring的理解是什么? 1)开源框架 2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合 3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性 或者答概念Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM 的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。 3.Spring框架有哪几部分组成? Spring 核心容器(Core):提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,她是工厂模式的实现。BeanFactory使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际的应用代码程序分开。 Spring AOP:通过配置管理特性,Spring AOP模块直接面向方面的编程功能集成到了Spring 框架中,所以可以很容易的使Spring框架管理的任何对象支持AOP。Spring AOP模块为基

相关主题
相关文档
最新文档