Jsp学习(二)

内置对象

1、定义

  • JSP内置对象是Web容器创建的一组对象,不使用new关键字创建,就可以直接使用。
  • 在xxx_jsp.java 文件中对内置对象做了声明,由容器实现和管理,在所有的Jsp页面中都能使用内置对象,内置对象在JSP初始化时生成。

JSP的9个标准内置对象

1、application

  • 是 ServletContext 类型

2、request

  • 是HttpServletRequest类型

3、response

  • 是HttpServletResponse类型

4、page

  • 和this是同一个对象
  • 是一个servlet

5、session

  • 是HttpSession类型

6、config

  • 是ServletConfig类型
  • 在web.xml中配置初始化参数(使用jsp-file标签制定特定的jsp页面):
              
    
        JspConfig
        指定要使用config的jsp的页面
        
            name
            Edward
        
    
    
    
        JspConfig
        /config.do
            

测试案例:

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






config



    

InitParameter : <%=config.getInitParameter( "name") %>

   






    
        config.do
        /builtin/config.jsp
        
            name
            罗玉凤
        
    

    
        config.do
        /config.do
    





    
        config.do
        /builtin/config.jsp
        
            name
            罗玉凤
        
    

    
        config.do
        /config.do
    

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





JSP的9个标准内置对象



    

JSP的9个标准内置对象

  • application
    1. <%out.println(application); %>
    2. <%= application %>
    3. application 是否是 ServletContext 类型: <%=application instanceof ServletContext%>
  • request
    1. <%=request %>
    2. request 是否是 HttpServletRequest 类型: <%=request instanceof HttpServletRequest%>
  • response
    1. <%= response %>
    2. response 是否是 HttpServletResponse 类型: <%= response instanceof HttpServletResponse %>
  • session
    1. <%=session %>
    2. session 是否是 HttpSession 类型: <%= session instanceof HttpSession %>
  • pageContext
    1. <%= pageContext %>
    2. pageContext 是否是 PageContext 类型: <%= pageContext instanceof PageContext %>
    3.           
    4. pageContext
  • out
    1. <%=out %>
    2. out 是否是 JspWriter 类型: <%=out instanceof JspWriter %>
  • config
    1. <%= config %>
    2. config 是否是 ServletConfig 类型: config instanceof ServletConfig %>
    3. config ( jsp )
    4. config ( servlet )
  • exception
    1. throw
  • page
    1. <%= page %>
    2. page 和 this 是否是 同一个对象: <%=page == this %>
    3. page 是否是 一个 Servlet : <%=page instanceof Servlet %>

运行结果如下:

JSP页面配置其实也是在web.xml文件中的进行,JSP被当成Servlet配置,为Servlet配置参数使用init-param元素,config内置对象就可以接受param-name和param-value分别指定参数名和参数值。 

7、out

  • 是JspWriter类型
  • JspWriter直接继承了Writer

8、exception

  • 对于要处理异常的页面,需要声明这是一个错误指令页面
<%@ page isErrorPage = "true" %>
  • 在可能发生异常的页面,需要制定错误处理页面
<%@ page errorPage= "catch.jsp"%>
  • 针对特定的错误页面处理:

在web.xml中配置(针对特定错误代码或者异常类型)


    错误代码
    异常类型
    发生错误去的页面

测试案例:

<%@ page language = "java" pageEncoding = "UTF-8" %>
<%@ page contentType = "text/html; charset= UTF-8" %>
<%@ page errorPage= "catch.jsp"%>





throw



    

在可能发生异常的页面中使用 <%@ page errorPage="catch.jsp" %> 指定错误处理页面

<%=100 / 0 %>

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





exception



    

对于要负责处理异常的页面,首先需要通过指令声明这是一个错误处理页面

只有声明了 <%@ page isErrorPage="true" %> 的页面才会有 exception 对象存在

exception : <%= exception %>

exception message : <%=exception.getMessage()%>

运行结果如下:

内部发生的是forward操作,浏览器地址没有发生改变

Jsp学习(二)_第1张图片

 404页面处理测试案例:

    
        404
        /builtin/404.jsp
    ·
<%@ page language = "java" pageEncoding = "UTF-8" %>
<%@ page contentType = "text/html; charset= UTF-8" %>






404



    

404

你所访问的页面被外星人劫持了

9、pageContext

  • 是PageContext类型(PageContext是JspContext的子类)
  • 可以通过pageContext获得其他内置对象

测试案例:

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





pageContext


    

application:<%=pageContext.getServletContext()%>

request:<%=pageContext.getRequest()%>

response:<%=pageContext.getResponse() %>

session:<%=pageContext.getSession()%>

config:<%=pageContext.getServletConfig() %>

page:<%=pageContext.getPage()%>

out:<%=pageContext.getOut()%>

exception:<%=pageContext.getException()%>


Eexpresssion Language:<%=pageContext.getExpressionEvaluator()%>

转载请于明显处标明出处

https://www.cnblogs.com/AmyZheng/p/9129504.html

你可能感兴趣的:(Jsp,JavaWeb)