「这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战」
前言
大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍JSP脚本中的9个内置对象中的config对象,exception对象和out对象。
1.2 config对象
通过之前查看_jspService()方法我们知道config是ServletConfig类型的一个实例,该对象可以通过getInitParameter(String paramName)来获取配置参数。
首先要在web.xml中通过需要把JSP当成Servlel来配置,通过init-param元素来配置参数,然后才能在JSP页面中获得该参数。
实例展示:
<servlet>
<!--servlet名字,为下面的jsp页面起的Servlet名-->
<servlet-name>servletTest</servlet-name>
<!--指定把哪个JSP页面配置成Servlet-->
<jsp-file>/test.jsp</jsp-file>
<!--配置参数-->
<init-param>
<param-name>age</param-name>
<param-value>20</param-value>
</init-param>
</servlet>
把JSP当作Servlet来配置还不够,如果要想要配置的参数生效,还需要通过servlet-mapping元素来为JSP页面配置路径。
实例展示:
<servlet-mapping>
<servlet-name>servletTest</servlet-name>
<url-pattern>/servletTest</url-pattern>
</servlet-mapping>
经过以上的两步已经把一个JSP页面当成了一个Servlet,并且为Servlet配置了age属性,同时为Servlet指定了路径。
在浏览器就可以输入指定的路径来访问该Servlet(JSP)
1.3 exception对象
exception对象是Throwable的一个实例,该实例代表了其他页面的错误和异常,只有当前页面被设置为错误处理页面时该实例才存在。
在JSP页面遇到异常时,通过forward转发到错误和处理页面,异常处理页面会调用exception对象来方法输出对应的错误和异常。
实例展示:
index.jsp:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="ErrorHandlePage.jsp" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<%!
int num=1;
%>
<%=num/0%>
</body>
</html>
ErrorHandlePage.jsp:
<%--
Created by IntelliJ IDEA.
User: Poison
Date: 2021/11/26
Time: 19:10:34
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>ErrorHandlePage</title>
</head>
<body>
异常类型是:<%=exception.getClass()%><br>
异常信息是:<%=exception.getMessage()%><br>
<%
System.out.println("异常栈信息是:");
exception.printStackTrace();
%>
</body>
</html>
可以看到,进行错误处理时,并地址栏地址并没有改变,也证明是使用的forward来转发页面。
注意:需要在index.jsp设置错误处理页面,在错误处理页面设置isErrorPage属性为true。
1.4 out对象
out对象是JspWriter的一个实例,代表页面输出流,用于在页面上输出变量值和常量值。out对象就相当于JSP输出表达式。
实例展示:
<%
out.print("这是out对象产生的输出!");
%>
小结
以上就是JSP脚本中的9个内置对象中的config对象,exception对象和out对象的一些介绍,希望对读者有所帮助,如有不正之处,欢迎留言评论。