एएसपी में, request.form
और request.queryString
विशेषताएँ हैं, लेकिन जावा में। ऐसा लगता है कि हम केवल एक संग्रह, के माध्यम से पहुँचा जा सकता है जो है request.getParamaterMap
, getParametersNames
, getParameterValues
आदियह निर्धारित करने के लिए कि जावा से पैरामीटर "पोस्ट" या "प्राप्त" किया गया है या नहीं?
वहाँ कोई रास्ता बताने के लिए जो मान तैनात किया गया है और कौन सा URL में निर्दिष्ट किया गया है है?
पुनश्च:
क्या मैं प्राप्त करने के लिए कोशिश कर रहा हूँ एक पेज है जो निम्न स्थिति
- संभाल कर सकते हैं चर क्वेरी स्ट्रिंग से आया पढ़ें बनाने के लिए है (मिल)
- एक निश्चित नाम के साथ एक एकल पोस्ट पढ़ें (उदाहरण के लिए, "xml")।
- यदि वह पोस्ट गुम है, तो पूरे शरीर को पढ़ें (
request.getReader()
के साथ)।
मैं बिल्ला उपयोग कर रहा हूँ 6.
मैं अब तक क्या देखा है, अगर मैं एक request.getReader()
जारी, पोस्ट मूल्यों के अनुसार नहीं रह गया है getParamater
संग्रह में प्रकट होता है, फिर भी क्वेरी स्ट्रिंग पैरामीटर अभी भी कर रहे हैं।
दूसरी तरफ, यदि मैं getParameters
विधियों में से कोई भी जारी करता हूं, getReader
रिक्त स्ट्रिंग देता है।
ऐसा लगता है कि मेरे पास केक नहीं है और इसे भी खा सकता है।
हां, तो मुझे लगता है कि समाधान folowwing है:
getReader
के साथ शरीर पढ़ें।- अगर एक्सएमएल पद नहीं है अगर ऐसा है देखें (नकारात्मक पक्ष यह है, मैं मैन्युअल रूप से शरीर पार्स करने के लिए की है।
- , http संदेश के मुख्य भाग हो जाते हैं और "xml =" भाग से छुटकारा पाने के।
- यदि ऐसा नहीं है , ठीक है, बस शरीर मिलता है
- किसी भी बेहतर विचार के माध्यम से
request.getParameter
क्वेरी स्ट्रिंग पैरामीटर पढ़ें
- पुनश्च:।? किसी को भी जानता है है कैसे पार्स करने के लिए
HttpServlet
द्वारा उपयोग की जाने वाली विधि का उपयोग कर शरीर? - पीएस: Here एक डीकोडिंग एएसपी फ़ंक्शन है। क्या मैं इसे जावा में फिर से लिखूंगा?
- पुनश्च: इसके अलावा found बस चीजों को स्पष्ट करने
(अभी यह परीक्षण करने के लिए एक मशीन की जरूरत नहीं है)।
<%@page import="java.util.*"%>
<%
Integer i;
String name;
String [] values;
for (Enumeration e = request.getParameterNames(); e.hasMoreElements();) {
name = (String) e.nextElement();
values = request.getParameterValues(name);
for (i=0; i < values.length; i ++) {
out.println(name + ":" + values[i] + "<br/>");
}
}
%>
<html>
<head><title>param test</title>
</head>
<body>
<form method="post" action="http://localhost:8080/jsp_debug/param_test.jsp?data=from_get">
<input type="text" name="data" value="from_post">
<input type="submit" value="ok">
</form>
</body>
</html>
इस कोड के उत्पादन में
data:from_get
data:from_post
...
है क्रम में की तरह लगता है: समस्या हो कि getParameter
के साथ तैनात मूल्यों के साथ-साथ यूआरएल के साथ पारित कर दिया मूल्यों हो, निम्न उदाहरण पर विचार लगता है यह पता लगाने के लिए कि कौन सा पैरामीटर आया था, मुझे request.getQueryString
जांचना होगा।
क्या सर्वर का प्रयोग कर रहे:
मैं RequestUtils वर्ग के लिए स्रोत कोड पाया, शायद विधि "पॉप्युलेट" तुम क्या जरूरत है? सूरज Http सर्वर? – gubby
आपको पूरा यूआरएल प्राप्त करना चाहिए और पैरामीटर को deserialize करना चाहिए। यदि आपका वांछित पैरामीटर है, तो यह एक जीईटी है। यदि यह वहां मौजूद नहीं है, तो यह एक पोस्ट param है। – PSyLoCKe