how2j.cn


工具版本兼容问题
JSP的隐式对象指的是不需要显示定义,直接就可以使用的对象,比如request,response

JSP一共有9个隐式对象,分别是
request,response,out

pageContext, session,application

page,config,exception

步骤 1 : request,response,out   
步骤 2 : pageContext, session,application   
步骤 3 : page   
步骤 4 : config   
步骤 5 : exception   

步骤 1 :

request,response,out

这三个已经很熟悉了
request 代表请求 请参考 request常见方法
response 代表响应 请参考 response 用法
out 代表 输出
步骤 2 :

pageContext, session,application

pageContext 代表当前页面作用域

session 代表当会话作用域

application 代表当全局作用域

更多的关于作用域的请参考 作用域
步骤 3 :

page

page 对象即表示当前对象
JSP 会被编译为一个Servlet类 ,运行的时候是一个Servlet实例。 page即代表this
page
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> page:<%=page%> <br> this:<%=this%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
     
page:<%=page%>
<br>
this:<%=this%>
步骤 4 :

config

config可以获取一些在web.xml中初始化的参数。
在JSP中使用config比较复杂,需要如下几个步骤
1. 在web.xml中进行配置
2. 创建一个testconfig.jsp
通过config.getInitParameter("database-ip") 获取参数
3. 访问路径,获取web.xml中配置的参数

http://127.0.0.1/testconfig

注1: 不能通过 http://127.0.0.1/testconfig.jsp 获取参数,只能通过/testconfig路径

注2:
这种用法不常见,不推荐使用
<servlet> <!-- 把 testconfig.jsp配置为一个 servlet --> <servlet-name>testconfig</servlet-name> <jsp-file>/testconfig.jsp</jsp-file> <!-- 配置初始化参数 --> <init-param> <param-name>database-ip</param-name> <param-value>127.0.0.1</param-value> </init-param> </servlet> <!-- 将路径 testconfig映射到testconfig.jsp --> <servlet-mapping> <servlet-name>testconfig</servlet-name> <url-pattern>/testconfig</url-pattern> </servlet-mapping>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> database-ip: <%=config.getInitParameter("database-ip")%>
步骤 5 :

exception

exception 对象只有当前页面的<%@page 指令设置为isErrorPage="true"的时候才可以使用。

同时,在其他页面也需要设置 <%@page 指令 errorPage="" 来指定一个专门处理异常的页面。

1. 准备一个try.jsp
设置errorPage="catch.jsp",表示有异常产生的话,就交给catch.jsp处理
故意在里面造成数组越界异常

2. 准备一个catch.jsp
设置 isErrorPage="true",表示当前页面可以使用exception对象
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="catch.jsp"%> <% int[] a = new int[10]; a[20] = 5; %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" errorPage="catch.jsp"%>

<%
	int[] a = new int[10];
	a[20] = 5;
%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%> <%=exception%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" isErrorPage="true"%>
	
<%=exception%>


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-03-02 这种用法不常用的话,什么方法常用呢?
GGGISGGG
这种用法不常用的话,什么方法常用呢?xml里面初始化的参数有什么用途呢?








答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2017-09-14 exception
OnePunch



老师,这里会调用errorPage.jsp的原理是类似服务端跳转吗? 我在存在异常的代码之前写了个输出元素并没有显示。
<%@page language="java" contentType="text/html;charset=GBK"
	pageEncoding="GBK" import="java.util.*" errorPage="catch.jsp"%>

<%=666%>
	
<%
	int[] a = new int[5];
	a[10] = 1;
%>

							


1 个答案

how2j 答案时间:2017-09-15
<%=是在当前页面输出,即便是输出你也看不见了呀~




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-09-13 config
2017-09-13 config
2017-07-11 exception




提问之前请登陆
关于 J2EE-JSP-隐式对象 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 620943819
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图