Javaweb筆記 - 草稿

1.tomcat配置管理員角色

在conf/tomcat-users.xml下

<role rolename="manager-gui"/>

<user username="lxn" password="lxn" roles="manager-gui"/>

2.form中action屬性后面?zhèn)鬟f參數(shù)獲取不到原因:

瀏覽器會將表單數(shù)據(jù)封裝為字符串,如controller=message&method=search,然后直接附在表單的 action URL 之后。這兩者之間用問號(?)進行分隔。如果GET請求的表單action屬性中已經(jīng)包含參數(shù),瀏覽器會直接將其過濾掉,再附加form表單數(shù)據(jù)。

因此,GET請求方式的表單的action屬性中不能附帶任何參數(shù),如果需要附加額外的參數(shù),可以采用如下方式:

a、采用POST請求方式,在form中增加屬性method="post"即可。

b、如果仍然想使用GET請求方式,可以在form表單中添加相應(yīng)的隱藏文本域,

3.sendRedirect方法中的路徑以"/"開頭,則代表站點的根路徑,localhost:8080,而對于forward來說,路徑以"/"開頭,代表web應(yīng)用的根目錄。

request.getRequestDispatcher(url)之所以可以使用相對路勁,是因為在getRequestDispatcher(url)方法中封裝了ServletContext.getRealPath()以獲得相應(yīng)的項目根路徑,再通過字符串相加,從而可以獲得一個完整的路徑

sendRedirect有兩種方法,可以用相對路徑(直接用),也可以用相對路徑(需加應(yīng)用路徑)

` ` `

resp.sendRedirect("/session/login.jsp");

resp.sendRedirect(req.getContextPath() +"/session/login.jsp");

```

4.轉(zhuǎn)發(fā)有三種方式

requestDispatcher.foward,pageContext.foward,jsp:fward

5.會話Cookie和持久cookie的區(qū)別

a:如果不設(shè)置過期時間,cookie為會話,會話cookie不保存在硬盤而是保存在內(nèi)存

b:如果設(shè)置了過期時間,瀏覽器會把cookie保存在硬盤

c:存儲在硬盤的cookie可以在瀏覽器共享

Session


第一次訪問,響應(yīng)中回有Set-Cookie字段


如何防止表單的重復提交

表單的重復提交情況

a:表單提交到一個Servlet,Servlet轉(zhuǎn)發(fā)到JSP頁面,地址欄還保留這servlet的路徑,這時候刷新頁面

b:在響應(yīng)頁面沒有到達時,重復點擊提交

c:點擊返回,再點提交

不算重復提交情況:

返回,刷新原來的頁面,提交

避免表單的重復提交:把標記放到session中

a:在原表單頁面生成一個隨機token

b:在原表單頁面,把token放到session中

c:在原表單頁面,把token值放到隱藏域中

d:在目標servlet中,獲取session和隱藏域中的值

e:比較兩個值是否一致,一致,把session中的值清除

f:不一致,響應(yīng)重復提交

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容