JSP的9大内嵌变量及四大作用域对象

一、JSP介绍

1、JSP概述

        JSP全名为Java Server Pages(java服务器页面),JSP是一种混合静态HTML和JAVA代码,并且能动态生成HTML的技术.

        JSP是一种服务器端脚本语言,其本质是个Servlet,index.jsp在访问的时候首先会自动将该页面翻译生一个index_jsp.java文件,即Servlet代码,以Tomcat为例在安装目录的/work子目录下。

       D:\Tomcat\apache-tomcat-8.0.52\work\Catalina\localhost\ROOT\org\apache\jsp

      打开index_jsp.java文件看你会发现这个类继承了类HttpJspBase. 而这个类继承了HttpServlet。因此JSP页面在本质上就是Servlet程序,而Servlet程序要被WEB容器调用执行,必须在WEB.XML中注册映射,对于JSP,这些则由WEB容器自动完成。

2、JSP和Servlet的区别。

相同点:

         JSP本质就是一个servlet

不同点

         JSP:

                   编译时,是一个.jsp文件 ,里面可以直接写html+css+javascript+java

                   主要用于视图层

         Servlet:是一个java文件,只能写java代码

                   主要用于控制层

JSP文件有两种形态:

             编译时态的JSP文件

             运行时态servlet对象

JSP工作

          第一次请求jsp时,会生成.java的文件 并且编译成对应的.class字节码文件

          创建对应的servlet对象 以servlet程序的形式运行。

 

二、JSP页面的9大内嵌变量(隐含对象)

        打开index_jsp.java,找到service()方法,Tomcat自动翻译jsp文件时,自动声明的几个类型的变量。

       

        

       这8个变量已经由Tomcat自动在转化jsp页面为Servlet的时自动声明定义了,所以在jsp页面可直接使用,不需要在声明。把这些变量叫内嵌变量(隐含变量),对应的类型就是隐含对象。还有一个exception变量,共9个内嵌变量:

        request,response,pageContext,session,application,config,out,page,exception

简单说明:

Request:其实就是Servlet中的HttpServletRequet,代表来自客户端的请求,最常用的对象。取得请求参数

Reponse:其实就是Servlet中的HttpServletReponse,代表对客户端的响应,在jsp页面中基本不用的

Out(等价于resp.getWriter()):输出到浏览器,out.println("在浏览器中输出的内容");常用

Session:代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session” 对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。在当前会话中有效,新会话中无效,,经常用。

application:其实就是ServletContext的一个对象实例,代表当前Web应用,对象负责提供应用程序在服务器中运行时的一些全局信息。在当前web应用中有效

Config:对象提供一些配置信息。获取jsp在web.xml文件中配置的初始化参数,基本不用。

Pagecontext:称作“页面上下文”对象,代表当前页面运行的一些属性。可以通过它获取到其他8个变量对应的对象,自定义标签的时候会用到。

Page:代表了正在运行的由JSP文件产生的对应的Servlet类对象,不使用。

exception:此对象不能在一般JSP文件中直接使用,只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用。

按作用分为:

输入输出:request,response,out

作用域之间通信:session,application,pageContext,request

Servlet对象:page,config

错误对象:Execpiton

 

三、JSP中四大作用域对象

pageContext,request,session,application

总结四个域对象的作用域范围:

    PageContext(页面作用域):只在当前面页的一次请求中数据是有效的

    Request(请求作用域):1次请求中数据是有效的,只能是转发

    Session(会话作用域):1次会话中数据是有效的(浏览器不关),不论转发还是重定向

    Application(全局作用域):在当前web应用中,:只要服务器不关数据都是有效的,不论转发还是重定向,不论多个新会话,例如:在线访问计数器

非常常用的方法

    setAttribute(name, value):设置属性

    getAttribute(name):根据属性名字,获取属性的值

    getAttributeNames():获取所有属性名字,以枚举类型返回

    removeAttribute(name):移除指定名字的属性

猜你喜欢

转载自blog.csdn.net/qq_42402854/article/details/85029057