當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
【JSP/Servlet】getParameter和getAttribute的使用、区别
生活随笔
收集整理的這篇文章主要介紹了
【JSP/Servlet】getParameter和getAttribute的使用、区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
總結:request、cookie、session、context的區別
這四個對象有不同級別的作用域和生命周期。
(1)request:解決了一次請求內的數據共享問題(作用域:一次請求)
(2)cookie:解決了同一用戶不同請求的數據共享的問題(作用域:一次會話/或者設置定時)
Cookie c = new Cookie("uname", "張三"); // 創建Cookie對象c.setPath("CookieServlet"); // 指定共享cookie的Servletresp.addCookie(c); // 將cookie添加到響應對象中(3)session:解決了同一用戶不同請求的數據共享問題(作用域:會話創建->瀏覽器關閉)
// session 技術是依賴Cookie 技術的服務器端的數據存儲技術// cookie存儲在本地瀏覽器,而session存儲在服務器HttpSession hs=req.getSession(); // 在servlet中獲取session對象hs.setAttribute("uname","張三"); // 數據存儲(4)context:解決了不同用戶的數據共享問題(作用域:服務器啟動->服務器關閉)
ServletContext sc=this.getServletContext(); // 在servlet中獲取context對象sc.setAttribute("str", "ServletContext對象學習");// 數據存儲getParameter和getAttribute區別
-
getParameter()獲取的是客戶端設置的數據,在服務器端調用。
getAttribute()獲取的是服務器設置的數據,在客戶端調用。 -
getParameter()永遠返回字符串
getAttribute()返回值是任意類型
既然parameter和attribute都是傳遞參數,為什么不直接使用parameter呢?
①服務器端
- 不能通過setParameter(key,value)來添加參數,因為沒有這個函數
- 不能通過req.getAttribute("name")獲取前端通過表單提交的數據,會取不到值
可以通過setAttribute(),將值放入到request對象,然后在前端頁面使用getAttribute()獲取對應的值,這樣就達到一次請求可以在多個頁面共享一些對象信息
②parameter返回值是字符串,意味著不能傳遞其他的對象,如Map,List,但是attribute則可以存放任意類型的Java對象
示例
服務器端獲取請求信息(Java Servlet)
String uname = req.getParameter("name");服務器端設置請求信息(Java Servlet)
(1)重定向的方式
HttpSession hs = req.getSession(); // 存儲到session hs.setAttribute("user", u); resp.sendRedirect("/09-Manager/main/main.jsp");(2)請求轉發的方式
req.setAttribute("str", "用戶名或密碼錯誤,請重新輸入!"); req.getRequestDispatcher("/login.jsp").forward(req, resp);客戶端獲取請求信息(JSP頁面)
<%List<User> list=(ArrayList<User>)request.getAttribute("allUser");%>總結
以上是生活随笔為你收集整理的【JSP/Servlet】getParameter和getAttribute的使用、区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Ajax Servlet JSP My
- 下一篇: 【JavaScript】如何将JS中的数