收藏 分销(赏)

几道JSP和Servlet面试题.doc

上传人:xrp****65 文档编号:7032510 上传时间:2024-12-25 格式:DOC 页数:5 大小:54KB
下载 相关 举报
几道JSP和Servlet面试题.doc_第1页
第1页 / 共5页
几道JSP和Servlet面试题.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述
1. 共享数据在 web 中的范围(四种会话跟踪技术) (1).page:仅在当前页可用(保存在当前的 PageContext 中) (2).request:仅用于当前客户端的请求(保存在 ServletRequest 对象中),它在同一个请求范 围内有效. (3).session:仅在当前的 HttpSession 的生命周期内,当前浏览器窗口的整个生存期都有效. 关闭浏览器时,这个对象会跟着消失,在整个对话期间都有效. (4).application:在整个应用范围内都有效,只有当服务器重启时,这个对象才会消失. 2. Servlet 的生命周期。 (1) 初始化阶段,Servlet 容器调用 init()初始化 Servlet 对象。 (2) 执行阶段, Servlet 容器创建 ServletRequest 对象和 ServletResponse 对象,Servlet 调 用 service 方法来处理客户端的请求了,调用 doGet(),doPost()方法接收客户端的请 求,并且发回相应的响应。 (3) 终止阶段,当 Web 应用被终止,或 Servlet 容器终止运行,或 Servlet 容器重新装载 Servlet 的新实例.Servlet 调用 destroy 方法释放占用的资源 3. 至少要能说出 7 个隐含对象以及他们的区别 (1) request:代表了客户端的请求信息,主要用于接受客户端通过 HTTP 协议传送到服务 器端的数据.它是 javax.servlet.ServletRequest 的一个实例. (2) response: 用于用户端发送数据,它封装由 JSP 引擎产生的响应,并将响应返回给客户端. 它是 javax.servlet.ServletResponse 类的一个实例. (3) out : 用来输出各种类型的数据流,为用户打开的输出流,它是 javax.servlet.jsp.JspWriter 类的一个实例. (4) session:为发送请求的每一位客户建立一个会话,并且只对 HTTP 的用户请求有效.作 用域是一次会话.它是 javax.servlet.http.HttpSession 类的一个实例. (5) exception:运行时的异常,即被调用的错误页面中的结果 (6) page:JSP 网页本身 (7) application:它是 javax.servlet.ServletContext 类的一个实例,作用域是对所有的访问, 当服务器启动时,applcation 对象就被创建,生存期将一直持续到服务器关闭. (8) config:表示 servlet 的配置. (9) pageContext:管理网页的属性 4. JSP 的常用指令 <%@ page language= “java” import = “” errorPage=”” isErrorPage= “” method = “” contxtPage=”text/html;charset=UTF-8” %> <%@ include file = “”%> <%@ taglib uri = “” %> 5. forward 和 redirect 的区别 <jsp:include page="included.jsp" flush="true"> <jsp:forward page= "nextpage.jsp"/> 前者页面不会转向 include 所指的页面, 只是显示该页的结果,主页面还是原来的页面。 执行完后还会回来,相当于函数调用。并且可以带参数. 后者完全转向新页面,不会再 回来。相当于 go to 语句。 6. jsp 有哪些动作?作用分别是什么? 答:JSP 共有以下 6 种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个 JavaBean。 jsp:setProperty:设置 JavaBean 的属性。 jsp:getProperty:输出某个 JavaBean 的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记 7. 动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用 于包含动态页面,并且可以带参数 静态 INCLUDE 用 include 伪码实现,定不会检查所 含文件的变化,适用于包含静态页面<%@ include file="included.htm" %> 8. JSP 的语法主要包括哪些方面的内容? (1)脚本元素方法:注释,声明,表达式和程序段. (2)指定类语法:page,include,taglib 指令. (3)动作类语法: (4)内置对象: 9. JSP 中的 java 代码是怎么嵌入到 HTML 代码中间的? <% %> <jsp: /> <%! %> 10. JSP 中的脚本元素有哪几类? (1)注释:<%-- comment --%> (2)声明: <%! %> JSP 页面运行时初始化 (3)表达式:<%=expression%> 可以看作输出形式. (4)程序段: <% %> 11. JSP 的指令有什么作用?JSP 中有哪几种指令? (1)page 指令:定义 JSP 文件页面的全局属性. (2)include 指令:用来在 JSP 文件被编译时导入一个指定的文件. (3)taglib 指令:声明 JSP 文件使用了自定义的标签,同时引用标签库,也指定了它们的标签 的前缀 12. 内置对象 session 和 application 有什么区别? session 对象对于每一个会话都会创建一个实例,在一个会话中,session 对象能够一直存 在,直到会话结束.它的生命周期为一次会话. application 对象在服务器启动时被时就被创建,它们生存期将一直持续到服务器关闭,在 服务器工作的期间,application 对象能够起到保存信息的作用. 13. JSP 的工作原理是什么样的? (1)用户和服务器建立连接 (2)发送客户端请求 (3)服务器应答 (4)关闭连接 14. JSP 的运行模式是怎么回事? 所有 JSP 页面都是通过在服务器端把转换成 Servlet 来运行的.JSP 引擎在这其中起了很 重要的作用.当一个 JSP 页面被第一次访问时,JSP 引擎将进行如下操作: (1)将 JSP 文件翻译成 Servlet 文件,这个 Servlet 文件是一个完整 java 应用程序. (2)JSP 引擎调用 java 编译器对 Servlet 文件进行编译,从而得到可执行的 class 类文件. (3)JSP 引擎调用 java 虚拟机解释执行 class 类文件,并将执行后的结果返回给服务器. (4)服务器将响应结果与原页面中静态的 HMTL 内容相结合,并将结合以后的内容 HTML 格式的形式返回给客户端浏览器. 15. 什么是 Cookie?怎么用 JSP 存取 Cookie? Cookie 是存贮在客户端硬盘上的,供浏览器与 Web 服务器交互数据的纯文件,可以把 Cookie看作浏览者的身份证---唯一标识客户的标记. Request.getCookie(),response.addCookie() 方法进行存取. 16. 如何使用 JSP 显示目录的结构? 17. 如何使用 JSP 新建和删除一个目录? 18. 在 JSP 中对文件的基本处理有哪些?分别如何实现? 19. jspSmartUpload 用来做什么的? 20. 如何利用 jspSmartUpload 上传下载文件? 21. 什么是 JSP?它有哪些特点? JSP 是服务器端的一种基于 java 语言的网页技术,它是由一些 JSP 标记,java 程序段以及 HTML 文件组成的结合体,以 java 语言作为其内置的脚本语言. 实质上是通过调用 JSP 引擎来生成 java 文件,再将这个 java 文件编译成类文件,并执行这 个类文件以生成动态网页. 特点: (1)内容的生成和显示分离 (2)使用可重用的组件 (3)采用自定义标识简化页面的开发 (4)JSP 具有 java 技术所带来的所有的优点 (5)JSP 容易整合到多种应用体系结构中. 22. JSP 和 java 之间到底有什么关系? JSP 实质上就是一些 JSP 标记,java 程序段以及 HTML 文件组成的结合体,以 java 语言作 为其内置的脚本语言. 调用 JSP 引擎来生成 java 文件,再将这个 java 文件编译成类文件,并执 行这个类文件以生成动态网页.JSP 具备 java 平台独立,安全稳定,动态下载等优异性能. Servlet 方面: 1. JAVA SERVLET API 中 forward() 与 redirect()的区别? 答:前者仅是容器中控制权的转向, 在客户端浏览器地址栏中不会显示出转向后的地址; 后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从 浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满 足需要时,尽量使用 forward()方法,并且,这样也有助于隐藏实际的链接。在有些情 况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 sendRedirect()方法 2. 什么情况下调用 doGet()和 doPost()? 当客户端发出 GET 请求时,调用 doGet()方法处理。 当客房端发出 POST 请求时,调用 doPost()方法处理。 3. servlet 的 init()方法和 service()方法的区别 init()方法:当服务器调用 Servlet 时,init()方法初始化 Servlet 对象。 service()方法:处理客户端的请求,调用 doGet(),doPost()方法接收客户端的请求,并] 且发回相应的响应。 4. servlet 的生命周期 (1).初始化阶段:调用 init()方法初始化 Servlet 对象。 (2).响应客户请求阶段(执行时期): Servlet 容器创建 ServletRequest 对象和 ServletResponse 对象,Servlet 调用 service 方法来处理客户端的请求了,调用 doGet(),doPost()方 法接收客户端的请求,并且发回相应的响应。 (3). 终止阶段:当 Web 应用被终止,或 Servlet 容器终止运行,或 Servlet 容器重新装载 Servlet 的新实例.Servlet 调用 destroy 方法释放占用的资源 5. 如何现实 servlet 的单线程模式 6. servlet 的配置 7. Servlet 的基本架构 public class ServletName extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } 8. Servlet 和 CGI 的区别。 与 cgi 的区别在于 servlet 处于服务器进程中,它通过多线程方式运行其 service 方法, 一个实例可以服务于多个请求,并且其实例一般不会销毁,而 CGI 对每个请求都产生 新的进程,服务完成后就销毁,所以效率上低于 servlet。 9. 什么是 Servlet?它有哪些特点? Servlet 是运行在 JSP 服务器端,用来生成 Web 页面的一种 java 程序. 特点: (1) 效率点 (2) 功能强大 (3) Servlet 之间能够共享数据 (4) 安全性好 (5) 跨平台 10. JPS 和 Servlet 有什么不同的地方? JSP 的本质是 Servlet.JSP 的代码在服务器端被编译成为 Servlet,并由 java 虚拟机 JVM 解 释执行. 11. Servlet 程序中通常有哪些重要的方法? (1) doGet():用来处理来自客户端的 GET 请求.这个对 GET 请求的操作允许用户从 HTTP 服务器上取得某些资源. (2) doPost():用来处理客户端的 POST 请求的操作可以接受用户向服务器传递的数据. (3) doPut():用来处理 HTTP 的 PUT 请求 (4) doDelete():用来处理 HTTP 的 EDLETE 请求 (5) doHead():用来处理 HTTP 的 HEAD 请求 (6) doOptions():用来处理 HTTP 的 OPTIONS 请求 (7) doTrace():用来处理 HTTP 的 Trace 请求. 1. 什么是 javabean?为什么要在 JSP 中使用 javabean? Javabean 是一种基于 java 语言的可重用组件,它放置在 JSP 服务器后台的一个 javabean 类,封装了一些私有的数据和方法,这些私有数据可以用 javabean 类中的方法来存取. JSP 使用 javabean 很好的封装业务逻辑,数据库操作或执行复杂的计算任务.从而将业务 逻辑和前台表示页分离开来,使得系统具有良好的健壮性和灵活性. 2. JSP 中哪几个对 javabean 进行操作的标记. (1)<jsp:useBean>标记:用于创建一人具有一定生存范围以及一个唯一 id 的 javabean 实例. (2)<jsp:setProperty>标记:用于向一个 javabean 中的属性赋值. (3)<jsp:getProperty>标记:用于从一个 javabean 中获取到某个变量的值.无论原先这个变 量是什么类型的,都将被转换为一个 String 类型的值. 3. javabean 生存期有哪几种? (1) page:当前这个页面有效,一旦这个页面的传送过程结束,这个 javabean 对象就消失了 (2) request:生存期和 page 类似,但是还是有区别, (3) session:在整个会话都有效. (4) Application:在 application 的有效围都有效. 4. 为什么通常要使用数据库连接池?连接池管理器有什么作用? 数据库连接池就是一个存储数据库连接的容器,当应用程序需要连接数据库时,就直接从 连接池中获得一个连接,当使用结束时,再将这个连接交给连接池供其它应用程序连接数据库 使用. 数据库连接可以被很多应用程序实例共享,应用程序无需在每次与数据库交互时都进行 连接和断开操作,从而大大提高了访问数据库的效率. 功能: (1) 根据初始设置创建针对不同数据库的连接池 (2) 能够存储多个不同的连接池,每个连接池存储一类连接 (3) 根据不同的请求提供不同连接池中的连接 (4) 将使用完全的连接放回到相应的连接池中去 (5) 关闭用完的连接放回到相应的连接池中去
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服