- 浏览: 80558 次
- 性别:
- 来自: 西安
最新评论
-
limingcai:
谢谢,也是我需要的
Java获取某年第一天与最后一天的简便方法 -
liupengtao:
非常好,是我需要的。:D
Java获取某年第一天与最后一天的简便方法 -
李释然:
很基础的东西,很好啊。
Hibernate实现模糊查询的方法
一、xml有哪些解析技术?区别是什么?
答:有DOM,SAX,STAX等
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问
STAX:Streaming API for XML (StAX)
二、 struts 的5个主要类
ActionServlet是系统维护的,你不能操作,它主要是根据传入的action路径在ActionMapping中查找相应的类,并调用它。
Action是控制器,主要是从ActionForm中接收页面传进来的数据,然后进行逻辑处理。
ActionForm是用来接收页面上表单中的数据。
ActionMapping是用来配置每个Action所对应的路径
ActionForward是用来实现跳转,在Action中最后一行语句通常是return mapping.forward()这里传入的值就在ActionForward中设置
三、ArrayList和Vector的区别,HashMap和Hashtable的区别
就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
四、JDK1.5新特性
1,泛型(Generic) 2, for-Each循环 3,自动
装包拆包 4,枚举类型(Enums) 5,静态导入(Static imports)
五、JDK1.6新特性
1,desktop类和systemtray类
2,使用JAXB2来实现对象与xml之间映射
3,理解STAX
4,使用compiler API
5,轻量级的HTTPServer API
6,插入式注解处理
7,用console开发控制台程序
8,对脚本语言的支持:ruby、groovy、javascript
9,common Annotations
Struts、spring、hibernate 工作机制,为什么用!
六、hiberante工作机制
1. 读取并解析配置文件
2. 读取并解析映射信息,创建SessionFactory
3. 打开Sesssion
4. 创建事务Transation
5. 持久化操作
6. 提交事务
7. 关闭Session
8. 关闭SesstionFactory
为什么使用
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
5. 可扩展,卡发者可以根据需求定义查询
struts1.2工作原理以及为什么使用
Struts的工作原理:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm 对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
为什么要用:
1、整合jsp、servlet、javaBean 是Web开发更加正规化。
2、由一个ActionServlet 做全局控制器,对action做统一的控制.
3、ActionForm使取得form的值更加方便.
spring工作机制及为什么要用?
1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
为什么用:
AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务 (比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。
IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,IOC 就像反 过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),每一个对象都是用 其协作对象构造的。因此是由容器管理协作对象(collaborator)。
Spring即使一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象.
七、EJB与JAVA BEAN的区别?
答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。
关于java public private protected friendly(缺省)作用域
public:类本身和任何包的任何类都访问
private 只有类本身可以访问,其他类想访问可以通过该类的成员方法访问如getter/setter
protected:保护的,这个和缺省的比较容易混淆,记住最主要区别是:protected可以在不同包的子类被访问,而friendly不可以。
protected可以在类本身、同包的子类,不同包的子类,同包的非子类 被访问
默认不写的时候是public
八、关于PreparedStatement和Statement具体区别
1:
我们先从这两个单词进行初步的讲解,Prepared(准备好的, 精制的),从这里可以知道PreparedStatement是预先编译的语句,而Statement则不是预先编译的,在DBMS中处理管理中Statement是要进行语法、语义的,而PreparedStatement则不要。
2:
PrepareStatement中执行的SQL语句中是可以带参数的,而Statement则不可以。
比如:
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00);
pstmt.setInt(2, 110592);
pstmt. executeUpdate();
3:
当处理批量SQL语句时,这个时候就可以体现PrepareStatement的优势,由于采用Cache机制,则预先编译的语句,就会放在Cache中,下次执行相同SQL语句时,则可以直接从Cache中取出来。
九、JSP的内置对象与作用
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
十、jsp有哪些动作作用分别是什么
JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
十一、JSP中动态INCLUDE与静态INCLUDE的区别?
答:动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面
十二、jsp的两种跳转方式分别是什么,有什么区别?
1、带request参数的跳转
request.setAttribute("param", "value");
request.getRequestDispatcher("test.jsp").forward(request, response);
在目的页面可以获取参数
String Value = request.getAttribute("param")==null?:(String)request.getAttribute("param");
2、不带request参数的跳转
response.sendredirect("test.jsp");
十三、forward和redirect的区别
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。 forward 会将 request state , bean 等等信息带往下一个 jsp
redirect 是送到 client 端后再一次 request , 所以资料不被保留.
使用 forward 你就可以用 getAttribute() 来取的前一个 jsp 所放入的 bean 等等资料
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容
再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所
以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,
甚至是使用绝对URL重定向到其他站点的资源.
forward,方法只能在同一个Web应用程序内的资源之间转发请求.
forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.
所以,你可以说 redirect 是一种间接的请求, 但是你不能说"一个请求是属于forward还是redirect "
3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.
十五、描述JSP和Servlet的区别、共同点、各自应用的范围
JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet
来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页
因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.
答案2:
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
十六、列出Jsp中包含外部文件的2种方式,两者有何区别。
1:<jsp:include page="b.jsp" />)
2: <%@ include file="b.jsp">
区别:
1:<jsp:include page="b.jsp" />(先执行,后包含)
此标签表示法:能动态区别加进来的是动态页面还是静态页面对于静态页面则直接将资源包含(仅取其文本)。
<%@ include file="b.jsp">此指令表示:静态地包含页面,不管其内容如何,
不过是静态页面还是动态页面都首先将页面的内容先加进来。
区别2:<jsp:include page="b.jsp" />可以分开写成:<jsp:include page="b.jsp" >
<jsp:param name="参数名" value="参数值"/></jsp:include>这样就可以传递参数。
十七、struts1和struts2区别:
特性
Struts 1
Struts 2
Action类
Struts 1要求Action类要扩展自一个抽象基类。Struts 1的一个共有的问题是面向抽象类编程而不是面向接口编程。
Struts 2的Action类实现了一个Action接口,连同其他接口一起实现可选择和自定义的服务。Struts 2提供一个名叫ActionSupport的基类实现一般使用的接口。虽然,Action接口不是必须的。任何使用execute方法的POJO对象可以被当作Struts 2的Action对象使用。
程模型
Struts 1 Action类是单例类,因只有一个示例控制所有的请求。单例类策略造成了一定的限制且给开发带来了额外的烦恼。Action资源必须是程安全或者同步的。
Struts 2 Action对象每一个请求都实例化对象,所以没有程安全的问题。(实践中,servlet容器生许多丢的对象对于每一个请求,多于一个的对象并不影响垃圾收集)
Servlet 依赖
Struts 1的Action类依赖于servlet API以HttpServletRequest和HttpServletResponse作参数传给execute方法当Action被调用时。
Struts 2的Action不和容器有关。Servlet上下文被表现简单的Maps,允许Action被独立的测试。Struts 2的Action可以访问最初的请求和相应,如果需要的话。然而,其他的架构元素少或者排除直接访问HttpServletRequest或者HttpServletResponse的需要。
易测性
测试Struts 1的主要障碍是execute方法暴露了Servlet API。第三方的扩展,Struts测试用例,提供Struts 1的集合对象。
Struts 2的Action可以通过实例化Action测试,设置属性,然后调用方法。依赖注入的支持也是测试变得更简单。
接受输入
Struts 1使用ActionForm对象捕获输入。象Action一样,所有的ActionForm必须扩展基类。因其他的JavaBean不能作ActionForm使用,开发者经常创建多余的类捕获输入。DynaBeans可以被用来作替代ActionForm的类创建。但是开发者可以重新描述已经存在的JavaBean。
Struts 2 Action属性作输入属性,排除第二个输入对象的需要。输入属性可能有丰富的对象类型这些类型有他们自己的属性。Action的属性可以通过标签库访问。Struts 2也支持ActionForm形式。丰富的对象类型,包含业务或者域对象,可以被当作输入或者输出对象使用。馍型驱动特性简化标签对POJO输入对象的引用。
表达式语言
Struts 1整和JSTL,所以它使用JSTL的表达式语言。表达式语言有基本的图形对象移动,但是相对很弱的集合和被索引的属性支持。
Struts 2使用JSTL,但是框架也支持更大和更灵活的表达式,叫做“对象图形符号语言”(OGNL)。
将值绑定要视图上
Struts 1使用标准JSP机制来绑定对象到页面上下文。
Struts 2使用“ValueStack”技术了标签库可以不用链接你的视图到对象的表现类型访问值。ValueStack策略允许重用视图。
类型转换
Struts 1的ActionForm属性经常都是String的。Struts 1使用Commons-Beanutils类型转换。转换每一个类,不是每一个实例配置。
Struts 2使用OGNL类型转换。框架包含转换器基本的和共同的对象类型和原始类型。
验证
Struts 1支持手动验证凭借ActionForm的validate方法,或者通过扩展的公用验证器。类可以有不同的验证上下文未相同的类,但是不能不能包括验证子对象。
Struts 2支持手动验证凭借validate方法和XWork验证框架。Xwork验证框架支持一连串的验证子属性使用的验证了属性类的类型和严正上下文而定义。
Action执行的控制
Struts 1支持独立的请求处理器对于每一个模型,但是所有在模型中的Action必须共享同一个生命周期。
Struts 2支持在每一个Action基础上凭借拦截栈创建不同的生命周期。自定义栈可以被创建且使用不同的所需 的Action。
Jsp和Servlet中的请求转发分别如何实现。
servlet的转发方式有两种:response.sendRedirect(response.encodeURL(相对路径或绝对路径));
request.getRequestDispatcher(相对路径).forward();
jsp是servlet的扩展,除可用上面两种之外,还可以用标签:<jsp:forward page="相对路径" />
、如何现实servlet的单线程模式?
<%@ page isThreadSafe="false"%>
应用服务器与WEB SERVER的区别?
1。应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问。
2。应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。web服务器通常比应用服务器简单,如apache就是web服务器,Jboss就是EJB应用服务器。
应用服务器:Weblogic、Tomcat、Jboss
WEB SERVER:IIS、 Apache
应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问。
应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。web服务器通常比应用服务器简单,如apache就是web服务器,Jboss就是EJB应用服务器
在B/S体系结构中,Web server是Application Server的前提和基础。Web Server接受来自Browse(http)的request。为了扩展Web的应用(如与后台DataBase打交道)早期如一些DLL可以来完成,后来各家公司有了Application server丰富了这方面的性能。使用户跟后台的数据库有了更好的接口。如:WebSphere Weblogic等等
web服务器只提供web服务功能,比喻说解释jsp,servlet等,而应用服务器提供整个企业级解决方案,比如说:应用服务器提供EJB包容器,可以提供用户控制,事务等居多功能,web服务器是应用服务器的一个子集
Web服务器与(Java)应用服务器是平行的概念,二者不存在相互包容关系。好像J2EE体系结构就是这么画的:客户端《——》Web服务器《——》应用服务器《——》数据库服务器
如果你访问的网页只有象HTML这种页面的,用WEB服务器就够了,但是如果是JSP,也就是含JAVA代码的HTML,则就需要JAVA应用服务器了,因为只有JAVA应用服务器才能解析JSP里的JAVA代码,并将解析结果以HTML的格式返回给你。
发表评论
-
oracle 数据库的导入导出命令
2010-08-04 17:25 2400导入导出实用程序用于 ... -
ORA-01653: 解决方案
2010-03-31 13:47 18937在最近工作中发现 ... -
SQL 重复记录的查询与删除
2010-03-26 19:57 10761、查找表中多余的重复记录,重复记录是根据单个字段(peo ... -
几条使用率最高的SQL语句
2010-03-26 14:33 1590几条使用率最高的SQL语句 一.创建表(含多个字 ... -
ORACLE 系统函数
2010-03-26 13:23 9871.EMPTY_BLOB()和EMPTY_CLOB() ... -
ORACLE 转换类函数
2010-03-26 13:21 8781.CHARTOROWID 将字符数据类型转换为ROWID类 ... -
ORACLE 日期型函数
2010-03-26 13:17 8591.ADD_MONTHS 增加或减去月份 SQL> ... -
ORACLE 数字型函数
2010-03-26 12:53 12771.ABS 返回指定值的绝对值 SQL> selec ... -
ORACLE 字符串函数
2010-03-26 12:42 1082oracle 字符串函数 1.S ...
相关推荐
"JAVA编程百例"提供了一系列的小例子,旨在帮助初学者和有经验的开发者巩固基础知识,提升技能。这些实例覆盖了Java语言的核心概念,包括但不限于变量、数据类型、运算符、流程控制、函数、类与对象、接口、异常处理...
【Java编程小项目】是一个适合Java初学者及有一定基础的学习者进行实践的编程项目集合。这个项目涵盖了多种Java编程的基础概念和技术,旨在帮助学习者巩固理论知识,提升实际编程能力。 在Java编程中,首先需要了解...
这个"JAVA编程小案例"涵盖了Java编程的许多核心概念,通过实际操作和练习,初学者可以巩固理论知识,提高编程技能。标签中的"一个"可能指的是这个案例是一个独立的、综合性的学习资源,旨在帮助初学者一次性掌握多个...
资源名称:Java编程基础知识变量与数据类型资源目录:【】11957c6aed0bbd30e284837b53bc3a6f【】2.Java编程基础知识变量与数据类型1.数据类型初阶【】2.Java编程基础知识变量与数据类型10.浮点类型【】2.Java编程...
首先,Java编程的基础知识点包括语法结构、数据类型、变量、运算符、控制流程(如if语句、for循环、while循环)、函数以及类和对象。Java是一种面向对象的语言,所以理解类和对象的概念至关重要。类是对象的蓝图,...
### Java编程的逻辑 #### 一、概述 《Java编程的逻辑》由马俊昌撰写,本书主要聚焦于Java编程的核心概念与技术要点,适用于Java 5及更高版本的开发者。书中不仅涵盖了Java语言的基础知识,还深入探讨了近年来Java...
JAVA 编程题全集知识点总结 本资源提供了一个完整的 JAVA 编程题全集,涵盖了大量的题目和经典的解法,非常适合刷学完基础、刷题前的知识总结与开拓。以下是从资源中提取的重要知识点: 1. JAVA 基础知识:资源中...
Java编程基础常识主要涵盖以下几个关键知识点: 1. **Java编程语言**:Java是一种强类型、面向对象的编程语言,由Sun Microsystems开发,并于1995年发布。它旨在提供强大的功能,易于学习且适用于跨平台开发。Java...
学习Java编程,除了理论知识和实践案例,还需要不断进行代码调试和项目实战,这样才能更好地巩固所学,提升编程能力。同时,加入相关的技术社区,参与讨论和问题解答,也能加速学习进程。"Java编程200例"提供的实例...
Java编程入门是计算机编程语言Java的基础学习指南,它向初学者介绍了Java编程语言的核心概念和基础知识。这份资料特别强调了Java编程在手机游戏开发中的应用,但其内容并不局限于此,而是包含了更广泛的Java基础知识...
【标题】"java编程小游戏" 是一款基于Java编程语言开发的简单娱乐软件,它展示了Java在游戏开发领域的应用。这个游戏可能包含了一些基本的游戏机制,如角色移动、碰撞检测或者简单的计分系统,这些都是初级到中级...
Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程中最基本的组件,用于实现网络通信。...
以上只是部分基于华为JAVA编程规范的知识点,具体细节需要参考《JAVA编程军规.doc》《JAVA十大低级错误.doc》《华为_Java编程规范.pdf》《华为JAVA编程规范.doc》等文档。这些规范旨在提升代码质量和团队协作效率,...
《Java编程思想》是 Bruce Eckel 的经典著作,第四版更是深入浅出地介绍了Java语言的核心概念和技术。这个压缩包包含的源代码是书中的示例程序,它们旨在帮助读者理解书中阐述的各种编程原理和实践。通过分析这些源...
在"Java编程逻辑"中,读者可以期待学习以下关键知识点: 1. **基础语法**:包括变量、数据类型、运算符、流程控制(如条件语句if/else,循环for/while,switch),以及函数的定义和调用。 2. **类与对象**:Java的...
本资源汇集了 50 个 JAVA 编程题目,涵盖了 JAVA 基础知识、数据结构、算法、面向对象编程等方面的内容。 从文件的标题、描述和标签可以看出,本资源主要关注 JAVA 编程语言的基础知识和实践应用。下面,我们将从四...