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

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

pageContext, session,application

edit
pageContext 代表当前页面作用域

session 代表当会话作用域

application 代表当全局作用域

更多的关于作用域的请参考 作用域
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%>
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")%>
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公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-11-14 隐式对象
lmxdd

关于 J2EE-JSP-隐式对象 的提问
隐式对象就是内置对象吧







回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-05-17 捕获到异常之后是500吗
戴拿奥特曼

关于 J2EE-JSP-隐式对象 的提问
页面显示500,可以在控制台打印输出




2 个答案

百岁
答案时间:2020-06-13
用Chrome浏览器试试,我用eclipse内置的也是500换了就好了

Kai08
答案时间:2020-05-17
500是服务器异常,可能是你的代码写错了,还有其他的一些异常代码,比如404找不到路径资源



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2019-12-13 增加xml不会报错吗
2018-03-02 这种用法不常用的话,什么方法常用呢?
2017-09-14 exception


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 1 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 J2EE-JSP-隐式对象 的提问

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

上传截图