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

2023-07-12 0 2,208

目录

前言

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

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>

运行结果如下图所示:

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

login.jsp运行结果

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

index.jsp运行结果

Java之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>

运行结果如下:

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

首次访问count为1

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

连续刷新页面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>

运行结果如下:

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

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

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 Java之JSP教程九大内置对象详解(中篇) http://www.20zxx.cn/790974/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务