一、JAVA
一、运行时异常和一般异常的区别?
运行时异常:
1、是虚拟机运行过程中遇到的“系统级”问题
2、这些问题在很多地方都能发生,比如ClassNotFound,所以没法去一一要求程序员捕获
非运行时异常,又叫错误:
1、是Java的类库或是程序员自己写的代码发生的异常
2、这些异常是类的开发者预期发生而且主动检测、抛出的,只在特定的位置、时机发生,是要求使用者捕获、处理的。比如IOException,那就是Java的I/O库写代码的时候主动判断文件是否存在等现象,发生现象的时候主动抛出来的,而我们用的时候也要处理它。
二、java语言如何进行异常处理?
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有异常的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的异常的类型。
throw语句用来明确地抛出一个异常。
throws用来标明一个成员函数可能抛出的各种异常。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,异常的框架就放到堆栈上面,直到所有的try语句都完成。
三、说明类和对象实例之间的关系,并说明静态变量和实例变量的区别和使用它们的场景
类可以理解为一种类型,比如你定义了一种类型叫“中国人”;
对象可以理解为类中的具体的实例,“你”就是“中国人”中实实在在的一个对象,也就是说给类中的各个属性赋予了某一个特定的值,比如:姓名,年龄,身份证号,这样一个抽象的“中国人”就实例化成一个具体的实实在在存在的“人”了。
静态变量属于类,不用实例化就已经存在,所有的实例共享同一个静态变量,可以通过类名和实例名来访问。实例变量属于实例,每个实例都有自己的这个变量,只能通过实例名来访问。
四、是否可以从一个static方法内部发出对非static方法的调用
不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象, 可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用, 那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。
五、WEB开发
一、描述J2EE BS系统的目录结构,Web.xml的作用是什么
J2EE 典型的四层结构:运行在客户端机器上的客户层组件;运行在J2EE服务器上的Web层组件;运行在J2EE服务器上的业务逻辑层组件;运行在EIS服务器上的企业信息系统(Enterprise information system)层软件。
每个javaEE工程中都有web.xml文件,那么它的作用是什么呢?它是每个web.xml工程都必须的吗?
一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。
web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。
当你的web工程没用到这些时,你可以不用web.xml文件来配置你的Application。
每个xml文件都有定义它书写规则的Schema文件,也就是说javaEE的定义web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。web.xml的模式文件是由Sun 公司定义的,每个web.xml文件的根元素为
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
web.xml的模式文件中定义的标签并不是定死的,模式文件也是可以改变的,一般来说,随着web.mxl模式文件的版本升级,里面定义的功能会越来越 复杂,标签元素的种类肯定也会越来越多,但有些不是很常用的,我们只需记住一些常用的并知道怎么配置就可以了。
下面列出web.xml我们常用的一些标签元素及其功能:
1、指定欢迎页面,例如:
PS:指定了2个欢迎页面,显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。如果第一个不存在,就找第二个,以此类推。
关于欢迎页面:
访问一个网站时,默认看到的第一个页面就叫欢迎页,一般情况下是由首页来充当欢迎页的。一般情况下,我们会在web.xml中指定欢迎页。但 web.xml并不是一个Web的必要文件,没有web.xml,网站仍然是可以正常工作的。只不过网站的功能复杂起来后,web.xml的确有非常大用 处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。
2、命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖命名的,命名必须在定制URL前。下面拿serlet来举例:
(1)、为Servlet命名:
(2)、为Servlet定制URL、
3、定制初始化参数:可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值。
下面用servlet来举例:
经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。
4、指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。
-----------------------------
5、设置过滤器:比如设置一个编码过滤器,过滤所有资源
6、设置监听器:
7、设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:
除了这些标签元素之外,还可以往web.xml中添加很多标签元素,由于不常用省略。
二、Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符?
(< > & “”)——这个不会,会的哥们留下答案
三、写出你常用的关于Web安全性考虑的几方面
sec.chinabyte.com/34/13164034.shtml
防止sql注入、防止窗体和脚本泄密、Cookies和会话管理
四、表单提交中Get和Post方式的区别,forward 和redirect的区别?
表单提交中get和post方式的区别有5点
1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据 队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各 个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5.get安全性非常低,post安全性较高。
forward是你打电话问同事,明天上班不?你经理就在你同事身边,所以电话没挂,同事问了经理然后告诉你,明天是要上班。
redirect你问同事,明天上班不?你同事他也不知道,但他告诉了你们经理的电话,让你打电话问经理,然后你就得挂电话,重新打个电话给你经理。
http://blog.csdn.net/john2522/article/details/7438799
五、Jsp有哪些内置对象,作用分别是什么?
JSP共有以下9种基本内置组件
1、request对象 客户端请求,此请求会包含来自GET/POST请求的参数通过它才能了解到客户的需求,然后做出响应。
2、response对象 响应客户请求的有关信息
3、session对象 它指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
4、out对象 它是JspWriter类的实例,是向客户端输出内容常用的对象
5、page对象 它是指向当前JSP页面本身,有点象类中的this指针,它是 java.lang.Object类的实例
6、application对象 它实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭
7、exception对象 它是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。
8、pageContext对象 它提供了对JSP页面内所有的对象及名字空间的访问
9、config对象 它是在一个Servlet初始化时,JSP引擎向它传递信息用的
六、开源框架和设计模式
一、请解释mvc和struts的关系,简要讲解如何应用Struts进行开发?说明Struts的几种常用标签及他们的作用
MVC是一种软件开发的架构,M指的是业务处理模型,也就是业务处理层;V指的是视图,也就是展示层;C指的是控制,也就是完成展示层和模型层之间的转接控制
struts是一种mvc架构的实现框架,为开发者提供方便的mvc使用
网址:
http://wenku.baidu.com/link?url=HvAaLi18q8WwH3BTBhngnEl6crSZrylZF-vZryeU1QhCVg4hUwpwaMp7Z9WX5q5VQqM09YCtjlvNFDHKOOaycwPyUCaLMQIlkVqVNTLd6ri
二、Hibernate为什么提供了延迟加载?起什么作用?数据库有没有提供相应的延迟加载功能,hibernate是如何配置实现延迟加载的?
三、为什么使用Ajax?Ajax主要用在哪些地方?使用Ajax的缺点是什么?
七、数据库