Jsp、Servlet面试题及答案

上传人:飞*** 文档编号:33958460 上传时间:2018-02-19 格式:DOC 页数:18 大小:133.50KB
返回 下载 相关 举报
Jsp、Servlet面试题及答案_第1页
第1页 / 共18页
Jsp、Servlet面试题及答案_第2页
第2页 / 共18页
Jsp、Servlet面试题及答案_第3页
第3页 / 共18页
Jsp、Servlet面试题及答案_第4页
第4页 / 共18页
Jsp、Servlet面试题及答案_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《Jsp、Servlet面试题及答案》由会员分享,可在线阅读,更多相关《Jsp、Servlet面试题及答案(18页珍藏版)》请在金锄头文库上搜索。

1、一、简答题1.forward 和redirect的区别forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以 session,request 参数都可以获取。2.说出Servlet的生命周期,并说出Servlet和CGI的区别Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,

2、service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与 cgi 的区别在于 servlet 处于服务器进程中,它通过多线程方式运行其 service 方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而 CGI 对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于 servlet。3.JSP中动态INCLUDE与静态INCLUDE的区别?动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE用include伪

3、码实现,并不会检查所含文件的变化,适用于包含静态页面4.什么情况下调用doGet()和doPost()?Jsp 页面中的 form 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost()。5.servlet的生命周期web 容器加载 servlet,生命周期开始。通过调用 servlet 的 init()方法进行 servlet 的初始化。通过调用 service()方法,根据请求的不同调用不同的 do*()方法。结束服务,web 容器调用 servlet 的destroy()方法。6.如何现实servlet的单线程模式7.页面间对象传递的方法r

4、equest,session,application,cookie 等8.JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? JSP 技术构建在 Servlet 技术之上,是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,JSP 能做到的,Servlet 都能做到,但是它们却各有所长。JSP 更强调应用的外表表达。JSP 编译后是类servlet。Servlet 比较适合作为控制类组件,比如视图控制器等。另外,Servlet 还可以作为过滤器、监听器等。Servlet 不仅可以动态生成 HTML 内容,还可以动态生成图形。Servlet 和 JSP 最主要的

5、不同点在于,Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java 和 HTML 可以组合成一个扩展名为.jsp 的文件。总而言之,Servlet 在项目中作为控制类的组件,并且处理一些后台业务,JSP 则作为显示组件。JSP 侧重于视图,Servlet 主要用于控制逻辑。9.四种会话跟踪技术会话作用域 Servlets JSP 页面描述page 否 是 代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括

6、servlet 又包括被编译成 servlet 的 JSP 页面request 是 是 代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)session 是 是 代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求application 是 是 代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域10.Servlet执行时一般实现哪几个方法?Public

7、void init(ServletConfig config)public ServletConfig getServletConfig()public String getServletInfo()public void service(ServletRequest request,ServletResponse response)public void destroy()11. url 重写有几种方式?由于 cookie 可以被人为的禁止,必须有其他机制以便在 cookie 被禁止时仍然能够把 session id 传递回服务器。经常被使用的一种技术叫做 URL 重写,就是把 sessio

8、n id 直接附加在 URL 路径的后面,附加方式也有两种,一种是作为 URL 路径的附加信息,表现形式为http:/./xxx;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764另一种是作为查询字符串附加在 URL 后面,表现形式为http:/./xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764这两种方式对于用户来说是没有区别的,只是服务器在解析的时候处理的方式不同,采用第一种方式也有利

9、于把 session id 的信息和正常程序参数区分开来。为了在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个 session id。12在 jsp 中引用使用来引用 javabean.scope 的值有哪些,这些值的区别是什么?不同的 jsp 页面中引用 javabean 时,id 能否相同,如果能相同,对 scope 的值有什么要求?scope 可以为:application|page|session|requeat 这个东西就是指定 ID 的有效范围。如果scope=page,那么 useBean 的有用范围就只能在 page 内有效,到了 session|a

10、pplication|requeat 就无效了。可以指定 scope 属性,使得 Bean 不只是与当前页面建立单关联。如果共享了 Bean,获取对现有Bean 的引用就很有用,因此 jsp;useBean 操作表示公当不存在具有相同 id 和 scope 的对象时才实例化一个新对象。这样就可以节约资源。二、问答题1.JSP的内置对象及方法Request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。Response表示HttpServletResponse对象,并提供了几个用于

11、设置送回 浏览器的响应的方法(如cookies,头信息等)out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。Session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息applicaton 表示一个javax.servlet.ServletContext对象。

12、这有助于查找有关servlet引擎和servlet环境的信息config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。Page 表示从该页面产生的一个 servlet 实例2.JSP的常用指令3.Request对象的主要方法:setAttribute(String name,Object):设置名字为name的request的参数值getAttribute(String name):返回由name指定的属性值getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例getCookie

13、s():返回客户端的所有Cookie对象,结果是一个Cookie数组getCharacterEncoding():返回请求中的字符编码方式getContentLength():返回请求的Body的长度getHeader(String name):获得HTTP协议定义的文件头信息getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例getInputStream():返回请求的输入流,用于获得请求中的数据getMethod():获得客户

14、端向服务器端传送数据的方法getParameter(String name):获得客户端传送给服务器端的有name指定的参数值getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例getParameterValues(String name):获得有name指定的参数的所有值getProtocol():获取客户端向服务器端传送数据所依据的协议名称getQueryString():获得查询字符串getRequestURI():获取发出请求字符串的客户端地址getRemoteAddr():获取客户端的IP地址getRemoteHost():获取客户端

15、的名字getSession(Boolean create):返回和请求相关SessiongetServerName():获取服务器的名字getServletPath():获取客户端所请求的脚本文件的路径getServerPort():获取服务器的端口号removeAttribute(String name):删除请求中的一个属性4.jsp有哪些动作?作用分别是什么? JSP 共有以下 6 种基本动作 jsp:include:在页面被请求的时候引入一个文件。 Jsp:useBean:寻找或者实例化一个 JavaBean。 Jsp:setProperty:设置 JavaBean 的属性。 Jsp:

16、getProperty:输出某个 JavaBean 的属性。 Jsp:forward:把请求转到一个新的页面。 Jsp:plugin:使您能插入所需的特定的浏览器的 OBJECT 或 EMBED 元素来指定浏览器运行一个 JAVA Applet 所需的插件。根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。jsp:plugin type=bean|applet code=classFileName codebase=classFileDirectoryName name=instanceName archive=URIToArchive, . align=bottom|top|middle|left|right height=displayPixels width=displayPixels hspace=leftRightPixels vspace=topBottomPixels jreversion=J

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号