servlet中的三個(gè)請(qǐng)求傳播有何區(qū)別?
使用servlet處理請(qǐng)求轉(zhuǎn)發(fā)時(shí),通常有三種方法。
1.re("url");
2.reque("url").include(request,response);
3.reque("url").forward(request,response);
1、 forward:是指轉(zhuǎn)發(fā),將當(dāng)前request和response對(duì)象保存,交給指定的url處理。并沒有表示頁面的跳轉(zhuǎn),所以地址欄的地址不會(huì)發(fā)生改變。
2、 redirect:是指重定向,包含兩次瀏覽器請(qǐng)求,瀏覽器根據(jù)url請(qǐng)求一個(gè)新的頁面,所有的業(yè)務(wù)處理都轉(zhuǎn)到下一個(gè)頁面,地址欄的地址會(huì)變發(fā)生改變。
3、 include:意為包含,即包含url中的內(nèi)容,進(jìn)一步理解為,將url中的內(nèi)容包含進(jìn)當(dāng)前的servlet當(dāng)中來,并用當(dāng)前servlet的request和respose來執(zhí)行url中的內(nèi)容處理業(yè)務(wù).所以不會(huì)發(fā)生頁面的跳轉(zhuǎn),地址欄地址不會(huì)發(fā)生改變。
詳述Session機(jī)制,session是什么?什么時(shí)候生成?在哪里?為什么需要?
session是一次瀏覽器和服務(wù)器的交互的會(huì)話
每次我們?cè)L問一個(gè)頁面,如果有開啟session,就會(huì)自動(dòng)生成一個(gè)session_id 來標(biāo)注是這次會(huì)話的唯一ID,同時(shí)也會(huì)自動(dòng)往cookie里寫入一個(gè)名字為JSESSIONID的變量,它的值正是session_id,當(dāng)這次會(huì)話沒結(jié)束,再次訪問的時(shí)候,服務(wù)器會(huì)去讀取這個(gè)JSESSIONID的cookie是否有值有沒過期,如果能夠讀取到,則繼續(xù)用這個(gè)session_id,如果沒有,就會(huì)新生成一個(gè)session_id,同時(shí)生成JSESSIONID這個(gè)cookie。
存儲(chǔ)在服務(wù)器的內(nèi)存中,也可以持久化到file
http協(xié)議是無狀態(tài)的,可以通過session記住當(dāng)前用戶
WEB.xml文件常用的的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi=";
xmlns=";
xsi:schemaLocation=" /web-app_2_5.xsd"
version="2.5">
<display-name>Archetype Created Web Application</display-name>
<!-- 解決post亂碼 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.;/filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- springmvc的前端控制器 -->
<servlet>
<servlet-name>e3-manager-web</servlet-name>
<servlet-class>org.;/servlet-class>
<!-- contextConfigLocation不是必須的, 如果不配置contextConfigLocation, springmvc的配置文件默認(rèn)在:WEB-INF/servlet的name+"-; -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring;/param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>e3-manager-web</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
JavaWeb中四大域?qū)ο蟮淖饔梅秶?/p>
PageContext域:作用范圍是整個(gè)JSP頁面,是四大作用域中最小的一個(gè);生命周期是當(dāng)對(duì)JSP的請(qǐng)求時(shí)開始,當(dāng)響應(yīng)結(jié)束時(shí)銷毀。
ServletRequest域:作用范圍是整個(gè)請(qǐng)求鏈(請(qǐng)求轉(zhuǎn)發(fā)也存在);生命周期是在service方法調(diào)用前由服務(wù)器創(chuàng)建,傳入service方法。整個(gè)請(qǐng)求結(jié)束,request生命結(jié)束。
HttpSession域:作用范圍是一次會(huì)話。生命周期是在第一次調(diào)用reque()方法時(shí),服務(wù)器會(huì)檢查是否已經(jīng)有對(duì)應(yīng)的session,如果沒有就在內(nèi)存中創(chuàng)建一個(gè)session并返回。當(dāng)一段時(shí)間內(nèi)session沒有被使用(默認(rèn)為30分鐘),則服務(wù)器會(huì)銷毀該session。如果服務(wù)器非正常關(guān)閉(強(qiáng)行關(guān)閉),沒有到期的session也會(huì)跟著銷毀。如果調(diào)用session提供的invalidate() ,可以立即銷毀session。
注意:服務(wù)器正常關(guān)閉,再啟動(dòng),Session對(duì)象會(huì)進(jìn)行鈍化和活化操作。同時(shí)如果服務(wù)器鈍化的時(shí)間在session 默認(rèn)銷毀時(shí)間之內(nèi),則活化后session還是存在的。否則Session不存在。 如果JavaBean 數(shù)據(jù)在session鈍化時(shí),沒有實(shí)現(xiàn)Serializable 則當(dāng)Session活化時(shí),會(huì)消失。
ServletContext域:作用范圍是整個(gè)Web應(yīng)用。當(dāng)Web應(yīng)用被加載進(jìn)容器時(shí)創(chuàng)建代表整個(gè)web應(yīng)用的ServletContext對(duì)象,當(dāng)服務(wù)器關(guān)閉或Web應(yīng)用被移除時(shí),ServletContext對(duì)象跟著銷毀。
軟件開發(fā)過程一般有幾個(gè)階段?每個(gè)階段的作用
需求分析
系統(tǒng)設(shè)計(jì)
詳細(xì)設(shè)計(jì)
編碼
測(cè)試
軟件交付準(zhǔn)備
驗(yàn)收
1.《e3manager怎么用?我來告訴你答案java知識(shí)點(diǎn)》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。
2.《e3manager怎么用?我來告訴你答案java知識(shí)點(diǎn)》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/gl/3015539.html