Javaweb笔记(二)-jsp三大指令

jsp有三大指令,分别为:page,include,taglib

page:<%@ 属性1=属性值 属性2=属性值 ......%>

  • pageEncoding-->当前页面编码格式 在服务器将jsp编译成.java文件时使用的编码格式;
  • contentType:表示一个响应头。类似于response.setContentType("text/html;charset=utf-8");
    注意:
      1.如果两个属性中出现一个属性,则另一了未出现的属性设置的值与已经设置的值保持一致;
      2.如果两个属性都没有设置,则默认职位iso;
  • import:导包操作,类似java导包
  • errorPage:如果当前页面出现错误,指定跳转的页面
  • isErrorPage:指定当前页面是否为处理错误的页面,当该属性为true,这个页面会设置状态码500,且当前页面可以使用jsp中9大内置对象中的exception;
      web.xml文件中配置错误页面:
      标签的配置方式
        1.
        2.
  • autoFlush和buffer:
      autoFlush:指定jsp页面输出流缓冲区满时是否自动刷新!默认为true,如果为false时,在缓冲区满时会抛出异常;
      buffer:指定缓冲区默认大小8k,通常不需要修改;
  • isELIgnored:是否忽略el表达式,默认false;

基本没有用的属性:

  • language:当前jsp页面变以后的语言
  • info:信息;
  • isThreadSafe:当前jsp是否支持并发访问
  • session:当前页面是否支持session,如果为false,当前页面没有session内置对象;
  • extends:让jsp生成的servlet去继承指定的类;

include:静态包含

  <%@inculde%> 它是在jsp编译成.java文件是完成的,引入的多个jsp文件最终在编译时生成一个servlet文件,然后再生成一个.class文件
  同样是包含,在处理转发时存在动态包含(留头不留尾),requset.getRequestDispatcher()的include方法,是涉及到两个servlet,在运行时候将内容进行合并;
  踩坑系列:在jsp页面中使用inclide标签时,file属性为文件的真实路径,不能是jsp中代码的变量;
  原因:在jsp静态包含(include)中,在编译的时候是将两个jsp页面进行合并最终生成一个servlet.java文件,然后对应生成.class文件,这个从jsp->.class过程中,只进行了代码的编译操作;如果file的属性值变为jsp代码的变量,则这个变量是在编译之后,运行程序之后执行的,所以在file属性为变量时,编译过程不知道变量的具体值是什么,从而发生错误;
  用途:增加代码的可重用性。


taglib:导入标签库:<%@taglib prefix="****" uri="*****"%>

  • prefix:指定标签库在本页面中使用的前缀名称,自定义名称
  • uri:指定标签库的位置

你可能感兴趣的:(Javaweb笔记(二)-jsp三大指令)