JSP面试题是Java面试经常被问的问题,下面详解常见的9道必考的JSP面试题及答案。
什么是JSP?它与Servlet有何不同?
JSP是JavaServer Pages的缩写,是一种用于构建动态Web页面的Java技术。
与Servlet不同,JSP允许将HTML代码与Java代码混合在同一文件中,使页面开发更容易和更具可读性。
JSP的生命周期是什么样的?
JSP的生命周期,包括以下阶段:
1.编译
JSP文件在第一次访问时会被编译成Servlet。
编译的过程包括三个步骤:
- 解析JSP文件。
- 将JSP文件转为servlet。
- 编译servlet。
2.初始化
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法,也就是Servlet实例化并初始化。
如果你需要执行自定义的JSP初始化任务,复写jspInit()方法就行了。
3.JSP执行
当JSP网页完成初始化后,JSP引擎将会调用jspService()方法,处理客户端请求。
jspService()方法:需要一个HttpServletRequest对象和一个HttpServletResponse对象作为它的参数 。
jspService()方法:在每个request中被调用一次并且负责产生与之相对应的response,并且它还负责产生所有7个HTTP方法的回应,比如GET、POST、DELETE等等。
4.销毁
在Servlet容器关闭或JSP文件被修改时销毁。
当你需要执行任何清理工作时复写jspDestroy()方法,比如:释放数据库连接或者关闭文件夹等等。
JSP中的指令有哪些?作用?
JSP中有三种指令:
- <%@ page %>:用于设置页面的属性,如语言、错误页面等。
- <%@ include %>:用于包含其他文件的内容。
- <%@ taglib %>:用于引入自定义标签库。
什么是EL?JSP如何使用EL?
EL是一种用于访问JavaBean属性、数组、集合和映射的表达式语言。
在JSP中,可以使用${}语法来嵌入EL表达式,例如:${user.name}将访问名为user的JavaBean的name属性。
什么是JSTL?
JSTL是一组标签和函数,用于简化JSP页面的开发。
它包括:
1. 核心标签
2.格式化标签
3.SQL 标签
4.XML 标签
5.JSTL 函数
需要, 在jsp页面引入JSTL标签库:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
JSP中有哪些隐含对象?作用?
JSP中有以下隐含对象:
- request:用于存储客户端请求信息。
- response:用于构建服务器响应。
- out:用于向客户端输出内容。
- session:用于存储用户会话数据。
- application:用于存储全局应用程序数据。
- config:用于访问Servlet配置信息。
- pageContext:用于访问页面上下文信息。
- page:当前JSP页面的引用。
- exception:用于处理页面抛出的异常。
JSP中如何处理异常?
在JSP中,可以使用<% try { %>和<% } catch (Exception e) { %>块来处理异常。
另外:可以使用<%@ page errorPage=”error.jsp” %>来指定错误页面,以便在发生异常时进行重定向。
如何在JSP中使用JavaBean?
可以使用<jsp:useBean>标签来在JSP中实例化JavaBean,并使用EL表达式访问其属性和方法。
<jsp:useBean id="user" class="com.example.User" /> <p>Name: ${user.name}</p>
JSP的处理过程?
主要包含以下过程:
- 就像其他普通的网页一样,首先浏览器发送一个 HTTP 请求给服务器。
- Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎,通过使用 URL或者 .jsp 文件来完成。
- JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。
- JSP 引擎将 Servlet 编译成可执行类,并且将原始请求传递给 Servlet 引擎。
- Web 服务器的某组件将会调用 Servlet 引擎,然后载入并执行 Servlet 类。
- 在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。
- Web 服务器以静态 HTML 网页的形式,将 HTTP response 返回到您的浏览器中。
- 最终,Web 浏览器处理 HTTP response 中动态产生的HTML网页,就好像在处理静态网页一样。
mikechen睿哥
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!

后台回复【架构】即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》