<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    想飛就別怕摔

    大爺的并TM罵人

    j2ee基礎知識(一)【request&response】

    request    response    pageContext    session    application    out    config    page    exception

    JSP中屬性的保存范圍:

    ★在JSP中可以采用下面方法來設置和取得屬性:
        →    設置屬性:public abstract void setAttribute(java.lang.String.name,java.lang.Object.atrribute)
        →    去的屬性:public abstract java.lang.Object getAttribute(java.lang.String.name)
    ★在JSP中提供了四種屬性保存范圍:
        →    在一個頁面范圍內:page
    在JSP中設置一個頁面屬性范圍,必須通過pageContext完成。pageContext屬性范圍:是最為重要的JSP 屬性之一,但是如果使用純粹的JSP代碼開發,此屬性顯現不出作用。在struts等就極其重要;
        →    在一次服務器請求范圍內:request
    request保存在一次請求范圍之內前提:必須使用服務器端跳轉<jsp:forward/>
        →    在一次會話范圍內:session
    設置了Session保存范圍后不管什么跳轉,都可以取得屬性。session的主要功能是驗證用戶是否登陸。
        →    在一個應用服務器范圍內:application
    application屬性范圍值,只要設置一次,則說有的網頁窗口都可以取得數據,主要用于在線人員統計。

    application、request、session→都需要跨多個頁,屬性保存是有開銷的,過多的application和session會導致性能下降,所以能使用request就不要使用session,能使用session就不要使用application。如果釋放application只能重新啟動服務器。

    ■頁面的中文亂碼問題:
    1、頁面顯示的亂碼處理:<%@page context="test/html,charset=gbk"%>
    2、頁面傳遞的亂碼處理:①對所有的數據進行在編碼:ISO8859-1
                                                  ②設置同意字符編碼
    如:

    <%@page contentType="text/html,charset=gbk"%>
    <HTML>
     
    <HEAD>
      
    <TITLE></TITLE>
     
    </HEAD>
     
    <BODY>
        //方法一:
      
    <%
        
    String name = request.getParameter("username");
        
    byte[]b = name.getBytes("ISO8859-1");
        name 
    = new String(b);
      
    %>
      方法一可寫為:
      
    <%
        
    String name = new String(request.getParameter("username").getBytes("ISO8859-1"));
      
    %>
      //方法二:
      
    <%
        request.setCharacterEncoding(
    "GBK");
        
    String name = request.getParameter("username");
      
    %>
      
    <h1>輸入內容為:<%=name%></h1>
     
    </BODY>
    </HTML>

    ■如果傳遞的內容是數組(復選框、多個下拉列表)使用request的一下方法取得數據
    例:

    <html>
    <body>
        
    <form action="demo08.jsp" method="post">
            用戶名:
    <input type="text" name="uname"><br>
            密碼:
    <input type="password" name="upass"><br>
            興趣:
            
    <input type="checkbox" name="**inst" value="籃球">籃球
            
    <input type="checkbox" name="**inst" value="游泳">游泳
            
    <input type="checkbox" name="**inst" value="唱歌">唱歌
            
    <input type="checkbox" name="**inst" value="跳舞">跳舞
            
    <input type="checkbox" name="**inst" value="看書">看書
            
    <br>
            
    <input type="submit" value="提交">
        
    </form>
    </body>
    </html>

    使用request.getParameterNames()方法取得數據

    <%@ page contentType="text/html;charset=gbk"%>
    <%@ page import="java.util.*"%>
    <html>
    <body>
    <%
        
    // 接收內容
        request.setCharacterEncoding(
    "GBK") ;
        Enumeration enu 
    = request.getParameterNames() ;
    %>
    <%
        
    while(enu.hasMoreElements())
        {
            
    String name = (String)enu.nextElement() ;
            
    if(name.startsWith("**"))
            {
                
    String temp[] = request.getParameterValues(name) ;
    %>
                
    <h1><%=name%> -->
    <%
                
    for(int i=0;i<temp.length;i++)
                {
    %>
                    
    <%=temp[i]%>
    <%
                }
    %>
                
    </h1>
    <%
            }
            
    else
            {
    %>
                
    <h1><%=name%> --> <%=request.getParameter(name)%></h1>
    <%
            }
        }
    %>
    </h1>
    </body>
    </html>

    用request.getParamaterValues()方法取得數據

    <%@ page contentType="text/html;charset=gbk"%>
    <html>
    <body>
    <%
        request.setCharacterEncoding(
    "gbk");
        
    String name = request.getParameter("uname");
        
    String inst[] = request.getParameterValues("inst");
    %>
    <h1>用戶名為:<%=name%></h1>
    <h1>興趣為:
    <%
        
    for(int i=0;i<inst.length;i++)
        {
    %>
        
    <%=inst[i]%>
    <%
        }
    %>
    </h1>
    </body>
    </html>

    ■向服務器傳值還可以使用隱藏域<input type="hidden" name="name" value="aaa">;
      還可以使用地址重寫傳遞數據到服務器端。
    ■取得客戶端的IP地址:<%=request.getRemoteAddr()%>

    ★response的主要功能:
    1、最有用用的一個頭信息:refresh:刷新
    例:

    <%@page contentType="text/html;charset=gb2312"%>
    <%!
        
    // 此處為全局變量,初始化一次
        
    int i = 0 ;
    %>
    <%
        
    // 一秒種刷新一次,每次使i自增
        response.setHeader(
    "refresh","2;URL=responseDemo02.jsp") ;
    %>
    <h1><%=i++%></h1>
    兩秒后跳轉到歡迎頁!!!
    <br>
    如果沒有跳轉,請按
    <href="responseDemo02.jsp">這里</a>!!!

    2、response跳轉與forward跳轉
    ①<jsp:forward page=""/>
        ■    地址欄不改變跳轉----服務器端跳轉
        ■    執行跳轉語句后無條件立即跳轉----之后的代碼不再被執行
        ■    使用forward時,request設置的屬性依然能保留在下一個頁面(setAttrbute)
        ■    通過<jsp:param name="" value=""/>傳遞參數
    ②response.sendRedirect("地址")
        ■    地址欄改變跳轉----客戶端跳轉
        ■    所有代碼執行完畢后跳轉
        ■    不能保存request屬性,地址欄改變
        ■    通過URL地址的重寫傳遞參數
    3、設置cookie,cookie是服務器端保存在客戶端的一組資源,例如登錄時會問你是否記住密碼等等。此功能的實現就是通過cookie。
    例:

    <%
        Cookie c1 
    = new Cookie("name","mldn") ;
        Cookie c2 
    = new Cookie("password","LXH") ;

        
    // 保存時間為60秒
        c1.setMaxAge(
    60) ;
        c2.setMaxAge(
    60) ;
    %>
    <%
        
    // 通過response對象將Cookie設置到客戶端
        response.addCookie(c1) ;
        response.addCookie(c2) ;
    %>

     

    <%
        
    // 通過request對象,取得客戶端設置的全部Cookie
        
    // 實際上客戶端的Cookie是通過HTTP頭信息發送到服務器端上的
        Cookie c[] 
    = request.getCookies() ;
    %>
    <%
        
    for(int i=0;i<c.length;i++)
        {
            Cookie temp 
    = c[i] ;
    %>
            
    <h1><%=temp.getName()%> --> <%=temp.getValue()%></h1>
    <%
        }
    %>

    cookie默認只對當前瀏覽器有效,如果長留要設置cookie的保存時間

    ■session對象
        -session對象主要用于保存用戶的各種信息,知道他的生命周期(一般為900S)超時或被人為地釋放掉為止。
        -可以通過session對象來判斷此用戶是否是合法用戶。
    1、在服務器上通過session來區分每一個用戶,用戶只要已連接服務器,則立刻分配一個session給用戶。
    2、Session的主要方法:
        ■    服務器上通過Session來區分用戶(SessionID):任何鏈接到服務器上的用戶,服務器都會為之分配一個
              唯一的SessionID,sessionID由服務器同意管理,人為不能控制。
        ■    獲得sessionID的方法,session.getId();,session的長度為32位。
        ■    通過session可以驗證用戶是否登陸
        ■    判斷當前的session是否是新建立的session方法:session.isNew();
        ■    session的屬性設置:
              設置屬性:public void setAttribute(Stirng name,Object value)
              取得屬性:public void getAttribute(String name)
              刪除屬性:public void removeAttrbute(String name)
        ■    讓session失效,也就是通常用的用戶注銷
              手動注銷:public void invalidate()
              自動注銷:session長時間不被使用則自動會注銷
        ■    得到session的創建時間:public long getCreationTime();此方法返回long類型,通過Date類可以取得一個完整的
               時間。
        ■    取得用戶最后一次的操作時間:public long getLastAccessedTime()

    posted on 2008-12-19 10:58 生命的綻放 閱讀(1097) 評論(0)  編輯  收藏 所屬分類: S2SH

    <2008年12月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導航

    統計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 无限动漫网在线观看免费| 四虎影视精品永久免费网站| 亚洲综合无码精品一区二区三区 | 久久亚洲AV成人无码国产电影 | 亚洲一区二区三区高清不卡| 亚洲AV无码专区在线观看成人| 2020久久精品国产免费| 亚洲 欧洲 日韩 综合在线| 免费大片黄在线观看yw| 亚洲国产最大av| 免费看片A级毛片免费看| 无码一区二区三区亚洲人妻| 全部免费国产潢色一级| 日韩在线观看视频免费| 自拍偷自拍亚洲精品被多人伦好爽| 三上悠亚在线观看免费| 亚洲欧洲日产国码久在线观看| 桃子视频在线观看高清免费视频| 亚洲视频在线一区二区三区| 成人精品一区二区三区不卡免费看| 亚洲精品国精品久久99热一| 国产精品亚洲综合天堂夜夜| 亚洲av麻豆aⅴ无码电影| 一本色道久久综合亚洲精品蜜桃冫 | mm1313亚洲精品国产| 国产成人无码免费网站| 色吊丝永久在线观看最新免费| 在线91精品亚洲网站精品成人| 浮力影院亚洲国产第一页| 国产婷婷成人久久Av免费高清| 亚洲第一页在线观看| 国产国产人免费人成免费视频| 亚洲人成电影青青在线播放| 日韩高清免费在线观看| a级毛片免费高清视频| 亚洲人成电影福利在线播放| 成人毛片免费观看视频在线| 亚洲AV无码一区二区三区在线| 国产高清免费在线| 青柠影视在线观看免费高清| 亚洲人成免费电影|