Content

Java之JSP教程九大内置对象详解(中篇)(jsp九大内置对象的常用方法)全程干货

文章摘要

本文介绍了JSP编程中常用的三个内置对象:`session`、`application` 和 `config`,并结合实际示例进行了详细讲解。 1. **`session` 对象** 主要用于存储用户数据和客户端的连接信息。通过`session.setAttribute()` 和`session.getAttribute()` 方法管理用户信息。例如,在登录页面`login.jsp`中存储用户名,在成功页面`success.jsp`中获取并显示用户名。 2. **`application` 对象** 是`ServletContext`的实例对象,用于存储应用程序的全局属性。通过`getAttribute()` 和`setAttribute()` 方法获取和设置值。虽然可以用于保存访问人数等全局信息,但存在高内存占用问题,不建议在实际开发中频繁使用。 3. **`config` 对象** 是`ServletContext`的实例对象,主要用于获取页面的初始化参数。通过`getInitParameter()` 和`getServletName()` 方法访问配置信息。通常在Servlet中使用,但在JSP页面中使用较少。 总结:`session` 对象用于用户数据存储,`application` 对象用于全局属性管理,`config` 对象用于初始化参数获取。这些对象在JSP编程中具有不同的用途,选择合适的对象可以提升应用程序的功能和性能。


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

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

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=”https://www.jb51.net/article/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 是 javax.servlet.ServletContext 的实例对象。

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

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

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

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

application 对象常用方法如下:

Object getAttribute(String attributeName):获取 attributeName(属性名称)对应的 objectvoid setAttribute(String attributeName, Object object):设置attributeName对应的属性值Enumeration getAttributeNames():返回 application 对象中所有的 attributeNamevoid 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 是 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教程九大内置对象详解(中篇)的文章就介绍到这了,其他两个部分的内容(上、下篇)请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Java之JSP教程九大内置对象详解(上篇)jsp的九大内置对象深入讲解详解JSP 内置对象request常见用法JSP中九大内置对象和四种属性范围详解jsp内置对象浅谈jsp九大内置对象及四个作用域浅析JSP的9大内置对象和4大作用域对象JSP内置对象:Request和Response的简单介绍及使用jsp内置对象及方法详细介绍Java之JSP教程九大内置对象详解(下篇)