jsp的指令(用于&包含&错误处理)和内置对象

一: jsp: 

 html+ java代码+ jsp 的动作标签: 
 
 
 jsp的三大指令:

 
 (1)page指令: 


 <%@page  %>
         language="java"       
       import="java.util.*"   和 java 代码当中的import 关键字一致: 导入包的。   
       注意:(1)同一个import 关键字可以导入多个包。 多个包之间使用逗号间隔。 
                  (2)使用多个page 指令,  每个page指令导入一个包: 
                  (3) java.lang.*; 不需要导入
                在jsp 当中:  以下四个包不需要手动的导入。 
             import javax.servlet.*;
            import javax.servlet.http.*;
            import javax.servlet.jsp.*;
            import java.util.*;
                 
       案例: 
       <%@page  import ="java.util.*,java.io.*, java.net.*" %>
       
       等价于: 
         <%@page  import ="java.util.*" %>
         <%@page  import ="java.io.*" %>
         <%@page  import ="java.net.*" %>
     
     
     
   
   pageEncoding="UTF-8" :  

指定当前页面的编码方式: 
 contentType="text/html; charset=utf-8"  和 pageEncoding 的值 只需要设置其中一个即可。 
isElIgnore ="false";

 

当前的jsp 页面可以使用EL 表达式。 把值设置为true, 忽略EL表达式的使用。  
   session="true" 当前的jsp 页面是可以直接使用session 对象:

  如果设置为false 。, 当前的jsp 页面不能直接使用: 
 

 autoFlush="true"  out对象能够自动刷新: 


   buffer="8kb"  缓冲区默认大小8kb 。

 
   extends="" 指定当前jsp 被翻译成servlet 生成的一个父类: 
   isThreadSafe="true" 默认当前的jsp页面是线程异步,不安全。 当值设置为false , 此时jsp 页面编程同步。,线程安全的。 默认实现了接口: SingleThreadModel,一般不设置为false,线程安全瞎扯淡


   errorPage="error.jsp" 指定全局的错误页面: 当jsp 页面出现异常的时候, 跳转到指定的错误页面。 
   
   isErrorPage="false" ; 表明当前的页面不是一个错误处理的页面。 把值设置为true, 表明是一个是错误处理的页面。   错误处理的页面:为true时exception 对象可以直接使用。 
   

  •    全局错误页面的处理两种方法:

方法一:<!-- 配置一个错误的全局页面: 根据状态码进行配置:  -->
   (1)page: 当中指定errorPage="页面";;  
   (2)在web.xml当中配置: 
   
  <error-page>
      <error-code>404</error-code>
      <location>/error404.jsp</location>
  </error-page>
  
  <error-page>
      <error-code>500</error-code>
      <location>/error500.jsp</location>
  </error-page> 
  
 方法二 <!-- 根据错误的类型进行跳转:  -->
  <!-- <error-page>
      <exception-type>java.lang.RuntimeException</exception-type>
      <location>/runError.jsp</location>
  </error-page> -->
    
   
 (2)include指令: 
 <%@include  file="" %>  静态包含: 
 原理:    两个或者是多个jsp 文件 在翻译成servlet文件的时候,合并成一个。 这样包含称之为静态包含。 

 在编译阶段就合并

例子如下:

 

最终打印   hellow


 包含: 动态包含: 
    
 原理: 每一个jsp文件都翻译成一个servlet 文件。    最终是多个servlet 文件共同起作用:  

例子如下:
 
  
 
 (3)taglib 指令:  导入第三方的标签库: 
 <%@taglib  %>
 
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %>\
 uri: 第三库的地址: 
 prefix: 前缀名称; 自定义, 建议使用官方提供的c。 
 
 
 二: jsp 的九大内置对象:  jsp页面可以直接使用的对象: 考试的话要求能写出来 
  为什么能够直接使用? 
  jsp 被翻译成servlet 的时候,tomcat 在service方法当中 给初始化的对象: 
  
pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;

 内置对象的名称:                     内置对象的类型:                                            备注: 
 out                                             JspWriter                                        和servlet 当中PrintWriter 功能一致。 
 response                                  HttpServletResponse                       响应对象: 
 
 request                                      HttpServletRequest                       请求对象: 
 session                                     HttpSession                                 session="true" 表明当前的jsp页面可以直接使用session 对象:                                                                                                        设置为 false, session 对象不能直接使用: 
 application                                ServletContext                            上下文环境对象, 一个应用程序只能有一个: 
 exception                                  Throwable                                    Throwable 是所有异常的父异常。 
 config                                        ServletConfig                             当前servlet 的配置对象: 
 page                                          Object 类型:                              本质上this 对象, 定义的时候提升为Object 类型: 
 pageContext                            PageContext 类型:                     页面上下文对象(域对象)
 
总结: 
(1) myeclipse 工具在部署web 应用的时候,会自动加载四个jar 包文件在lib当中。 
(2) %@ 之间不能有任何的空格。 
(3) 三大指令可以存放在任意的位置, 不一定必须是开头。  习惯性的放在jsp 的开始位置: 

(4) 和域对象相关: pageContext  request session application(由小到大)
(5)补充用的: config  exception page 
(6) jsp 页面不能直接使用:  session exception
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-教育技术博主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值