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

目录
  • 前言
  • JSP session对象
    • 拓展
  • JSP application对象
    • 示例
  • JSP config对象

前言

之前我们在这篇文章Java之JSP教程九大内置对象详解(上篇)中,讲解了三个对象,接下来我们讲解下面的三个对象

JSP session对象

JSP session 是 javax.servlet.http.HttpSession 的实例对象,主要用来访问用户数据,记录客户的连接信息。

HTTP 协议是一种无状态的协议(即不保存连接状态的协议)。每次用户向服务器发出请求,且服务器接收请求并返回响应后,该连接就被关闭了,服务器端与客户端的连接被断开。此时,服务器端不保留连接的有关信息,要想记住客户的连接信息,就用到了 session 对象。

在 login.jsp 页面登录,并跳转到 index.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="index.jsp">
        用户名: <input type="text" name="username" /> <br> <br>
        密码: <input type="text" name="pass" /> <br> <br>
        <input type="submit" value="登录" />
    </form>
</body>
</html>

在 index.jsp 中,使用 session.setAttribute() 方法将用户名存储到 session 对象中,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <%
        String username = request.getParameter("username");
        out.print("欢迎" + username + "登录");
        session.setAttribute("sessname", username);
    %>
    <a href="success.jsp" rel="external nofollow" >跳转成功页面</a>
</body>
</html>

在 success.jsp 中,使用 session.getAttribute() 方法获取 session 对象中的用户名,并显示。success.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <%
        String name = (String) session.getAttribute("sessname");
        out.print("您好,您的用户名为:" + name);
    %>
</body>
</html>

运行结果如下图所示:

login.jsp运行结果

index.jsp运行结果

index.jsp运行结果

拓展

如果使用的是 Tomcat 服务器,可以在 web.xml 文件中添加以下内容来设置 session 的有效时间:

<session-config>
    <session-timeout>15</session-timeout>
</session-config>

这里单位是分钟,即表示 session 对象的有效时间为 15 分钟,Tomcat 默认有效时间为 30 分钟。

如果在 web.xml 中配置的是15分钟,则 getMaxInactiveInterval( ) 方法返回 900。

JSP application对象

JSP application 是 javax.servlet.ServletContext 的实例对象。

在服务器部署应用和项目时,Web 容器仅创建一次 ServletContext 实例,也就是说 application 设置的任何属性和值可以用于整个应用(所有 JSP 页面)。

可以将 application 对象看作 Web 应用的全局变量。一

般用于保存应用程序的公用数据。

application 对象在 Web 应用运行时一直存在于服务器中,非常占用资源,因此在实际开发中不推荐使用,否则容易造成内存不足等情况。

application 对象常用方法如下:

  • Object getAttribute(String attributeName):获取 attributeName(属性名称)对应的 object
  • void setAttribute(String attributeName, Object object):设置attributeName对应的属性值
  • Enumeration getAttributeNames():返回 application 对象中所有的 attributeName
  • void removeAttribute(String objectName):删除 application 对象中指定 attributeName 的属性
  • String getServerInfo():获取当前 Servlet 的版本信息
  • String getRealPath(String value):获取指定文件的实际路径

示例

可以使用 application 对象来保存 JSP 页面的访问人数,也就是我们常说的网站计数器,下面通过一个例子来演示。

index.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <%
        Integer count = (Integer) application.getAttribute("count");
        if (count == null) {
            count = 1;
        } else {
            count++;
        }
        application.setAttribute("count", count);
    %>
    <h2>编程帮网站计数器</h2>
    欢迎访问编程帮,您是第<%=count%>位访问客户!
</body>
</html>

运行结果如下:

首次访问count为1

连续刷新页面count增加

JSP config对象

JSP config 是 javax.servlet.ServletConfig 的实例对象,一般用于获取页面和 Servlet 的初始化参数。

  • config 对象的常用方法如下:
  • String getInitParameter(String paramname):获取指定的初始化参数值
  • Enumeration getInitParameterNames():获取当前页面所有的初始化参数值
  • ServletContext getServletContext():获取当前执行 Servlet 的 servletContext(Servlet 上下文)的值
  • String getServletName():获取当前执行 Servlet 的名称

示例

在 web.xml 文件中定义 Servlet 名称和映射,然后使用 config 对象获取信息。

web.xml 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <servlet>
        <servlet-name>BianChengBangServlet</servlet-name>
        <jsp-file>/index.jsp</jsp-file>
        <init-param>
            <param-name>url</param-name>
            <param-value>http://www.biancheng.net</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>BianChengBangServlet</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
</web-app>

在 index.jsp 页面获取 Servlet 名称以及初始化参数,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <%
        String sname = config.getServletName();
        String url = config.getInitParameter("url");
        out.print("Servlet名称为:" + sname + "<br>");
        out.print("初始化参数为:" + url + "<br>");
    %>
</body>
</html>

运行结果如下:

注意:因为 JSP 页面的实质是 Servlet,所以一般很少在 JSP 页面中使用 config 对象。

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

(0)

相关推荐

  • 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的9大内置对象和4大作用域对象

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

  • 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内置对象:Request和Response的简单介绍及使用

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

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

    目录 JSP九大内置对象一览表 九大内置对象 四大域对象 JSP request对象 示例 JSP response对象 示例 JSP out对象 示例 JSP九大内置对象一览表 为了简化页面的开发过程,JSP 提供了一些内置对象. JSP 内置对象又称为隐式对象,它们由容器实现和管理. 在 JSP 页面中,这些内置对象不需要预先声明,也不需要进行实例化,我们可以直接在脚本和表达式中使用. 注意:JSP 内置对象只能在脚本和表达式中使用,在声明中不能使用. 九大内置对象 JSP 中定义了 9 个

  • jsp内置对象

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

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

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

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

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

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

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

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

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

随机推荐