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

前言

之前我们在这篇文章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"%>





    

用户登录

用户名: 密码:

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

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>





    <%
        string username = request.getparameter("username");
        out.print("欢迎" + username + "登录");
        session.setattribute("sessname", username);
    %>
    跳转成功页面 

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

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>





    <%
        string name = (string) session.getattribute("sessname");
        out.print("您好,您的用户名为:" + name);
    %>

运行结果如下图所示:

login.jsp运行结果

index.jsp运行结果

index.jsp运行结果

拓展

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

     15 

这里单位是分钟,即表示 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.*"%>





    <%
        integer count = (integer) application.getattribute("count");
        if (count == null) {
            count = 1;
        } else {
            count++;
        }
        application.setattribute("count", count);
    %>
    

编程帮网站计数器

欢迎访问编程帮,您是第<%=count%>位访问客户!

运行结果如下:

首次访问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 代码如下:

              bianchengbangservlet         /index.jsp                      url             http://www.biancheng.net                            bianchengbangservlet         /index      

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

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>





    <%
        string sname = config.getservletname();
        string url = config.getinitparameter("url");
        out.print("servlet名称为:" + sname + "
");
        out.print("初始化参数为:" + url + "
");
    %>

运行结果如下:

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

相关文章