javaWeb--JSP三大指令和九大内置对象

来源:互联网 发布:建筑ar软件下载 编辑:程序博客网 时间:2024/05/16 19:54

一、JSP三大指令

1,page

(1)pageEncoding:指定当前jsp页面的编码,只要跟设置的编码方式是一致的,就不会有乱码。在服务器要把jsp编译成.java时,需要使用pageEncoding.

           Content-Type:表示一个响应头,等同于response.setContentType("text/html;charset=UTF-8");

以上两个属性只设置其中一个,那么另一个与之设置的值一样。

(2)import导入包。可以多次出现。<@ page import="java.util.*;">

(3)errorPage和isErrorPage

--》errorPage:当前页面如果抛出异常,会转发到哪一个页面。

--》isErrorPage:指定当前页面是否为处理错误的页面,这个页面会设置状态码为500,而且这个页面可以使用9大内置对象的exception。只有声明了isErrorPage="true"的页面才能使用exception

还可以通过在web.xml设置出错显示页面的信息,这时候就不用在页面中设置“errorPage="errorPage.jsp"”的属性了。代码如下:

<error-page>  <error-code>404</error-code>  <location>/errorpage/errorPage.jsp</location>  </error-page>  <error-page>  <error-code>500</error-code>  <location>/errorpage/errorPage.jsp</location>  </error-page>  <error-page>      <exception-type>java.lang.RuntimeException</exception-type>      <location>/index.jsp</location>  </error-page>

--》autoFlush和buffer

autoFlush:指定jsp的输出流缓冲区满时,是否自动刷新,默认为true,如果为false,那么缓冲区在满时会抛出异常;

buffer:指定缓冲区的大小,默认为8kb,通常不需要修改。

--》isELIgnored:是否忽略EL表达式,默认值为false。即不忽略EL表达式。

--》基本上不用的属性:

language:指定当前jsp编译后的语言类型,默认值为java。目前为止只能编译成java

info:信息

isThreadSafe:当前jsp是否支持并发访问,默认为false。允许并发。

session:当前页面是否支持session。如果为false,那么当前页面就没有session这个内置对象。

entends:让jsp生成的servlet去继承该属性指定的类。

2,include:静态包含

与RequestDispatcher的include()方法的功能相似。

两者的区别:

<%@include%>它是在编译成java文件时完成的共同生成一个java(就是一个servlet)文件,最后生成一个class。直接把被包含文件的代码包含进来,注意被包含页面不能在设置html的各种头信息了,直接写body内的内容即可。

RequestDispatcher的include()方法,包含和被包含的是两个servlet,即两个.class。他们只是把响应的内容在运行时合并了。

作用:把页面分解了,使用包含的方式组合在一起,这样页面中不变的部分,就是一个独立的jsp.

3,taglib:导入标签库

两个属性:

(1)prefix:指定标签库在本页面的前缀,有我们自己来起名称;

(2)url:指定标签库的位置

<%@taglib prefix="pre" url="/struts-tags"%>

<pre:text></pre:text>处多个理标签库中的名称冲突。例如a标签库有text标签,b标签库中也有text标签。那么为了区分这两个标签,会使用前缀。

二、九大内置对象:

记法:ORRCS APPE

out:等同于request.getWriter();输出数据

request:请求对象

response:响应对象

config:即对应被编译后的jsp文件中的ServletConfig

session:HttpSession类的对象

application:即ServletContext类的对象

page:当前JSP的真身类型,当前JSP页面的this,即当前对象

pageContext:页面上下文对象,它是一个域对象。

exception:只有在错误页面中使用这个对象

1.pageContext:一个顶九个

Servlet中有三个域。而JSP中有四个域。它就是JSP中最后一个域对象。setAttribute()、getAttribute()、removeAttribute()

--》ServletContext(application):整个应用程序

--》session:一次会话

--》request:一次请求

--》pageContext:当前JSP页面,这个域是在当前JSP页面和当前JSP页面中使用的标签之间共享数据。理解:在当前页面有两个空间,本页面和在本页面中使用的标签。

(1)可以代理其他域:pageContext.setAttribute("xxx","XXX",PageContext.SESSION_SCOPE);将xxx参数存到了session域中。

(2)全域查找:pageContext.findAttribute("xxx");从小域到大域,依次查找。大小域中存在同名的参数,那么小域优先级大于大域。非常重要

(3)可以获取其他8个内置对象:getPage(),getResponse().......


0 0