溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中JSP的session對(duì)象和config對(duì)象怎么使用

發(fā)布時(shí)間:2023-01-13 10:04:32 來(lái)源:億速云 閱讀:132 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Java中JSP的session對(duì)象和config對(duì)象怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java中JSP的session對(duì)象和config對(duì)象怎么使用”吧!

JSP session對(duì)象

JSP session 是 javax.servlet.http.HttpSession 的實(shí)例對(duì)象,主要用來(lái)訪問(wèn)用戶數(shù)據(jù),記錄客戶的連接信息。

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

在 login.jsp 頁(yè)面登錄,并跳轉(zhuǎn)到 index.jsp。login.jsp 代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h3>用戶登錄</h3>
    <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() 方法將用戶名存儲(chǔ)到 session 對(duì)象中,代碼如下:

<%@ 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" >跳轉(zhuǎn)成功頁(yè)面</a>
</body>
</html>

在 success.jsp 中,使用 session.getAttribute() 方法獲取 session 對(duì)象中的用戶名,并顯示。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>

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

Java中JSP的session對(duì)象和config對(duì)象怎么使用

login.jsp運(yùn)行結(jié)果

Java中JSP的session對(duì)象和config對(duì)象怎么使用

index.jsp運(yùn)行結(jié)果

Java中JSP的session對(duì)象和config對(duì)象怎么使用

index.jsp運(yùn)行結(jié)果

拓展

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

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

這里單位是分鐘,即表示 session 對(duì)象的有效時(shí)間為 15 分鐘,Tomcat 默認(rèn)有效時(shí)間為 30 分鐘。

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

JSP application對(duì)象

JSP application 是 javax.servlet.ServletContext 的實(shí)例對(duì)象。

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

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

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

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

application 對(duì)象常用方法如下:

  • Object getAttribute(String attributeName):獲取 attributeName(屬性名稱)對(duì)應(yīng)的 object

  • void setAttribute(String attributeName, Object object):設(shè)置attributeName對(duì)應(yīng)的屬性值

  • Enumeration getAttributeNames():返回 application 對(duì)象中所有的 attributeName

  • void removeAttribute(String objectName):刪除 application 對(duì)象中指定 attributeName 的屬性

  • String getServerInfo():獲取當(dāng)前 Servlet 的版本信息

  • String getRealPath(String value):獲取指定文件的實(shí)際路徑

示例

可以使用 application 對(duì)象來(lái)保存 JSP 頁(yè)面的訪問(wèn)人數(shù),也就是我們常說(shuō)的網(wǎng)站計(jì)數(shù)器,下面通過(guò)一個(gè)例子來(lái)演示。

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);
    %>
    <h3>編程幫網(wǎng)站計(jì)數(shù)器</h3>
    歡迎訪問(wèn)編程幫,您是第<%=count%>位訪問(wèn)客戶!
</body>
</html>

運(yùn)行結(jié)果如下:

Java中JSP的session對(duì)象和config對(duì)象怎么使用

首次訪問(wèn)count為1

Java中JSP的session對(duì)象和config對(duì)象怎么使用

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

JSP config對(duì)象

JSP config 是 javax.servlet.ServletConfig 的實(shí)例對(duì)象,一般用于獲取頁(yè)面和 Servlet 的初始化參數(shù)。

  • config 對(duì)象的常用方法如下:

  • String getInitParameter(String paramname):獲取指定的初始化參數(shù)值

  • Enumeration getInitParameterNames():獲取當(dāng)前頁(yè)面所有的初始化參數(shù)值

  • ServletContext getServletContext():獲取當(dāng)前執(zhí)行 Servlet 的 servletContext(Servlet 上下文)的值

  • String getServletName():獲取當(dāng)前執(zhí)行 Servlet 的名稱

示例

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

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 頁(yè)面獲取 Servlet 名稱以及初始化參數(shù),代碼如下:

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

運(yùn)行結(jié)果如下:

Java中JSP的session對(duì)象和config對(duì)象怎么使用

注意:因?yàn)?JSP 頁(yè)面的實(shí)質(zhì)是 Servlet,所以一般很少在 JSP 頁(yè)面中使用 config 對(duì)象。

到此,相信大家對(duì)“Java中JSP的session對(duì)象和config對(duì)象怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI