中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

漢川市建設(shè)局網(wǎng)站網(wǎng)絡(luò)營銷的優(yōu)化和推廣方式

漢川市建設(shè)局網(wǎng)站,網(wǎng)絡(luò)營銷的優(yōu)化和推廣方式,濟南做網(wǎng)站推廣有哪些公司,python 網(wǎng)站開發(fā) pdf目錄 會話管理預(yù)習(xí)報告 一、實驗?zāi)康? 二、實驗原理 三、實驗預(yù)習(xí)內(nèi)容 1. 什么是會話,一個會話的生產(chǎn)周期從什么時候,到什么時候結(jié)束? 2. 服務(wù)器是如何識別管理屬于某一個特定客戶的會話的? 3. 什么是Cookie,它的…

目錄

會話管理預(yù)習(xí)報告

一、實驗?zāi)康?/p>

二、實驗原理

三、實驗預(yù)習(xí)內(nèi)容

1. 什么是會話,一個會話的生產(chǎn)周期從什么時候,到什么時候結(jié)束?

2. 服務(wù)器是如何識別管理屬于某一個特定客戶的會話的?

3. 什么是Cookie,它的作用是什么?Cookie會給客戶端帶來安全隱患嗎?

4.如何使用隱藏表單域傳遞會話信息,一般用在什么情況下?

會話管理實驗報告

一、實驗?zāi)康?/p>

二、實驗要求

三、實驗內(nèi)容與步驟

1. 使用HttpSession對象管理會話。在名為exp04的Web項目下,創(chuàng)建一個名為ShowSessionInfo的Servlet,顯示當(dāng)前客戶的會話ID、會話創(chuàng)建時間、最近一次訪問會話的時間、該客戶訪問會話次數(shù)等信息,運行的結(jié)果要求如下圖所示。

2. 使用HttpSession會話對象設(shè)計一個GuessNumberServlet.java,實現(xiàn)簡單的猜數(shù)游戲:

?3. 編寫一個CheckUserServlet,通過Cookie實現(xiàn)自動登錄的功能。當(dāng)用戶以get方式請求該Servlet時,判斷來自請求的cookie中是否包含用戶的登錄名和口令,如果有判斷是否合法,如果通過驗證顯示歡迎信息;否則顯示登錄表單讓用戶重新填寫用戶名和口令,表單提交以post方式請求CheckUserServlet進行處理,如果用戶登錄成功并且勾選了“自動登錄”,則提示登錄成功,并向客戶端發(fā)送cookie信息保存用戶名和口令,否則提示登錄失敗,并在瀏覽器端顯示登錄表單讓用戶重新登錄。

4. 編寫HomeServlet.java,對通過超鏈接請求的兩個URL進行重寫,在瀏覽器中禁用Cookie后,servlet運行效果要求如下圖所示。

四、思考題

1. 如何理解會話失效與超時?如何通過程序設(shè)置最大失效時間?如何通過Web應(yīng)用程序部署描述文件設(shè)置最大超時時間?二者有什么區(qū)別?

2. 能否通過客戶機的IP地址實現(xiàn)會話跟蹤?

3. 假如開發(fā)的Web應(yīng)用程序是假設(shè)客戶支持Cookie的,但應(yīng)用程序部署后,你發(fā)現(xiàn)大多數(shù)客戶禁用了Cookie,這對應(yīng)用程序有何影響?如何修改它?


會話管理預(yù)習(xí)報告

一、實驗?zāi)康?/strong>

1. 了解Web服務(wù)器對客戶會話跟蹤的各種方法;

2. 重點掌握使用HttpSession對象跟蹤會話的方法;

3. 掌握使用Cookie技術(shù)跟蹤會話的方法;

4. 了解URL重寫和隱藏表單域的方法。

二、實驗原理

HTTP協(xié)議是無狀態(tài)的協(xié)議。在很多情況下,Web服務(wù)器必須能夠跟蹤客戶的狀態(tài)。比如,對于一個購物網(wǎng)站,在一個時刻可能有多個客戶購物,Web服務(wù)器必須能夠區(qū)分不同的客戶。一般情況下,Web服務(wù)器為每個客戶配置了虛擬的購物車(ShoppingCart)。當(dāng)某個客戶請求將一個商品放入購物車時,Web服務(wù)器必須根據(jù)發(fā)出請求的客戶的身份,找到該客戶的購物車,然后把商品放入其中。

Web服務(wù)器跟蹤客戶的狀態(tài)通常有4種方法:

(1)使用HttpSession對象管理會話;(2)使用持久的Cookie對象;(3)使用URL重寫機制;(4)使用隱藏的表單域。

三、實驗預(yù)習(xí)內(nèi)容

1. 什么是會話,一個會話的生產(chǎn)周期從什么時候,到什么時候結(jié)束?

會話:是客戶與服務(wù)器之間的不中斷的請求-響應(yīng)序列。

開始:當(dāng)一個未知的客戶向web應(yīng)用程序發(fā)送第一個請求時就開始了一個會話。

結(jié)束:當(dāng)客戶結(jié)束會話或服務(wù)器在一定時限內(nèi)沒有接到客戶任何請求時,會話結(jié)束。

2. 服務(wù)器是如何識別管理屬于某一個特定客戶的會話的?

一個客戶對應(yīng)一個會話,服務(wù)器能夠識別出請求來自于哪個客戶的會話。

3. 什么是Cookie,它的作用是什么?Cookie會給客戶端帶來安全隱患嗎?

Cookie:是客戶訪問Web服務(wù)器時,服務(wù)器在客戶端用戶硬盤上存放的信息,好像是服務(wù)器送給客戶的“點心”。Cookie實際上是一小段的文本信息。

作用:可以在客戶端上保存用戶數(shù)據(jù),起到簡單的緩存和用戶身份識別等作用;保存用戶的登陸狀態(tài),用戶進行登陸,成功登陸后,服務(wù)器生成特定的cookie返回給客戶端,客戶端下次訪問該域名下的任何頁面,將該cookie的信息發(fā)送給服務(wù)器,服務(wù)器經(jīng)過檢驗,來判斷用戶是否登陸;記錄用戶的行為。

安全問題:客戶可能認(rèn)為Cookie會帶來安全問題,因此禁用Cookie。事實上,Cookie并不會造成嚴(yán)重的安全威脅。Cookie永遠(yuǎn)不會以任何方式執(zhí)行,因此也不會帶來病毒或攻擊你的系統(tǒng)。另外,由于瀏覽器一般只允許存放300個Cookie,每個站點的Cookie最多存放20個,每個Cookie的大小限制為4 KB,因此Cookie不會塞滿你的硬盤,更不會被用作“拒絕服務(wù)”攻擊手段。

4.如何使用隱藏表單域傳遞會話信息,一般用在什么情況下?

在HTML頁面中,可以使用下面代碼實現(xiàn)隱藏的表單域:

?<input type="hidden" name="session" value="a1234">;

當(dāng)表單提交時,瀏覽器將指定的名稱和值包含在GET或POST的數(shù)據(jù)中。這個隱藏域可以用來存儲有關(guān)會話的信息。

會話管理實驗報告

一、實驗?zāi)康?/strong>

1. 了解Web服務(wù)器對客戶會話跟蹤的各種方法;

2. 重點掌握使用HttpSession對象跟蹤會話的方法;

3. 掌握使用Cookie技術(shù)跟蹤會話的方法;

4. 了解URL重寫和隱藏表單域的方法。

二、實驗要求

1. 實驗前進行預(yù)習(xí),完成實驗預(yù)習(xí)報告;

2.按照每一項實驗內(nèi)容進行上機實踐與編程,將程序源代碼和運行結(jié)果圖附在實驗報告中實驗內(nèi)容對應(yīng)的部分。

3. 實驗預(yù)習(xí)報告和實驗報告打印裝訂在一起。

4. 將每一次實驗的源代碼按目錄組織保存并壓縮,按照老師指定的要求進行提交。代碼保存方式如:exp04表示實驗四的Web項目的名稱,其下保存各項實驗內(nèi)容的源文件及相關(guān)資源,將整個exp04文件夾進行壓縮后命名為班級-姓名-實驗04,如計171-張三-實驗04。

三、實驗內(nèi)容與步驟

1. 使用HttpSession對象管理會話。在名為exp04的Web項目下,創(chuàng)建一個名為ShowSessionInfo的Servlet,顯示當(dāng)前客戶的會話ID、會話創(chuàng)建時間、最近一次訪問會話的時間、該客戶訪問會話次數(shù)等信息,運行的結(jié)果要求如下圖所示。

?

package exp04;import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;@WebServlet(name = "ShowSessionInfo", value = "/Show")
public class ShowSessionInfo extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=gb2312");HttpSession session = req.getSession(true);String heading = null;String info = "Information about your session";Integer accessCount = (Integer) session.getAttribute("accessCount");if (accessCount == null) {accessCount = new Integer(1);heading = "Welcome,enter this page first time! ";} else {heading = "Welcome Back! ";accessCount = accessCount + 1;}session.setAttribute("accessCount",accessCount);PrintWriter out = resp.getWriter();out.println("<HTML>");out.println("  <BODY><center>");out.println("<h2>"+heading + "</h2>" +"<h3>" +info+"</h3>");out.println("<table border='0'>");out.println("<tr bgcolor=\"ffad0\"><td><b>Info Type</b><td><b>Value</b>\n");out.println("<tr><td>ID:<td>"+session.getId()+"\n");out.println("<tr><td>Creation Time:<td>");out.println(""+new Date(session.getCreationTime())+"\n");out.println("<tr><td>Time of last access:<td>");out.println(""+new Date(session.getLastAccessedTime())+"\n");out.println("<tr><td>Access number:<td>"+accessCount+"\n");out.println("</table>");out.println(" </center> </BODY>");out.println("</HTML>");}
}

?

?

2. 使用HttpSession會話對象設(shè)計一個GuessNumberServlet.java,實現(xiàn)簡單的猜數(shù)游戲:

doget()方法顯示當(dāng)前會話的相關(guān)信息,產(chǎn)生一個1-100的隨機數(shù)并保存到session作用域中,顯示表單讓用戶輸入所猜數(shù)字,表單以post方式提交給該servlet本身進行處理。

dopost()方法中將用戶輸入的數(shù)字和session中保存的隨機數(shù)進行比較,如果用戶猜的結(jié)果正確,強制結(jié)束會話,通過超鏈接可以在此請求該Servlet重新開始一輪猜數(shù)游戲;如果結(jié)果錯誤,顯示錯誤提示信息和猜數(shù)表單,允許用戶重新猜數(shù)。

package exp04;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;@WebServlet(name = "GuessNumberServlet",value = "/GuessNumberServlet")
public class GuessNumberServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int num1 = (int)(Math.random()*101);HttpSession session = req.getSession();session.setAttribute("num",new Integer(num1));resp.setContentType("text/html;charset=utf-8");PrintWriter out = resp.getWriter();out.println("<html><body>");out.println("請猜一個0-100的數(shù)字!");out.println("<form action='GuessNumberServlet' method='post'>");out.println("<input type='text' name='guess' />");out.println("<input type='submit' value='提交'/>");out.println("</form>");out.println("</body></html>");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int guess = Integer.parseInt(req.getParameter("guess"));HttpSession session = req.getSession();int magic = (Integer)session.getAttribute("num");resp.setContentType("text/html;charset=utf-8");PrintWriter out = resp.getWriter();out.println("<html><body>");if(guess==magic){session.invalidate();out.println("猜對了!");out.println("<a href = 'GuessNumberServlet'>再猜一次.</a>");}else if(guess>magic){out.println("猜大了, 請重猜!");}else{out.println("猜小了, 請重猜!");}out.println("<form action='GuessNumberServlet' method='post'>");out.println("<input type='text' name='guess' />");out.println("<input type='submit' value='確定'/>");out.println("</form>");out.println("</body></html>");}
}

?

?

?

?

?

?

?3. 編寫一個CheckUserServlet,通過Cookie實現(xiàn)自動登錄的功能。當(dāng)用戶以get方式請求該Servlet時,判斷來自請求的cookie中是否包含用戶的登錄名和口令,如果有判斷是否合法,如果通過驗證顯示歡迎信息;否則顯示登錄表單讓用戶重新填寫用戶名和口令,表單提交以post方式請求CheckUserServlet進行處理,如果用戶登錄成功并且勾選了“自動登錄”,則提示登錄成功,并向客戶端發(fā)送cookie信息保存用戶名和口令,否則提示登錄失敗,并在瀏覽器端顯示登錄表單讓用戶重新登錄。

Checka.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>login</title>
</head>
<body>
${sessionScope.message}<br>
<form action="CheckUserServlet" method="post">請您輸入用戶名和口令:<br>用戶名:<input type="text" name="username"/><br>口令:<input type="password" name="password"/><br><input type="checkbox" name="check" value="check"/>自動登錄<br><input type="submit" value="提交"/><input type="reset" value="重置"/>
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>welcome</title>
</head>
<body>
<h1>歡迎你</h1>
</body>
</html>

CheckUserServlet:

package exp04;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/CheckUserServlet")
public class CheckUserServlet extends HttpServlet {String message=null;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");String value1 = "",value2="";Cookie cookie =null;Cookie[] cookies = req.getCookies();if(cookies!=null){for(int i=0;i<cookies.length;i++){cookie = cookies[i];if(cookie.getName().equals("username")){value1 = cookie.getValue();}if(cookie.getName().equals("password")){value2 = cookie.getValue();}}if (value1.equals("little bears")&&value2.equals("123456")){message = "Welcome!!!(*?▽?*)歡迎您!"+value1+"再次登錄該頁面!";req.getSession().setAttribute("message",message);resp.sendRedirect("check_second.jsp");}else {resp.sendRedirect("check_first.jsp");}}else {resp.sendRedirect("check_first.jsp");}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");String username = req.getParameter("username").trim();String password = req.getParameter("password").trim();if (!username.equals("little bears")||!password.equals("123456")){message = "o(╥﹏╥)o用戶名或口令不正確,請重試!";req.getSession().setAttribute("message",message);resp.sendRedirect("check_first.jsp");}else {if ((req.getParameter("check")!=null) && (req.getParameter("check").equals("check"))){Cookie nameCookie = new Cookie("username",username);Cookie pswdCookie = new Cookie("password",password);nameCookie.setMaxAge(60*60);pswdCookie.setMaxAge(60*60);resp.addCookie(nameCookie);resp.addCookie(pswdCookie);}message ="Welcome!!!(*?▽?*)登錄成功!";req.getSession().setAttribute("message",message);resp.sendRedirect("check_second.jsp");}}
}

check_first.html

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>login</title>
</head>
<body>
${sessionScope.message}<br>
<form action="CheckUserServlet" method="post">請您輸入用戶名和口令:<br>用戶名:<input type="text" name="username"/><br>口令:<input type="password" name="password"/><br><input type="checkbox" name="check" value="check"/>自動登錄<br><input type="submit" value="提交"/><input type="reset" value="重置"/>
</form>
</body>
</html>

check_second.html

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>welcome</title>
</head>
<body>
<h1>歡迎你</h1>
</body>
</html>

首次登錄

選擇自動登錄再次打開,已經(jīng)被記憶

密碼或者用戶名錯誤

?

4. 編寫HomeServlet.java,對通過超鏈接請求的兩個URL進行重寫,在瀏覽器中禁用Cookie后,servlet運行效果要求如下圖所示。

package exp04;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;@WebServlet("/HomeServlet")
public class HomeServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html; charset = utf - 8");
//HttpSession session=request.getSession();PrintWriter out = resp.getWriter();String url1 = resp.encodeURL("GuessNumberServlet");String url2 = resp.encodeURL("CheckUserServlet");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");out.print(" A test page showing two URLs:<br> ");out.println("<a href=\"" + url1 + "\">View GuessNumber Servlet</a><br>");out.println("<a href=\"" + url2 + "\">View CheckUser Servlet</a><br>");out.println("  </BODY>");out.println("</HTML>");}
}

四、思考題

1. 如何理解會話失效與超時?如何通過程序設(shè)置最大失效時間?如何通過Web應(yīng)用程序部署描述文件設(shè)置最大超時時間?二者有什么區(qū)別?

當(dāng)用戶在一個指定的期限內(nèi)處于不活動狀態(tài)時,就將用戶的會話終止,會話失效,超過設(shè)定時間終止是會話超時。public void setMaxInactiveInterval(int Interval)設(shè)置最大失效時間。在部署文件中下中設(shè)置最大超時時間。一個是通過編程方式設(shè)置,一個是在部署時就已設(shè)置。

2. 能否通過客戶機的IP地址實現(xiàn)會話跟蹤?

容器不能使用客戶的IP地址唯一標(biāo)識客戶。因為是通過局域網(wǎng)訪問Internet盡管在局域網(wǎng)中每個客戶有一個IP地址,但對于服務(wù)器來說,客戶的實際IP地址是路由器的IP地址,所以該局域網(wǎng)的所有客戶的IP地址都相同。

3. 假如開發(fā)的Web應(yīng)用程序是假設(shè)客戶支持Cookie的,但應(yīng)用程序部署后,你發(fā)現(xiàn)大多數(shù)客戶禁用了Cookie,這對應(yīng)用程序有何影響?如何修改它?

來自網(wǎng)站的所有Cookie都被阻止,并且計算機上現(xiàn)有的Cookie不能被網(wǎng)站讀取??稍贗nternet選項中設(shè)置。

http://www.risenshineclean.com/news/38351.html

相關(guān)文章:

  • 泉州做網(wǎng)站seo前端優(yōu)化網(wǎng)站
  • 做的圖怎么上傳到網(wǎng)站宣傳推廣方式有哪些
  • 哪個網(wǎng)站做外貿(mào)年費比較便宜宣傳渠道有哪些
  • 怎么看別人網(wǎng)站怎么做的網(wǎng)站頁面優(yōu)化內(nèi)容包括哪些
  • 網(wǎng)站建站行業(yè)公司主頁建設(shè)希愛力副作用太強了
  • 滄州商貿(mào)行業(yè)網(wǎng)站建設(shè)自己有域名怎么建網(wǎng)站
  • 做網(wǎng)站收會員費違法嗎網(wǎng)站外鏈平臺
  • 成都專門做公司網(wǎng)站的公司全網(wǎng)引擎搜索
  • 南通網(wǎng)站優(yōu)化深圳市社會組織總會
  • 網(wǎng)站建設(shè)做網(wǎng)站好嗎開發(fā)一個網(wǎng)站
  • 旅游網(wǎng)站規(guī)劃方案產(chǎn)品推廣介紹怎么寫
  • 如何用微信做網(wǎng)站百度關(guān)鍵詞搜索排名帝搜軟件
  • 求一個全部用div做的網(wǎng)站裂變營銷五種模式十六種方法
  • 深圳做網(wǎng)站最好的公司seo三人行網(wǎng)站
  • 大朗做網(wǎng)站蘇州優(yōu)化seo
  • 網(wǎng)站建設(shè)ktv惠州seo排名優(yōu)化
  • 網(wǎng)站建設(shè)6000元真實的優(yōu)化排名
  • 模板型網(wǎng)站建設(shè)網(wǎng)絡(luò)關(guān)鍵詞優(yōu)化軟件
  • 一級a做美國片免費網(wǎng)站優(yōu)化大師win10能用嗎
  • 整站wordpress下載今日最新頭條新聞條
  • qq電腦版官方網(wǎng)站策劃方案
  • 鄭州高端網(wǎng)站模板app地推接單平臺
  • 專業(yè)的做網(wǎng)站軟件國外免費發(fā)產(chǎn)品的b2b平臺
  • 先做它個天貓網(wǎng)站自己的網(wǎng)站怎么樣推廣優(yōu)化
  • 網(wǎng)站浮窗制作網(wǎng)站優(yōu)化推廣排名
  • 縉云縣城鄉(xiāng)建設(shè)局網(wǎng)站軟文技巧
  • 響應(yīng)式網(wǎng)站微博視頻百度圖片查找
  • 手機網(wǎng)站建設(shè)經(jīng)驗seo發(fā)展前景怎么樣啊
  • 如果給公司網(wǎng)站做網(wǎng)絡(luò)廣告廣州網(wǎng)站優(yōu)化費用
  • 怎么做跨境電商網(wǎng)站北京營銷公司比較好的