国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

servlet筆記

2019-11-09 18:58:03
字體:
來源:轉載
供稿:網友
servlet筆記tomcat清緩存1、把tomcat下的所有項目移除。并單擊右擊,cleaneclipse設置部署路徑若要更改server Locations,先把tomcat下的所有項目移除。并右擊,clean...之后方可設置。。。啟動后將又變為黑色默認選項為:Use workspace metadata(dose not modify Tomcat installation)修改選項為:Use Tomcat installation(takes control of Tomcat installation)? 會話現實生活中我們會用手機跟對方對話,拿起手機,撥號,然后對面接聽,跟著互相通話,最后會話結束。這個過程也可以用我們的B/S模式來描述:打開瀏覽器—>輸入地址->發出請求->服務器收到請求->向瀏覽器發出響應->..重復.->關閉瀏覽器這樣的過程我們用 “會話” 來描述,上面就一次會話的例子會話信息管理技術:Cookie技術: 會話數據保存在瀏覽器客戶端。session技術:會話數據保存在服務器端sessionSession存儲在服務器端,一般放置在服務器的內存中(為了高速存?。琒ession在用戶訪問第一次訪問服務器的服務時創建,需要注意只有訪問jsp、Servlet等程序時才會創建Session,只訪問HTML、IMAGE等靜態資源并不會創建Session。服務器會把長時間沒有活動的Session從服務器內存中清除,此時Session便失效。Tomcat中Session的默認失效時間為20分鐘常用方法,其中,name為String類型,value為Object類型:? session .setAttribute(“name”,value);添加某個屬性的值? session .getAttribute(“name”);獲取某個屬性的值? session .removeAttribute(“name”);移除某個屬性的值同一機器的兩個瀏覽器窗口訪問服務器時,會生成兩個不同的Session。但是由瀏覽器窗口內的鏈接、腳本等打開的新窗口(也就是說不是雙擊桌面瀏覽器圖標等打開的窗口)除外//獲取session HttpSession session = req.getSession();為單個Web應用 配置session超時時間可以在web.xml中使用<session-config>元素:<!--filter.listener,servlet,and servlet-mapping等元素要在session-config之前--> <session-config> <session-timeout>15</session-timeout> </session-config> 這個時候的“15”單位是分鐘!如果在配置Servlet是指定初始化參數決定超時時間,例如:<servlet> <servlet-name>Example</servlet-name> <servlet-class>exa.mp.le.Example2</servlet-class> <init-param> <param-name>timeout</param-name> <param-value>600</param-value> </init-param></servlet>這時候的“600”單位是秒鐘!跳轉方式sendRedirect()跳轉sendRedirect()方法的工作原理圖交互過程如下:1) 瀏覽器訪問Servlet1;2) Servlet1想讓Servlet2為客戶端服務;3) Servlet1調用sendRedirect()方法,將客戶端的請求重定向到Servlet2;4) 瀏覽器訪問Servlet2;5) Servlet2對客戶端的請求做出響應。我們可以看出,調用sendRedirect()方法,實際上是告訴瀏覽器Servlet2所在的位置,讓瀏覽器重新訪問Servlet2。調用sendRedirect()方法,會在響應中設置Location響應報頭。要注意的是,這個過程對于用戶來說是透明的,瀏覽器會自動完成新的訪問。而瀏覽器地址欄顯示的URL是重定向之后的URLresponse.sendRedirect("login.html"); 具體可以參考案例:sendRedirect()方法通過該方法可以將一個頁面的信息傳送給另外的頁面,比如:sendRedirect(“welcome?uname=aaa”);優點:傳送信息的速度比較快缺點:它只能傳送字符串,而不能傳送一個對象 sendRedirect(“welcome?uname=aaa”);注意點: 1.welcome代表你要跳轉的那個servlet的url 2.servlet url名和變量之間有個? 3.如要傳遞兩個以上的值,它們之間要用符號&分開,比如sendRedirect(“welcome?uname=aaa&passwd=123”); 4.如果傳遞的是中文,那你將得到亂碼,需要處理一下res.setContentType(“text/html,charset=gbk”);forward()跳轉交互過程如下:1) 瀏覽器訪問Servlet1;2) Servlet1想讓Servlet2對客戶端的請求進行響應,于是調用forward()方法,將請求轉發給Servlet2進行處理。3) Servlet2對請求請出響應。從上圖的交互過程可以看出,調用forward()方法,對瀏覽器來說是透明的,瀏覽器并不知道為其服務的Servlet已經換成Servlet2了,它只知道發出了一個請求,獲得了一個響應。而地址欄顯示的URL始終會是原始請求的URL。案例:如果傳給RequestDispatcher 的參數以"/"開頭,則訪問的是當前web應用的根目錄request.getRequestDispatcher("/index.html").forward(request, response);具體可以參考案例:無論是forward方法還是sendRedirect方法調用前面都不能有PRintWriter輸出到客戶端。forward方法報錯: java.lang.IllegalStateException: Cannot forward after response has been committedsendRedirect方法報錯:java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)cookie技術什么是Cookie技術:一種會話數據管理技術,該技術把會話數據保存在瀏覽器客戶端。比如登錄名、密碼 那么Cookie技術的原理是什么,它是如何工作的呢?1)首先瀏覽器向服務器發出請求。2)服務器就會根據需要生成一個Cookie對象,并且把數據保存在該對象內。3)然后把該Cookie對象放在響應頭,一并發送回瀏覽器。4)瀏覽器接收服務器響應后,提出該Cookie保存在瀏覽器端。5)當下一次瀏覽器再次訪問那個服務器,就會把這個Cookie放在請求頭內一并發給服務器。6)服務器從請求頭提取出該Cookie,判別里面的數據,然后作出相應的動作①存在于客戶端(可被阻止) ②只能是文本文檔 ③如果設置了期限值,則寫入客戶端的文件; 如果沒有,它只對本窗口或其子窗口有效,其它窗口不能訪問該Cookie ④在Servlet/JSP中設置的Cookie可以被同路徑下或其子路徑的Servlet/JSP訪問,父路徑不可以 ○注:這里的路徑是指URL,而不是Web文件的目錄1.cookie有點像一張表,分兩列,一個是名字,一個是值,數據類型都是String2.如何創建一個cookie(在服務器端創建的)Cookie c=new Cookie(String name, String val);3.如何將一個cookie添加到客戶端response.addCookie(c);4。如何讀取cookie(從客戶端讀到服務器)request.getCookies();備注說明:1.可以通過IE——工具——internet選項——隱私——高級來啟用或是禁用cookie2.由于cookie的信息是保存在客戶端的,因此安全性不高3.cookie信息的生命周期可以在創建時設置(比如30s),從創建那一時刻起,就開始計時,到時該cookie的信息就無效了 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out=response.getOutputStream(); response.setCharacterEncoding("UTF-8"); Cookie[] cook=request.getCookies(); if(cook==null) { out.write("第一次訪問,welcome".getBytes("UTF-8")); } else { for(int i=0;i<cook.length;++i) { if(cook[i].getName().equals("lasttime")) { long time=Long.parseLong(cook[i].getValue()); out.write(("上次訪問時間:"+new Date(time).toLocaleString()).getBytes("UTF-8")); } } } Cookie cookie=new Cookie("lasttime",(System.currentTimeMillis())+""); cookie.setMaxAge(3600); cookie.setPath("/myweb/servlet/ServletDemo7"); response.addCookie(cookie); }若要刪除這個Cookie記錄,需要重新生成一個相同名稱的Cookie,然后設置setMaxAge為0,注意Path也要設置統一,才可以刪除cookie與session區別:1、session保存在服務器,客戶端不知道其中的信息;cookie保存在客戶端,服務器能夠知道其中的信息。 2、session中保存的是對象,cookie中保存的是字符串。 3、session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何一個地方都可以訪問到。而cookie中如果設置了路徑參數,那么同一個網站中不同路徑下的cookie互相是訪問不到的。 4、session需要借助cookie才能正常工作。如果客戶端完全禁止cookie,session將失效。 但是如果服務器端啟用了url編碼的時候也可以的 5 session在用戶會話結束后就會關閉了,但cookie因為保存在客戶端,可以長期保存
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安平县| 隆化县| 长宁区| 铜山县| 锦州市| 永平县| 赣州市| 图木舒克市| 仪征市| 光泽县| 永州市| 犍为县| 宝鸡市| 梁平县| 新晃| 吴川市| 河西区| 平乐县| 通化市| 隆德县| 泸定县| 太谷县| 英吉沙县| 临清市| 渝中区| 乌拉特前旗| 农安县| 临沭县| 武隆县| 许昌市| 龙泉市| 嫩江县| 亳州市| 安达市| 马公市| 清新县| 年辖:市辖区| 祁门县| 邢台市| 阜宁县| 土默特右旗|