Apa perbedaan antara getAttribute()
dan getParameter()
metode dalam HttpServletRequest
kelas?
Apa perbedaan antara getAttribute()
dan getParameter()
metode dalam HttpServletRequest
kelas?
Jawaban:
getParameter()
mengembalikan parameter permintaan http. Itu diteruskan dari klien ke server. Sebagai contoh http://example.com/servlet?parameter=1
. Hanya bisa kembaliString
getAttribute()
hanya untuk penggunaan sisi server - Anda mengisi permintaan dengan atribut yang dapat Anda gunakan dalam permintaan yang sama. Misalnya - Anda menetapkan atribut dalam servlet, dan membacanya dari JSP. Dapat digunakan untuk objek apa pun, bukan hanya string.
${attrName}
di halaman jsp, itu adalah atribut yang Anda tetapkan gunakan request.getSession().setAttribute()
?
getAttribute()
bukan hanya untuk penggunaan sisi server: Anda bisa mendapatkan data atribut di front-end - di halaman jsp misalnya, dan menampilkannya
Secara umum, parameter adalah nilai string yang paling umum diketahui dikirim dari klien ke server (mis. Formulir posting) dan diambil dari permintaan servlet . Pengecualian yang membuat frustrasi adalah parameter awal ServletContext yang merupakan parameter string yang dikonfigurasi di web.xml dan ada di server.
Atribut adalah variabel server yang ada dalam lingkup yang ditentukan yaitu:
application
, tersedia untuk masa pakai seluruh aplikasisession
, tersedia untuk seumur hidup sesirequest
, hanya tersedia selama umur permintaanpage
(Khusus JSP), hanya tersedia untuk halaman JSP saat ini request.getParameter ()
Kami menggunakan request.getParameter()
untuk mengekstrak parameter permintaan (yaitu data yang dikirim dengan memposting formulir html). Nilai request.getParameter()
selalu kembali String
dan data berasal dari klien.
request.getAttribute ()
Kami menggunakan request.getAttribute()
untuk mendapatkan objek yang ditambahkan ke ruang lingkup permintaan di sisi server yaitu menggunakan request.setAttribute()
. Anda dapat menambahkan semua jenis objek yang Anda suka di sini,, Strings
Objek khusus, bahkan objek apa pun. Anda menambahkan atribut ke permintaan dan meneruskan permintaan ke sumber daya lain, klien tidak tahu tentang ini. Jadi semua kode yang menangani ini biasanya dalam JSP / servlets. Anda dapat menggunakan request.setAttribute()
untuk menambahkan informasi tambahan dan meneruskan / mengalihkan permintaan saat ini ke sumber daya lain.
Misalnya, pertimbangkan tentang first.jsp,
//First Page : first.jsp
<%@ page import="java.util.*" import="java.io.*"%>
<% request.setAttribute("PAGE", "first.jsp");%>
<jsp:forward page="/second.jsp"/>
dan second.jsp:
<%@ page import="java.util.*" import="java.io.*"%>
From Which Page : <%=request.getAttribute("PAGE")%><br>
Data From Client : <%=request.getParameter("CLIENT")%>
Dari browser Anda, jalankan first.jsp? CLIENT = Anda dan output pada browser Anda
From Which Page : *first.jsp*
Data From Client : you
Perbedaan mendasar antara getAttribute()
dan getParameter()
adalah bahwa metode pertama mengekstraksi objek Java (serial) dan yang lainnya memberikan nilai String. Untuk kedua kasus, sebuah nama diberikan sehingga nilainya (baik itu string atau kacang java) dapat dicari dan diekstraksi.
Sangat penting untuk mengetahui bahwa atribut bukan parameter .
Tipe return untuk atribut adalah Object , sedangkan tipe return untuk parameter adalah String . Saat memanggil getAttribute(String name)
metode, ingat bahwa atribut harus dilemparkan.
Selain itu, tidak ada atribut spesifik servlet , dan tidak ada parameter sesi .
Posting ini ditulis dengan tujuan untuk terhubung pada respons @ Bozho, sebagai informasi tambahan yang dapat berguna bagi orang lain.
Perbedaan antara getAttribute dan getParameter adalah getParameter akan mengembalikan nilai parameter yang dikirimkan oleh formulir HTML atau yang disertakan dalam string kueri. getAttribute mengembalikan objek yang telah Anda tetapkan dalam permintaan, satu-satunya cara Anda dapat menggunakan ini adalah bersama dengan RequestDispatcher. Anda menggunakan RequestDispatcher untuk meneruskan permintaan ke sumber daya lain (JSP / Servlet). Jadi sebelum Anda meneruskan permintaan Anda dapat mengatur atribut yang akan tersedia untuk sumber daya berikutnya.
- getParameter () :
<html>
<body>
<form name="testForm" method="post" action="testJSP.jsp">
<input type="text" name="testParam" value="ClientParam">
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<%
String sValue = request.getParameter("testParam");
%>
<%= sValue %>
</body>
</html>
request.getParameter("testParam")
akan mendapatkan nilai dari formulir yang diposting dari kotak input bernama "testParam" yang merupakan "Klien param". Ini kemudian akan mencetaknya, sehingga Anda akan melihat "Client Param" di layar. Jadi request.getParameter () akan mengambil nilai yang telah dikirimkan klien. Anda akan mendapatkan nilai di sisi server.
- getAttribute ():,
request.getAttribute()
ini semua dilakukan di sisi server. ANDA menambahkan atribut ke permintaan dan ANDA mengirimkan permintaan ke sumber daya lain, klien tidak tahu tentang ini. Jadi semua penanganan kode ini biasanya di servlets.getAttribute selalu mengembalikan objek.
getParameter
- Digunakan untuk mendapatkan informasi yang Anda butuhkan dari halaman HTML Klien
getAttribute
- Ini digunakan untuk mendapatkan parameter yang ditetapkan sebelumnya di halaman JSP atau Servlet yang sama atau yang sama.
Pada dasarnya, jika Anda meneruskan atau hanya beralih dari satu jsp / servlet ke yang lain, tidak ada cara untuk memiliki informasi yang Anda inginkan kecuali Anda memilih untuk meletakkannya di Objek dan menggunakan atribut-set untuk menyimpan dalam variabel Sesi.
Menggunakan getAttribute, Anda dapat mengambil variabel Sesi.
dari http://www.coderanch.com/t/361868/Servlets/java/request-getParameter-request-getAttribute
"Parameter" adalah pasangan nama / nilai yang dikirim dari klien ke server - biasanya, dari formulir HTML. Parameter hanya dapat memiliki nilai String. Terkadang (misalnya menggunakan permintaan GET) Anda akan melihat ini disandikan langsung ke URL (setelah?, Masing-masing dalam bentuk nama = nilai, dan setiap pasangan dipisahkan oleh &). Di lain waktu, mereka termasuk dalam badan permintaan, saat menggunakan metode seperti POST.
"Atribut" adalah mekanisme penyimpanan server-lokal - tidak ada yang disimpan dalam attribues yang dicakup pernah ditransmisikan di luar server kecuali Anda secara eksplisit membuat itu terjadi. Atribut memiliki nama String, tetapi menyimpan nilai Object. Perhatikan bahwa atribut khusus untuk Java (mereka menyimpan Java Objects), sementara parameternya adalah platform-independent (mereka hanya string yang diformat yang terdiri dari byte generik).
Ada empat lingkup atribut secara total: "halaman" (hanya untuk JSP dan file tag), "permintaan" (terbatas pada permintaan klien saat ini, dihancurkan setelah permintaan selesai), "sesi" (disimpan dalam sesi klien, tidak valid setelah sesi diakhiri), "aplikasi" (ada untuk semua komponen untuk mengakses selama masa aplikasi Anda dikerahkan).
Intinya adalah: gunakan parameter saat mendapatkan data dari klien, gunakan atribut cakupan saat menyimpan objek di server untuk digunakan secara internal oleh aplikasi Anda saja.
Kasus lain yang harus Anda gunakan .getParameter()
adalah ketika meneruskan dengan parameter di jsp:
<jsp:forward page="destination.jsp">
<jsp:param name="userName" value="hamid"/>
</jsp:forward>
Di destination.jsp
, Anda dapat mengakses userName
seperti ini:
request.getParameter("userName")
Perbedaan mendasar antara getAttribute () dan getParameter () adalah tipe kembali.
java.lang.Object getAttribute(java.lang.String name)
java.lang.String getParameter(java.lang.String name)