1、Java Web部分面试题一 1. 说出Servlet的生命周期,并说出Servlet和CGI的区别? Web容器加载servlet并将其实例化后,servlet生命周期开始,容器运营其init方法进行servlet的初始化,请求到达时运营其service方法,service方法自动派遣运营于请求相应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与CGI的区别在与servlet处在服务器进程中,它通过多线程方式运营其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完毕后
2、就销毁,所以效率上低于servlet。 2. forward和redirect的区别? forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目的地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器主线不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是本来的地址。 redirect就是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取,并且从浏览器的地址栏中可以看到跳转后的链接地址。 前者更加高效,在前者可以满足需要时,尽量使用
3、forward()方法,也有助于隐藏实际的链接;在有些情况下,比如需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
3. JSP中动态include与静态include的区别?
动态include用jsp:include动作实现
4、 JSP的有哪些内置对象,作用分别是什么? request:表达HttpServletRequest对象,它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,header和session数据的有用方法; response:表达HttpServletResponse对象,并提供了几个用于设立送回浏览器的响应的方法(如cookies,头信息等。) pageContext:网页的属性在这里管理; session:表达一个请求的javax.servlet.http.HttpSession对象,session可以存储用户的状态信息; application:表达一个javax.
5、servlet.ServletContext对象,这有助于查找有关servlet引擎和servlet环境的信息; out:是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果; config:表达一个javax.servlet.ServletConfig对象,该对象用于存取servlet实例的初始化参数; page:表达从该页面产生的一个servlet实例; exception:针对错误网页,未捕获的例外。 5. JSP的常用指令? <%@page language="java" contentType="text/html" %>
6、 <%@include file="filename"%> <%@taglib prefix="c" uri="http://...."%> 6. JSP有哪些动作,作用分别是什么? JSP共有以下6种基本动作: jsp:include:在页面被请求的时候引入一个文献; jsp:useBean:寻找或者实例化一个JavaBean; jsp:setProperty:设立JavaBean的属性; jsp:getProperty:输出某个JavaBean的属性; jsp:forward:把请求转到一个新的页面; jsp:plugin:根据浏览器类型为Java插件生成objec
7、t标记。 7. GET和POST的区别? form中的get和post方法,在数据传输过程中分别相应了HTTP协议中的GET和POST方法。两者重要区别如下: ① Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据; ② Get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相相应的方式,传递到action所指向URL; ③ Get是不安全的,由于在传输过程,数据被放在请求的URL中;Post的所有操作对
8、用户来说都是不可见的; ④ Get传输的数据量小,这重要是由于受URL长度限制;而Post可以传输大量的数据,所以在上传文献只能使用Post; ⑤ Get限制form表单的数据集必须为ASCII字符,而Post支持整个ISO10646字符集; ⑥ Get是from的默认方法。 8. 常用的web容器和开发工具? 最常用的容器包含:tomcat、weblogic、 开发工具有:eclipse,jbuilder,JCreator 9. 画出Servlet2.2以上Web Application的基本目录结构? 目录结构如下图所示: 10. JSP和S
9、ervlet有哪些相同点和不同点,它们之间的联系是什么? Jsp是servlet技术的扩展,本质上是servlet的简易方式,更强调应用的视图表达。JSP编译后是“servlet类”。Servlet和JSP最重要的不同点在于,servlet的应用逻辑是在Java文献中,并且完全从表达层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文献。JSP侧重于视图,servlet重要用于控制逻辑。 11. JSP的四种数据共享范围? Ø pageContext是代表与一个页面相关的对象和属性。一个页面由一个编译好的Java servlet类(可以带有任
10、何的include指令,没有include动作)表达。这既涉及servlet又涉及被编译成servlet的JSP页面。 Ø Request是代表与web客户机发出的一个请求相关的对象和属性。一个请求也许跨越多个页面,涉及多个web组件(由于forward指令和include动作的关系) Ø Session是代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web会话可以也经常会跨越多个客户机请求。 Ø Application是代表与整个web应用程序相关的对象和属性。这实质上是跨越整个web应用程序,涉及多个页面、请求和会话的一个全局作用域。 12. Request对象
11、的重要方法? getParameter(String) 返回指定输入参数,假如不存在,返回null getParameterValues(String) 返回指定输入参数名的取值数组,假如取值不存在则返回null。它在参数具有多个取值的情况下十分有用。 getParameterMap() 返回请求参数的map()对象 getRequestURI() 返回URL中一部分,从“/”开始,涉及上下文,但不涉及任意查询字符串 getContextPath() 返回指定servlet上下文(web应用)的URL的前缀 setAttribute(String, Object) 在请求
12、中设一个属性 getAttribute(String) 得到设立的属性的值 getSession() 返回当前http会话 getCookies(); 返回与请求相关cookie的一个数组 getRequestDispatcher(String) 用于转发转发到新的地址 setCharaterEncoding(String) 设立解析的编码 13. 具体描述MVC。 基于Java的web应用系统采用MVC架构模式,即model(模型)、view(视图)、control(控制)分离设计;这是目前WEB应用服务系统的主流设计方向。 Medel:即解决业务逻辑的模块,每一种解
13、决一个模块; View:负责页面显示,显示model解决结果给用户,重要实现数据到页面转换过程; Control:负责每个请求的分发,把form数据传递给model解决,把解决结果的数据传递给view显示。 14. MVC的各个部分都有哪些技术来实现? MVC是Model-View-Controller的简写。“Model”代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),“View”是应用的表达层(由JSP页面产生),“Controller”是提供应用的解决过程控制(一般是一个servlet),通过这种设计模型把应用逻辑,解决过程和显示提成不同的组件实现。这些组件可
14、以进行交互和重用。
15. 有哪几种会话跟踪技术?
Cookie、URL重写、设立表单隐藏域。
16. 过滤器有哪些作用?
可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码,可以过滤掉客户的某些不应当出现的词汇,可以验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统的日记等。
17. Web.xml的作用?
用于配置web应用的信息,如listener、filter及servlet的配置信息等。
18. 写出熟悉的JSTL标签。
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818