Phân biệt giữa request.getParameter() và request.getAttribute() trong java?

Phân biệt giữa request.getParameter() và request.getAttribute() trong java

Sự khác biệt cơ bản giữa getAttribute() getParameter() trong java là kiểu dữ liệu trả về, với getAttribute() trả vềobject (đối tượng) và getParameter () trả về kiểu dữ liệu String. Đối với trường hợp cả hai cùng một name thì giá trị của nó sẽ dựa vào  kiểu dữ liệu để truy xuất.

Cách dùng Request.getParameter()

Request.getParameter() được sử dụng để trích xuất các thông số yêu cầu (tức là dữ liệu được gửi bằng cách thông qua dạng html). Khi sử dụng request.getParameter() luôn luôn trả về kiểu dữ liệu String.

Cách dùng Request.getAttribute()

Sử dụng request.getAttribute() để có được một object,sử dụng request.setAttribute() để truyền giá trị từ servlet sang jsp và để lấy giá trị đối tượng sử dụng request.getAttribute(). Bạn có thể thêm bất kỳ đối tượng bạn muốn như String,Integer…, các đối tượng Custom trong thực tếcủa dự án, bất kỳ đối tượng nào chúng ta mong muốn.Khi sử dụng request.setAttribute() thì chúng ta thường gữi dữ liệu sang sang file jsp (Theo mô hình MVC file jsp chính là V - View).Vì vậy chúng ta thường đi kèm với chuyển tiếp forward.

Ví dụ :

file first.jsp :

//file: first.jsp

 

<%@ page import=”java.util.*” import=”java.io.*”%>
<% request.setAttribute(“PAGE”, “first.jsp”);%>
<jsp:forward page=”/second.jsp”/>

 

và file second.jsp :

 

<%@ page import=”java.util.*” import=”java.io.*”%>
Lấy dữ liệu khi gữi từ file first.jsp : <%=request.getAttribute(“PAGE”)%><br>
Lấy dữ liệu từ người dùng : <%=request.getParameter(“CLIENT”)%>

 

Từ trình duyệt của bạn, chạy first.jsp?value=itphutran.com và thử truyền biến qua url bằng cách sử dụng ký tự ?value=itphutran.com.

Tại trang first.jsp lấy giá trị itphutran.com bằng cách :

<%=request.getParameter(“value”)%>

>> output: itphutran.com