深入理解JSP Servlet:面试关键知识点解析

需积分: 50 10 下载量 81 浏览量 更新于2024-09-15 1 收藏 24KB DOCX 举报
"jsp servlet面试题总结" 在面试中,对JSP(Java Server Pages)和Servlet的深入理解是考察候选人技能的重要部分。JSP和Servlet是构建动态Web应用的基石,它们协同工作以处理客户端请求并返回响应。以下是对标题和描述中提及的知识点的详细解释: **1. JSP的九大内置对象** - **request对象**:类型为`javax.servlet.ServletRequest`,作用域为Request。这个对象用于获取和设置HTTP请求中的参数,如表单数据、请求头等,只在当前请求的生命周期内有效。 - **response对象**:类型为`javax.servlet.SrvletResponse`,作用域为Page。响应对象负责将服务器的响应发送回客户端,可以设置响应头、状态码和输出内容。 - **pageContext对象**:类型为`javax.servlet.jsp.PageContext`,作用域为Page。页面上下文对象提供对所有范围的访问,包括request、session和application,以及访问JSP的所有其他对象。 - **session对象**:类型为`javax.servlet.http.HttpSession`,作用域为Session。会话对象用于跟踪用户在整个网站中的活动,即使他们在不同的页面之间导航,只要会话没有过期。 - **application对象**:类型为`javax.servlet.ServletContext`,作用域为Application。应用程序对象代表整个Web应用,用于存储全局信息,可供应用内的所有用户和servlet共享。 - **out对象**:类型为`javax.servlet.jsp.JspWriter`,作用域为Page。输出对象用于向响应流写入内容,是JSP页面输出的主要方式。 - **config对象**:类型为`javax.servlet.ServletConfig`,作用域为Page。配置对象提供servlet的初始化参数。 - **page对象**:类型为`javax.lang.Object`,作用域为Page。页面对象代表当前JSP页面本身,通常用于自定义标签库。 - **exception对象**:类型为`javax.lang.Throwable`,作用域为page。例外对象在错误页面中使用,用来访问导致错误的异常信息。 **2. JSP动作** - **jsp:include**:包含另一个文件,可以是动态的或静态的,允许传递参数。 - **jsp:useBean**:查找或创建一个JavaBean实例,并将其绑定到一个变量。 - **jsp:setProperty**:设置JavaBean的属性值。 - **jsp:getProperty**:读取并输出JavaBean的属性值。 - **jsp:forward**:将请求转发到另一个URL,当前请求生命周期继续。 - **jsp:plugin**:根据浏览器类型生成适当的嵌入标签(OBJECT或EMBED),用于插入Java插件。 **3. 动态INCLUDE与静态INCLUDE的区别** - **动态INCLUDE**:使用`jsp:include`动作,每次请求都会检查被包含页面的最新状态,适合包含动态内容,支持传参。 - **静态INCLUDE**:使用`<%@include file="">`,在编译时就将包含的文件合并到JSP页面中,不检查内容更新,适用于静态内容。 **4. 请求转发与重定向** - **RequestDispatcher.forward()**:内部跳转,客户端浏览器地址栏不会改变,适合同一应用内的多个资源协作。 - **HttpServletResponse.sendRedirect()**:外部跳转,客户端收到重定向响应,浏览器地址栏显示新URL,适合跳转到不同应用或URL。 以上知识点涵盖了JSP和Servlet的基础核心概念,面试时,面试官可能会深入询问这些概念的使用场景、操作细节以及它们如何协同工作来构建复杂的Web应用程序。