zoukankan      html  css  js  c++  java
  • JSP 9个内置对象

    JSP内置对象(隐式对象)是JSP容器为每个页面自动实例化的一组对象,开发者可直接使用,也被称为预定义变量。

    JSP容器提供了9个内置对象

    request  // javax.servlet.http.HttpServletRequest接口类型的引用变量
    response  // javax.servlet.http.HttpServletResponse接口类型的引用变量
    out  // javax.servlet.jsp.JspWriter抽象类类型的引用变量
    config  // javax.servlet.ServletConfig接口类型的引用变量
    page // javax.servlet.jsp.HttpJspPage接口类型的引用变量
    pageContext // javax.servlet.jsp.PageContext抽象类类型的引用变量 session // javax.servlet.http.HttpSession接口类型的引用变量 application // javax.servlet.ServletContext接口类型的引用变量 exception // java.lang.Throwable类类型的引用变量

    request

    类型:javax.servlet.http.HttpServletRequest接口类型的引用变量

    描述:来自客户管的请求经由Servlet容器处理后,由request对象进行封装。注意,客户端和服务器的一次通信就是一次请求

    作用域:request

    重要方法:

    request.getParameter(name)  // 获取参数的值,参数可以通过表单或URL的token提交
    request.getParameterValues(name)  // 获取表单参数的一组数据,用于可以选多个值的表单
    request.setAttribute(name, value)  // 设置请求对象的属性 属性的作用域是整个request
    request.getattribute(name)  // 获取请求对象的属性
    request.setCharacterEncoding("UTF-8")  // 设置请求数据的编码
    request.getRequestDispatacher("list.jsp").forward(request, response)  // 服务器内进行转发 

    response

    类型:javax.servlet.http.HttpServletResponse接口类型的引用变量。

    描述:该对象封装了JSP的响应,然后发送到客户端以响应客户端的请求。

    作用域:page

    重要方法:

    response.setContentType("text/html")  // 设置响应的类型
    response.setCharacterEncoding("UTF-8")  //  设置响应的编码
    response.sendRedirect("跳转的页面")  // 页面跳转

    out

    类型:javax.servlet.jsp.JspWriter抽象类的引用变量,类似于通过HttpServletResponse.getWriter()方法获得的java.io.PrintWriter对象。

    public abstract class JspWriter extends java.io.Writer
    public class PrintWriter extends java.io.Writer

    主要用来向客户端输出数据

    作用域:page,即每个页面都有一个自己的out内置对象

    重要方法:print() / println() / writer()

    config

    类型:javax.servlet.ServletConfig接口类型的引用变量。

    描述:本JSP页面的ServletConfig

    作用域:page

    pageContext

    类型:javax.servlet.jsp.PageContext抽象类的引用变量。

    描述:当前JSP页面的上下文(上下文可以联系到当前页面的所有信息)

    作用域:page

    public abstract class PageContext extends JspContext
    public abstract class JspContext extends java.lang.Object

    该抽象类提供了有用的上下文信息,并可以通过该对象来获得各种Servlet的相关对象。如

    // 以下方法并不常用,可直接使用内置变量
    getRequest()  // 得到内置对象 request
    getResponse()  // 得到内置对象  response
    getOut()  // 得到内置对象 out
    getServletConfig()  // 得到内置对象  config
    getpage()  // 得到内置对象 page
    getSession()  // 得到内置对象  session
    getServletContext()  // 得到内置对象  application
    getException()  // 得到内置对象 exception
    // 以下方法用于获取和设置属性
    getAttribute(name)
    getAtrribute(name, scope)
    findAtrribute(name)
    setAttribute(name, value)
    setAttribute(name, value, scope)
    removeAttribute(name)
    removeAttribute(name, scope)

    page

    类型:javax.servlet.JspPage接口类型的引用变量,JspPage接口继承Servlet接口。

    描述:page内置对象代表当前JSP页面本身,类似于Java中的this指针。

    作用域:page

    public interface JspPage extends javax.servlet.Servlet

    在Servlet接口的5个方法的基础上又增加了2个方法

    session

    类型:javax.servlet.http.HttpSession接口类型的引用变量。服务器自动为每个用户创建一个session对象,用于存储会话过程中的数据,从而跟踪用户的操作状态。

    描述:该对象表示一个会话,用来保存用户信息,以便跟踪每个用户的状态,但是不要用来保存业务数据(业务数据用表单提交,request对象获取)。

    作用域:session

    重要方法:

    session.getId()  // 获取该session的JSESSIONID号,由Servlet容器自动产生。
    session.isNew()  // 判断该session是否是新建的
    session.setAttribute(name, value)  // 设置当前会话中的属性
    session.getAttribute(name)  // 获取当前会话中的属性
    session.removeAttribute(name)  // 删除当前会话中的属性
    session.setMaxInactiveInterval(ms)  // 设置当前会话的失效时间。Tomcat默认的会话时间是30分钟
    session.invalidate()  // 初始化当前会话,删除会话中的数据

    结束会话的三种方式

    1)关闭服务器
    2)手动终止会话
    3)会话过期(默认是30分钟)

    application

    类型:javax.servlet.ServletContext接口类型的引用变量。

    描述:从 Servlet配置对象获得的Servlet上下文。该对象的声明周期最长,服务器启动的时候就会创建application对象,直到服务器被关闭,该对象只有一个,被所有用户共享。

    作用域:application

    exception

    类型:java.lang.Throwable类型的引用变量。

    描述:当前JSP页面的异常对象

    作用域:page

    实例

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ page import="java.util.Enumeration" %>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>JSP Implicit Objects</title>
    </head>
    <body>
    <b>Http headers:</b> 
    <br />
    <%
        for(Enumeration<String> e = request.getHeaderNames(); e.hasMoreElements();){
            String header = e.nextElement();
            out.println(header + ": " + request.getHeader(header) + "<br />");
        }
    %>
    <hr />
    <%
        out.println("Buffer size: " + response.getBufferSize() + "<br />");
        out.println("Session id: " + session.getId() + "<br />");
        out.println("Servlet name: " + config.getServletName() + "<br />");
        out.println("servlet info: " + application.getServerInfo());
    %>
    </body>
    </html>

  • 相关阅读:
    访友
    幼儿园分班
    求一个数的平方根
    计数器
    连续数组的最大和
    给定一个权重数组,实现一个带权重的路由策略
    两个超长字符串相加
    参数解析(得到输入参数)
    对字符串中的所有单词进行倒排。
    推荐PHP程序员进阶的好书
  • 原文地址:https://www.cnblogs.com/0820LL/p/9840374.html
Copyright © 2011-2022 走看看