6、JSP 有哪些内置对象?分别是什么?
JSP 有 9 个内置对象,分别是:
-request:封装客户端的请求,其中包含 HTTP 请求的所有信息。
-response:封装服务器对客户端的响应,可以通过它来设置 HTTP 响应的状态和头信息。
-pageContext:JSP 页面的上下文,它是 PageContext 类型的引用,用于管理 JSP 页面的属性和作用域。
-session:封装用户会话的对象,可以用于在不同请求之间共享信息。
-application:封装 ServletContext 的对象,用于在整个应用程序中共享信息。
-out:用于向客户端输出文本信息。
-config:封装 Servlet 配置信息的对象,可以用于读取 web.xml 中的初始化参数。
-page:指向正在执行的 JSP 页面本身。
-exception:封装 JSP 页面抛出的异常。
7、JSP 中如何实现页面跳转?
在 JSP 中实现页面跳转有两种方式:
1)使用 Java 代码进行跳转:
response.sendRedirect(“target.jsp”);
这种方式会向客户端发送一个 302 重定向响应,客户端的浏览器会自动重定向到目标页面。
2)使用 JSP 指令进行跳转:
这种方式会在服务器端进行页面跳转,将请求转发到目标页面,客户端的浏览器是无法感知到这个跳转的。
8、JSP 中如何使用标准的 JSTL 标签库?
要使用 JSTL 标签库,需要在 JSP 页面顶部添加以下指令:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
其中,prefix 属性是标签库的前缀,uri 属性是标签库的统一资源标识符(URI)。
然后,就可以在 JSP 页面中使用 JSTL 标签了。例如,可以使用 标签遍历集合:
<c:forEach var="item" items="${items}">
<p>${item}</p>
</c:forEach>
9、JSP 页面中的注释有哪些?
JSP 页面中有两种注释方式:
HTML 注释:
JSP 注释:<%– 这是一个 JSP 注释 –%>
其中,HTML 注释不会被 JSP 引擎处理,而 JSP 注释会被 JSP 引擎忽略。
10、JSP 中如何使用自定义标签?
要使用自定义标签,需要定义一个标签处理类和一个标签库描述文件。标签处理类通常继承自 javax.servlet.jsp.tagext.SimpleTagSupport 类,实现标签的处理逻辑。标签库描述文件是一个 XML 文件,用于描述自定义标签的属性、名称和处理类等信息。
例如,下面是一个简单的自定义标签,用于显示当前时间:
标签处理类 com.example.TimeTag:
package com.example;
import java.io.IOException;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class TimeTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
getJspContext().getOut().write(new Date().toString());
}
}
标签库描述文件 time.tld:
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>time</short-name>
<uri>http://example.com/tags/time</uri>
<tag>
<name>time</name>
<tag-class>com.example.TimeTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
在 JSP 页面中引入自定义标签库:
<%@ taglib prefix="t" uri="http://example.com/tags/time" %>
然后就可以在 JSP 页面中使用自定义标签了:
<t:time/>