JSP的9个内置对象,4个常用对象
JSP的内置对象(9个)是可以直接使用的。
前五个例子如下(request,response,session,application,config):
主要提及下面四个对象(exception,page,out,pageContext):
1.exception:
其实这个对象用的比较少了。需要在可能出错的页面属性设置errorPage的路径,然后另外在exception对象所在jsp文件属性设置isErrorPage为true。完事。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="/JSP/1.jsp"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% int a = 10/0; %> </body> </html> ———————————————————————————————————————————————————————————————————————— <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h3>你好,服务器正在维护</h3> <%=exception.getMessage() %> </body> </html>
2.page
基本上不用。当前页面对象,指的就是自己。类似Java中的this关键字。当然了,JSP文件翻译成Java文件以后page对象的值就变成了this。在哪里找到编译后的文件?tomcat——work——cataline
3.out
out隐式对象得到的是JspWriter对象。在输出过程中会需要再次转换成response.getwrite()得到的PrintWriter对象才能输出。因此会有一个输出快慢的问题。response.getwrite()明显更快!
4.PageContext对象
PageContextx对象是一个域对象,还可以通过该对象获得其他8个对象。
1.可以向自己的域存东西
2.可以向其他的域存东西
* setAttribute(String name, Object value, int scope)
* getAttribute(String name, int scope)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h4>向pageContext域存取东西</h4> <% //下面两句等价 pageContext.setAttribute("name", "page"); pageContext.setAttribute("name", "page", pageContext.PAGE_SCOPE); //下面两句等价 request.setAttribute("name", "request"); pageContext.setAttribute("name", "request", pageContext.REQUEST_SCOPE); //类似的 pageContext.setAttribute("name", "session", pageContext.SESSION_SCOPE); //ServletContext是application的真是对象 pageContext.setAttribute("name", "pageContext", pageContext.APPLICATION_SCOPE); %> <%=pageContext.getAttribute("name",pageContext.PAGE_SCOPE) %> <%=pageContext.getAttribute("name",pageContext.REQUEST_SCOPE) %> <%=pageContext.getAttribute("name",pageContext.SESSION_SCOPE) %> <%=pageContext.getAttribute("name",pageContext.APPLICATION_SCOPE) %> </body> </html>
下一篇:
支付宝碎屏险究竟是怎么回事?靠谱么?