Java之JSP教程九大内置对象详解(上篇)

目录
  • JSP九大内置对象一览表
  • 九大内置对象
  • 四大域对象
  • JSP request对象
    • 示例
  • JSP response对象
    • 示例
  • JSP out对象
    • 示例

JSP九大内置对象一览表

为了简化页面的开发过程,JSP 提供了一些内置对象。

JSP 内置对象又称为隐式对象,它们由容器实现和管理。

在 JSP 页面中,这些内置对象不需要预先声明,也不需要进行实例化,我们可以直接在脚本和表达式中使用。

注意:JSP 内置对象只能在脚本和表达式中使用,在声明中不能使用。

九大内置对象

JSP 中定义了 9 个内置对象。

它们分别是:request、response、session、application、out、pagecontext、config、page 和 exception,这些对象在客户端和服务器端交互的过程中分别完成不同的功能。

JSP 的内置对象主要有以下特点:

  • 由 JSP 规范提供,不用编写者实例化;
  • 通过 Web 容器实现和管理;
  • 所有 JSP 页面均可使用;
  • 只有在脚本元素的表达式或代码段中才能使用。

四大域对象

在 JSP 九大内置对象中,包含四个域对象。

它们分别是:pageContext(page 域对象)、request(request 域对象)、session(session 域对象)、以及 application(application 域对象)。

JSP 中的 4 个域对象都能通过以下 3 个方法,对属性进行保存、获取和移除操作。

  • void:setAttribute(String name, Object o)  将属性保存到域对象中
  • Object:getAttribute(String name)  获取域对象中的属性值
  • void:removeAttribute(String name)  将属性从域对象中移除

JSP 中的 4 个域对象的作用域各不相同,如下。

page:如果把属性保存到 pageContext 中,则它的作用域是 page。

该作用域中的属性只在当前 JSP 页面有效,跳转页面后失效。

request:如果把属性保存到 request 中,则它的作用域是 request。

该作用域中的属性只在当前请求范围内有效。服务器跳转页面后有效,例如jsp:forward;客户端跳转页面后无效,例如超链接。

session:如果把属性保存到 session 中,则它的作用域是 session。

该作用域中的属性只在当前会话范围内有效,网页关闭后失效。

application如果把属性保存到 application 中,则它的作用域是 application。

该作用域中的属性在整个应用范围内有效,服务器重启后失效。

JSP request对象

JSP request 是 javax.servlet.http.HttpServletRequest 的实例对象,主要用来获取客户端提交的数据。

request 对象提供了一系列方法,可以获取请求参数信息、表单数据、HTTP 头信息、cookie 和 HTTP 请求方法等。

示例

在 index.jsp 页面使用 getHeaderNames() 方法获取 HTTP 头信息,并遍历输出参数名称和对应值。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h2>获取HTTP请求头信息</h2>
    <table width="100%" border="1" align="center">
        <tr bgcolor="#949494">
            <th>参数名称</th>
            <th>参数值</th>
        </tr>
        <%
            Enumeration headerNames = request.getHeaderNames();
            while (headerNames.hasMoreElements()) {
                String paramName = (String) headerNames.nextElement();
                out.print("<tr><td>" + paramName + "</td>\n");
                String paramValue = request.getHeader(paramName);
                out.println("<td> " + paramValue + "</td></tr>\n");
            }
        %>
    </table>
</body>
</html>

运行结果如下:

JSP response对象

JSP response 是 javax.servlet.http.HttpServletResponse 的实例对象。response 对象和 request 对象相对应,主要用于响应客户端请求,将处理信息返回到客户端。

response 对象的常用方法如下:

  • void addHeader(String name, String value):添加头信息(参数名称和对应值)
  • void addCookie(Cookie cookie):添加 cookie 信息
  • void sendRedirect(String location):实现页面重定向
  • void setStatus(int sc):实现页面的响应状态代码
  • void setContentType(String type):设置页面的 MIME 类型和字符集
  • void setCharacterEncoding(String charset):设定页面响应的编码类型

示例

下面在 login.jsp 新建表单,在 checkdetails.jsp 接收 login.jsp 提交的用户名和密码,与指定的用户名和密码相比,相同则登录成功,重定向到 success.jsp;反之登录失败,重定向到 failed.jsp。

login.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h2>用户登录</h2>
    <form action="checkdetails.jsp">
        用户名: <input type="text" name="username" /> 

        密码: <input type="text" name="pass" /> 

        <input type="submit" value="登录" />
    </form>
</body>
</html>

checkdetails.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <%
        String username = request.getParameter("username");
        String password = request.getParameter("pass");
        if (username.equals("biancheng") && password.equals("bianchengbang")) {
            response.sendRedirect("success.jsp");
        } else {
            response.sendRedirect("failed.jsp");
        }
    %>
</body>
</html>

success.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h2>登录成功!</h2>
</body>
</html>

failed.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h2>登录失败,用户名或密码错误!</h2>
</body>
</html>

运行结果如下所示:

登录页面(输入正确的用户名和密码)

登录成功页面

登录页面(输入错误的用户名)

登录失败页面

JSP out对象

JSP out 是 javax.servlet.jsp.JspWriter 的实例对象。

out 对象包含了很多 IO 流中的方法和特性,最常用的就是输出内容到 HTML 中。

out 对象的常用方法如下:

  • void print():将内容直接打印在 HTML 标签中
  • void println():类似于 print,唯一区别是 println 方法添加了换行符
  • void newLine():输出换行字符
  • void clear():清除页面缓冲区
  • boolean isAutoFlush():检查页面是否自动清除缓冲区

示例

out 对象的方法相对比较简单,一般情况下很少使用。

下面我们使用 out 对象的 print、println 和 newLine 方法将内容输出到 HTML 中。index.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <%
        out.print("欢迎来到编程帮,");
        out.newLine();
        out.println("我们的网址是:");
        out.print("www.biancheng.net");
    %>
</body>
</html>

运行结果如下:

index.jsp运行结果

注意:这里的 println 与 newLine 换行指的是 HTML 代码换行,并不是页面显示的换行。页面显示换行需要在代码后面加标签。

到此这篇关于Java之JSP教程九大内置对象详解(上篇)的文章就介绍到这了,其他两个部分的内容(中、下篇)请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JSP中九大内置对象和四种属性范围详解

    JSP中九大内置对象和四种属性范围详解 一般对象需要实例化才可以调用,而JSP的内置对象是不用实例化就可以直接调用的对象. 总共有9个,对应如下表: 序号 对象 类型 1 pageContext javax.servlet.jsp.PageContext 2 request javax.servlet.http.HttpServletRequest 3 response javax.servlet.http.HttpServletResponse 4 session javax.servlet.

  • jsp内置对象及方法详细介绍

    jsp提供了的9个内置对象,下面jsp的9大内置对象方法说明 内置对象 类型 作用域 request javax.servlet.http.HttpServletRequest request response javax.servlet.http.HttpServletResponse response pageContext javax.servlet.jsp.PageContext page session javax.servlet.http.HtpSession session app

  • 详解JSP 内置对象request常见用法

    request 对象是 HttpServletRequestWrapper 类的实例.它的继承体系如下: _request 对象继承层次结构图.png ServletRequest 接口的唯一子接口是 HttpServletRequest ,HttpServletRequest 接口的唯一实现类 HttpServletRequestWrapper ,单从 request 对象一脉单传的类继承体系可以看出,javaweb 标准类库只支持了 http 协议. Servlet/JSP 中大量使用了接口

  • jsp内置对象

    JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1.request对象 request对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据.(包括头信息.系统信息.请求方式以及请求参数等). request对 象的作用域为一次请求. String s = request.getParameter("xxxx");//接

  • 浅析JSP的9大内置对象和4大作用域对象

    一.9大内置对象 二.4大内置作用域对象 以上这篇浅析JSP的9大内置对象和4大作用域对象就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Java之JSP教程九大内置对象详解(中篇)

    目录 前言 JSP session对象 拓展 JSP application对象 示例 JSP config对象 前言 之前我们在这篇文章Java之JSP教程九大内置对象详解(上篇)中,讲解了三个对象,接下来我们讲解下面的三个对象 JSP session对象 JSP session 是 javax.servlet.http.HttpSession 的实例对象,主要用来访问用户数据,记录客户的连接信息. HTTP 协议是一种无状态的协议(即不保存连接状态的协议).每次用户向服务器发出请求,且服务器

  • jsp的九大内置对象深入讲解

    jsp中的内置对象,是指 Tomcat在翻译jsp页面成为 Servlet源代码后,内部提供的九大对象,叫内置对象,内置的意思就是本身就有,我们可以直接用. 特别request对象,可以帮助我们很便捷的处理servlet请求转发. 四个域对象 request是一次请求内有效,比如我写一个请求转发的语句,转发跳到另一个界面后,该域还可以访问,但是再请求一次就不能访问该域了. session重启浏览器后不能访问,可以理解为该域保存在浏览器中. application可以认为是保存在本地web工程中,

  • Java之JSP教程九大内置对象详解(下篇)

    目录 前言 JSP pageContext对象 示例 JSP page对象 示例 JSP Cookie的使用 JSP 使用 cookie 主要分为以下几个步骤. 创建 cookie 对象 写入 cookie 设置 cookie 有效期 读取cookie 示例 读取cookie 删除cookie session和cookie的区别 前言 之前我们在这篇文章Java之JSP教程九大内置对象详解中,已经讲解完了六个个对象,接下来我们讲解最后的三个对象 JSP pageContext对象 pageCon

  • JSP内置对象:Request和Response的简单介绍及使用

    JSP内置对象之request对象客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例.序号 方 法 说 明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLen

  • 浅谈jsp九大内置对象及四个作用域

    request           请求对象             类型 javax.servlet.ServletRequest        作用域 Request response          响应对象              类型 javax.servlet.SrvletResponse        作用域 Page pageContext       页面上下文对象        类型 javax.servlet.jsp.PageContext       作用域 Page

随机推荐