web開發日記-JSP內置對象2

Session

Session相當于一個服務器端的保管箱,服務器發送Sessionid給客戶端,當客戶端返回數據時,將會通過sessionid來判斷客戶端的唯一性。

Session常用方法

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>session</title>
</head>
<body>
session的唯一表示符<%=
    session.getId()
%><br />

session的創建時間<%=
   new java.util.Date(session.getCreationTime()).toString()
%><br />

session的最后訪問時間<%=
    new java.util.Date(session.getLastAccessedTime()).toString()//使用Data對象將時間變為Data類型字符串
%><br />

session的失效時間<%=
    session.getMaxInactiveInterval()
%><br />

</body>
</html>

在/WEB-INF/web.xml中 可以設置session失效時間,時間以分鐘為單位,設置session-timeout,更改默認失效時間。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1">
   <session-config>
       <session-timeout>
       15
       </session-timeout>
   </session-config>
</web-app>

PS :Mac下有一個很好用的API查詢軟件Dash

Session會話小實例 登陸退出的會話功能

功能簡介:四個頁面 login.jsp do_login.jsp logout.jsp welcome.jsp.
login收集表單數據 傳給do_login 進行處理,而后驗證通過后,轉入welcome頁面。
logout行為觸發后清空session對象,而后轉入welcome歡迎新用戶注冊登錄。

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>login</title>
</head>
<body>
<form action="/SessionDemo/do_login.jsp" method="post">
    userName:<input type="text" name="userName" />
    password:<input type="password" name="password"/>
    <input type="submit" value="submit" />

    </form>
</body>
</html>

do_login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String userName = request.getParameter("userName");
    String password = request.getParameter("password");
    if (userName != null && password != null) {
        session.setAttribute("userName", userName);//在session中添加一個鍵值對
        response.setHeader("refresh", "2;URL=/SessionDemo/welcome.jsp");//設置刷新 跳轉到welcome頁面
    }
%>

welcome.jsp session.isNew()方法判斷是否時新創建的

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>welcome</title>
</head>
<body>
<%
    if (session.getAttribute("userName") != null) {%>
歡迎:<%=session.getAttribute("userName")%>
<a href="/SessionDemo/logout.jsp">注銷</a>
<br />
<%}else{%>
請先登陸
<a href="/SessionDemo/login.jsp">登錄</a>
<%}%>
<%if(session.isNew()){   //判斷是否是新創建的%>
歡迎新用戶!
<%}else{%>
    歡迎老用戶!
<%}%>


</body>
</html>

logout.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    session.invalidate();//登出時直接干掉整個session對象,清除的非常徹底
    response.setHeader("refresh", "2;URL=/SessionDemo/welcome.jsp");//響應到welcome
%>

JSP內置對象 Application

Application代表的是目前的應用程序,存在于服務器的系統內存中,一旦應用啟動就會創建一個Application對象。Application生命周期更長,為用戶使用全局信息提供了方便。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>application</title>
</head>
<body>
服務器信息<%=
application.getServerInfo()
%><br/>
應用名稱<%=
application.getServletContextName()
%><br/>
主機名稱<%=
application.getVirtualServerName()
%><br/>


</body>
</html>

Application對象是如何共享信息的

頁面訪問計數器

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>counter</title>
</head>
<body>
<%
    Object obj = application.getAttribute("counter");//獲取鍵值對
    if (obj == null) {//看鍵值對是否為空,為空則第一次訪問,不為空 則計數累計
        application.setAttribute("counter", new Integer(1));//保存鍵值對到application中
        out.println("頁面被訪問了1次");
    }else{
        int counterValue = Integer.parseInt(obj.toString());//創建計數標記值
        //若不為空,則將計數加一輸出
        ++counterValue;
        out.println("該頁面被訪問了" + counterValue + "次<br />");
        application.setAttribute("counter",counterValue);//最后將變化后的值保存到application對象中
    }

    //java中會自動將int類型的值轉化成一個Integer對象 進行一個裝箱操作
%>
</body>
</html>

內置對象Config

在配置文件和servlet中更常用,在jsp中較少直接用內置Config對象。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、JSP內置對象簡介 JSP內置對象是Web容器創建的一組對象,不使用new關鍵字就可以使用的內置對象。開發者可...
    年少懵懂丶流年夢閱讀 3,811評論 0 8
  • 本文目錄: JSP基礎 Cookie HttpSession JSP基礎 JSP(Java Server Page...
    極客圈閱讀 541評論 0 3
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • w72歲的王大爺是湖南株洲的農民,2013年底他在兒子居住的深圳小區菜市場盤下一個攤位賣菜,1年賺了50多萬,王大...
    Luzy大神閱讀 271評論 0 3
  • 一. 室內裝飾設計要素 1.空間要素。空間的合理化并給人們以美的感受是設計基本的任務。要勇于 探索時代、技術賦于空...
    禾二斗閱讀 995評論 6 23