includepage="included.jsp"flush="true"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@includefile="included.htm"%>
14.EL是什么,它的隐式对象有哪些?
答:
EL提供了JSP脚本编制元素范围外使用运行时表达式的功能
PageContext,param,paramValues,header,headerValues,pageScope,requestScope,
sessionScope,applicationScope.
15.JSTL是什么,它的最新版本号是多少?
答:
是标准标签库,最新版本号是1.1
16.jsp的标准标签库分几类,其中核心标签又分几种?
答:
17.你了解WEBSERVICE吗,如果了解请介绍你对WEBSERVICE的理解?
答:
Webservice让你的网站可以使用其他网站的资源,比如在网页上显示天气、地图、twitter上的最新动态等等。
18.简单介绍你用什么实现组件开发WEBSERVICE?
19.什么是SOAP、WSDL、UDDI、ESB、BPEL?
答:
SOAPA是WebServices的通信协议,是一个简单的,轻量级的基于XML机制
WSDL文件一个XML文档,用于说明一组SOAP消息以及如何交换这些消息。
UDDI提供一种发布和查找服务描述的方法。
ESB是企业服务总线ESB,是SOA架构的一个支柱技术。
BPEL是一门用于自动化业务流程的形式规约语言。
20.SOA是一门语言吗?
它与OOP是什么关系?
答:
SOA是一个架构理念—OOP是一个编程理念
SOA是面向服务----OOP是面向对象
SOA不是语言,是一种架构分类,这种架构是面向服务的。
以一项项服务为单位来进行
扩展,一项服务有自己的一套API方法,就像OOP是以Object为单位,每一个类都有自己的属性和方法。
SOA是抽象概念,具体实施可以用各种语言来实现。
21.CGI是什么?
它与servlet有什么关系?
答:
CGI是通用网关接口
关系:
servlet是从CGI廷生出来的
22.在JavaWeb开发过程中经常会遇到乱码问题,一般你是如何解决的?
答:
用request和response设置编码为“UTF-8”
23.Tomcat6.0中能配多少个数据库连接池?
答:
可以有多个,最多配523个。
24.怎样把web工程部署到Tomcat中,在你以前的项目中一般是怎样处理的?
答:
点击快捷工具栏中的DeployMyEclipseprojects...按钮,选择工程点击Add,选择tomcat服务就完成了就部署成功了
选择工具栏中的Run/Stop/Restart按钮,可以选择启动或停止服务
25.request对象getAttribute(String name)和getParamater(String name)的区别是什么?
答:
getParameter得到的都是String类型的。
或者是某个表单提交过去的数据。
getAttribute则可以是对象
getParameter返回的是String类型的
getAttribute返回的是Object类型
26.JavaWeb开发中,你是怎样处理分页的,效率考虑?
简要说明一下你分页处理的思路?
答:
根据数据库的需要查询的数据量的多少来分页,如果数据库的数据不是很多的话,就一次性查询出来,然后按每页显示多少而分页。
如果数据库需要查询的数据很多,就按每页存放多少数据每次就查询多少条数据
27.请你说说Struts的体系结构和处理请求的工作流程?
答:
Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。
在模型层,Struts可以很容易的与数据访问技术相结合,如JDBC/EJB,
struts工作流程:
1:
客户端填写完jsp页面的数据之后单击提交按钮向服务器发出http请求,客户端所有的请求都被 ActionSerlvet拦截。
2:
ActionServlet根据用户的请求在struts-conifg.xml配置文件中查找与之对应的Action,同时把用户的数据填充给对应的ActionForm,然后把ActionForm一起分发给Action进行处理。
3:
Action会自动调用excute方法,在该方法里面Action将从ActionForm里面获取用户填写的数据,并调用模型 (javaBean)进行相应的处理,然后把处理的结果显示在其它的视图(jsp页面)
28.你是怎样整合SSH的?
有几种方式?
答:
1.使用向导添加struts2的组件;
2.使用向导添加spring2.5的组件
3使用向导添加hibernate的组件
4.在web.xml文件中指定Spring容器
5.指定Struts2的Action由Spring容器管理
6.在spring的applicationcontext.xml配置文件的action的作用域是原型
29.请你说说Struts2的体系结构和OGNL?
答:
为了解决数据从View层传递到Controller层时的不匹配性,Struts2采纳了XWork的OGNL方案。
并且在OGNL的基础上,构建了OGNLValueStack的机制,从而比较完美的解决了数据流转中的不匹配性。
OGNL(ObjectGraphNavigationLanguage),是一种表达式语言。
使用这种表达式语言,你可以通过某种表达式语法,存取Java对象树中的任意属性、调用Java对象树的方法、同时能够自动实现必要的类型转化。
如果我们把表达式看做是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁。
30.struts与struts2有什么异同?
答:
struts配置文件中的redirect视图的url不能接受参数,而struts2配置文件中的redirect视图可以接受参数。
31.请简述Struts2与Strut1的异同?
答:
Struts1支持手动验证凭借ActionForm的validate方法,或者通过扩展的公用验证器。
类可以有不同的验证上下文未相同的类,但是不能不能包括验证子对象。
Struts2支持手动验证凭借validate方法和XWork验证框架。
Xwork验证框架支持一连串的验证子属性使用的验证了属性类的类型和严正上下文而定义。
一、struts1要求Action类继承一个抽象基类,而不是接口。
struts2的action类可以实现一个action接口,也可以实现其他接口。
二、sturts1action是单例模式,线程是不安全的。
struts2action线程是安全的,action为每一个请求都生成了一个实例。
三、sturts1过去依赖serletAPI,不容易测试。
struts2不依赖于容器,允许Action脱离容器单独被测试。
四、Struts1使用ActionForm对象捕获输入。
所有的ActionForm必须继承一个基类。
Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。
1.在Action的实现方面:
Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。
2.线程模型方面:
Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。
Struts2的Action是一个请求对应一个实例。
没有线程安全方面的问题。
3.Servlet依赖方面:
Struts1的Action依赖于ServletAPI,比如Action的execute方法的参数就包括request和response对象。
这使程序难于测试。
Struts2中的Action不再依赖于ServletAPI,有利于测试,并且实现TDD。
4.封装请求参数:
Struts1中强制使用ActionForm对象封装请求的参数。
Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。
5.表达式语言方面:
Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(ObjectGraphNotationLanguage)。
6.绑定值到视图技术:
Struts1使用标准的JSP,Struts使用“ValueStack”技术。
类型转换:
Struts1中的ActionForm基本使用String类型的属性。
Struts2中使用OGNL进行转换,可以更方便的使用。
7.数据校验:
Struts1中支持覆盖validate方法或者使用Validator框架。
Struts2支持重写validate方法或者使用XWork的验证框架。
8.Action执行控制的对比:
Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的声明周期。
Struts2支持通过拦截器堆栈为每一个Action创建不同的声明周期。
32.Struts2中常见的拦截器有哪些?
答:
上传,重复提交,数字转换,表单认证,国际化,等等
33.在Struts2中怎样把请求分发给方法去处理?
答:
在struts.xml中就只需要配置一个action,在一个Action类中分发Action请求调用不同的方法。
34.请简述Struts2中自定义拦截器的步骤?
答:
1.首先要实现Interceptor(拦截器)接口
2.在配置文件中定义自己的拦截器。
3.最后还要把系统提供的默认拦截器加上,否则系统默认拦截器不起作用
35.Struts2怎样整合spring?
答:
1.使用向导添加struts2的组件;
2.使用向导添加spring2.5的组件;
struts.properties--指定有Struts2的action由spring容器管理:
web.xml--指定spring容器配置文件
globalMessages.properties--非必须有
struts.xml--class属性配置改成spring容器内bean的ID
applicationContext.xml--action的作用域需要是原型
36.怎样实现Struts2自定义转换器?
答:
实现TypeCoverter接口,或者继承DefaultTypeConverter实现类(该类实现了TypeCoverter接口),通过继承该实现类来实现自己的类型转换器。
重写convertValue方法即可。
37.请谈谈表单验证的作用,你使用了哪些技术进行表单验证?
答:
就是提交数据时对数据进行验证是否符合要求规则,
常用的技术有javascript+正则技术进行验证
38.在你的学习中使用了什么组件进行上传和下载操作
答:
jspSmartUpload(JSP中的上传组件)
39.根据你的理解,Spring是个怎样的框架?
答:
Spring是一个轻量级的,强壮,还是一个分层架构的容器框架。
40.Spring1.2和Spring2.0有些什么区别?
答:
在Spring1.x系列中,bean的配置文件使用DTD,没有namespace的分隔。
2.0的一个非常大的改进是引入了XMLSchema的namespace,因而可以将bean的配置文件做大幅度的简化
41.Spring容器基本的接口是什么?
答:
beanfactory(容器),applicationContext(应用上下文)
42.什么是Spring的AOP,它的功能是什么?
答:
AOP是面向方面,相当于拦截器,可以在需要的地方插入逻辑,所谓的面向方面就是把相同的功能抽象出来,
43.Spring的AOP,中的切面(Aspect)/通知(Advice)/通知者(Advisor)/切点(Pointcut)/织入Weaving)/目标(Target)各指什么?
44.请阐述Spring的IOC,有几种类型。
答:
有setter和getter注入,接口注入和构造器注入
45.Aop中常见有哪些通知,怎样区别?
答:
前置通知,后置通知,异常通知,最终通知,环绕通知。
各自实现自己的接口
46.Spring管理事务有哪几种方式?
∙答:
有两种方式:
基于XML配置文件的方式;另一个是在业务方法上进行@Transactional注解,将事务规则应用到业务逻辑中。
47.Spring的作用域有哪些?
答:
singleton(单例),prototype(原型),request,session,globalsession
48.相对于SQL,HQL查询语言有什么特点,什么是方言?
答:
sql是关系数据库查询语言,面对的数据库;而hql是Hibernate这样的数据库持久化框架提供的内置查询语言,虽然他们的目的都是为了从数据库查询需要的数据,但sql操作的是数据库表和字段,而作为面向对象的hql操作的则是持久化类及其属性,
49.Hibernate3.1和Hibernate3.3的区别是什么?
50.软件开发中为什么要进行软件的配置管理?
你用过什么版本控制系统?
51.在请简述软件开发生命周期中的各个阶段?
52.Hibernate架构,对象有三种状态,分别是什么,怎样区分?
答:
Hibernate三种状态的区分,以及save,update,saveOrUpdHibernate的对象有3种状态,分别为:
瞬时态(Transient)、持久态(Persistent)、脱管态(Detached)。
1.瞬时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系,在Hibernate中,可通过session的save()或saveOrUpdate()方法将瞬时对象与数据库相关联,并将数据对应的插入数据库中,此时该瞬时对象转变成持久化对象。
2.持久对象具有如下特点:
1.和session实例关联;2.在数据库中有与之关联的记录。
3.比瞬时对象多了一个数据库记录标识值。
53.Hibernate中什么是延迟加载,延迟的作用是什么?
答:
延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。
在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。
54.请问日志有什么作用,在项目中你是怎么处理日志的?
55.你在java项目中此理过计划任务的调度吗?
如有你是怎么处理的?
56.你对UML了解吗?
UML的动态图有哪些?
类图和对象图有什么区别?
57.什么是需求?
为什么要进行需求管理?
58什么是软件项目的进度管理?
简要介绍保证项目的进度的基本手段?
59软件开发中如何进行风险管理?
60.三大框架各起的作用
struts在SSH框架中起控制的作用,其核心是(控制器)Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml.主要控制逻辑关系的处理.
hibernate是数据持久化层,是一种新的对象、关系的映射工具,提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制,大大减少数据访问的复杂度。
把对数据库的直接操作,转换为对持久对象的操作.
spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,面向接口的编程,由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。
这也就是所谓“控制反转”的概念所在:
(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中
起到的主要作用是解耦