JSp的session內置對象取值方法
//創建session對象
HttpSession session =requst.getSession();
//設置session 對象的屬性值
session.setAttribute("屬性名",值);
取值
Object object=session.getAttibute("屬性名")
設置方法
//設置響應回去的類型
response.setContentType("text/html");
//設置響應的字符編碼格式
response.setCharacterEncoding("UTF-8");
request(請求)
//獲取請求屬性的值
request.getParameter("屬性名");
多用于表單提交和URL參數的傳遞的取值
JSp內置對象生命周期:
out 只在本jsp頁面使用 無生命周期
request 生命周期 一次請求
response 生命周期 一次響應
session 生命周期 項目瀏覽器關閉時,生全周期結束,默認不操作項目超過30分鐘生命周期結束
application 生命周期 當開啟Tomcat服務器時創建,關閉Tomcat服務器時結束生命周期 (作用:統計服務器訪問人數或流量)
頁面跳轉:
response.sendRedirect("admin/one.jsp") 重定向
RequestDispatcher 請求跳轉
兩者實現的效果相同
二者的區別:
1、
URL 地址的變化用response.sendRedirect時,RequestDi.spatcher不會使URL地址進行變化。
RepuestDispatcher 是服務器端請求機制的跳轉
response.sendRedirect 是客戶端請求機制的重定向
2、
RequestDispatcher傳值通過JSP-Servlet-JSp形式直接傳入到下一個JSp頁面
response.sendRedirect 傳值通過JSP-Servlet-JSP形式,只能夠傳遞到請求機制重定向這之前
3、
如果項目要跳轉到另外一個服務器的頁面時,用response.sendRedirect進行重定向
4、
我們盡量使用RequestDispatcher方式,因為是服務器響應,所以在web容器執行效率較高
RequestDispatcher什么時候使用呢?
項目中不進行頁面的交互跳轉的時候,例如一個界面的增、刪、改、查,或者相關聯同類型模塊之間的跳轉
response.sendRedirect重定向什么時候使用呢?
無關聯的不同模塊間跳轉使用,例如,用戶界面模塊跳轉到產品信息界面模塊
5、
RequestDispatcher基本上認定使用在Servlet里面
response.sendRedirect 用在Servlet和JSP頁面較多
重定向傳值 只影響request,不影響session的傳值
session何時使用?
傳值時盡量不要使用session
購物車的實現必須使用session對象
session.removeAttribute("name") 全部刪除物品
如果選擇性刪除?
傳入要刪除的購物信息主鍵id值,根據id值支查找集合中的對應信息,然后做集合中的刪除操作
for(Product product : list){
if(deleteid==product.getid()){
list.remove(product);
}
}
session.setAttribute("gouwu",list)
兩種提交方式的亂碼處理:
post提交方式亂碼處理
中文亂碼問題
request.setcharacterEncoding("UTF-8");
處理get方式提交的亂碼方式處理
String names=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")