Java之JSP教程九大內(nèi)置對象詳解(中篇)

前言

之前我們在這篇文章java之jsp教程九大內(nèi)置對象詳解(上篇)中,講解了三個對象,接下來我們講解下面的三個對象

jsp session對象

jsp session 是 javax.servlet.http.httpsession 的實例對象,主要用來訪問用戶數(shù)據(jù),記錄客戶的連接信息。

http 協(xié)議是一種無狀態(tài)的協(xié)議(即不保存連接狀態(tài)的協(xié)議)。每次用戶向服務(wù)器發(fā)出請求,且服務(wù)器接收請求并返回響應(yīng)后,該連接就被關(guān)閉了,服務(wù)器端與客戶端的連接被斷開。此時,服務(wù)器端不保留連接的有關(guān)信息,要想記住客戶的連接信息,就用到了 session 對象。

在 login.jsp 頁面登錄,并跳轉(zhuǎn)到 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);
    %>
    跳轉(zhuǎn)成功頁面 

在 # 中,使用 session.getattribute() 方法獲取 session 對象中的用戶名,并顯示。# 代碼如下:

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





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

運行結(jié)果如下圖所示:

login.jsp運行結(jié)果

index.jsp運行結(jié)果

index.jsp運行結(jié)果

拓展

如果使用的是 tomcat 服務(wù)器,可以在 web.xml 文件中添加以下內(nèi)容來設(shè)置 session 的有效時間:

     15 

這里單位是分鐘,即表示 session 對象的有效時間為 15 分鐘,tomcat 默認有效時間為 30 分鐘。

如果在 web.xml 中配置的是15分鐘,則 getmaxinactiveinterval( ) 方法返回 900。

jsp application對象

jsp application 是 javax.servlet.servletcontext 的實例對象。

在服務(wù)器部署應(yīng)用和項目時,web 容器僅創(chuàng)建一次 servletcontext 實例,也就是說 application 設(shè)置的任何屬性和值可以用于整個應(yīng)用(所有 jsp 頁面)。

可以將 application 對象看作 web 應(yīng)用的全局變量。一

般用于保存應(yīng)用程序的公用數(shù)據(jù)。

application 對象在 web 應(yīng)用運行時一直存在于服務(wù)器中,非常占用資源,因此在實際開發(fā)中不推薦使用,否則容易造成內(nèi)存不足等情況。

application 對象常用方法如下:

  • object getattribute(string attributename):獲取 attributename(屬性名稱)對應(yīng)的 object
  • void setattribute(string attributename, object object):設(shè)置attributename對應(yīng)的屬性值
  • enumeration getattributenames():返回 application 對象中所有的 attributename
  • void removeattribute(string objectname):刪除 application 對象中指定 attributename 的屬性
  • string getserverinfo():獲取當(dāng)前 servlet 的版本信息
  • string getrealpath(string value):獲取指定文件的實際路徑

示例

可以使用 application 對象來保存 jsp 頁面的訪問人數(shù),也就是我們常說的網(wǎng)站計數(shù)器,下面通過一個例子來演示。

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);
    %>
    

編程幫網(wǎng)站計數(shù)器

歡迎訪問編程幫,您是第<%=count%>位訪問客戶!

運行結(jié)果如下:

首次訪問count為1

連續(xù)刷新頁面count增加

jsp config對象

jsp config 是 javax.servlet.servletconfig 的實例對象,一般用于獲取頁面和 servlet 的初始化參數(shù)。

  • config 對象的常用方法如下:
  • string getinitparameter(string paramname):獲取指定的初始化參數(shù)值
  • enumeration getinitparameternames():獲取當(dāng)前頁面所有的初始化參數(shù)值
  • servletcontext getservletcontext():獲取當(dāng)前執(zhí)行 servlet 的 servletcontext(servlet 上下文)的值
  • string getservletname():獲取當(dāng)前執(zhí)行 servlet 的名稱

示例

在 web.xml 文件中定義 servlet 名稱和映射,然后使用 config 對象獲取信息。

web.xml 代碼如下:

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

在 index.jsp 頁面獲取 servlet 名稱以及初始化參數(shù),代碼如下:

<%@ 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("初始化參數(shù)為:" + url + "
");
    %>

運行結(jié)果如下:

注意:因為 jsp 頁面的實質(zhì)是 servlet,所以一般很少在 jsp 頁面中使用 config 對象。

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频