2016-07-31 118 views
1

我搜索了多个地方,但无法完全找到我所需要的。我是servlets和html的新手,很确定我缺少一些简单的东西。如何检索一个java servlet中的参数

我有一个它的servlet servletA的doGet,我做了以下内容:

response.setContentType("text/html"); 

PrintWriter out = response.getWriter(); 
StringBuilder sb = new StringBuilder(); 
sb.append("<html><head></head><body>"); 
sb.append("<div><select name=\"thisparameter\">"); 
ArrayList<A> list = helper.getList(); 
sb.append("<option value=\"select\">Select an option</option>"); 
for (int i=0; i<list.size(); i++) { 
    A a = list.get(i); 
    sb.append("<option value="+ a.getYear()+">" + a.getName() + "</option>"); 
} 
sb.append("</select>"); 
sb.append("<form action=\"servletB\" method=\"GET\">\n" + 
" <button type=\"submit\">Go</button>\n" + 
"</form></div>"); 

sb.append("</body>"); 
sb.append("</html>"); 
out.println(sb.toString()); 
out.close(); 

在servletB的doGet()

PrintWriter out = response.getWriter(); 
StringBuilder sb = ServletHelper.getHeaderHtml(); 

response.setContentType("text/html"); 

String thisparameter = request.getParameter("thisparameter"); 

字符串thisparameter总是空。我尝试使用POST并得到相同的结果。我真的只想使用servlet,而不是与JSP的组合。任何帮助将不胜感激。谢谢。

回答

0

您的select需要在form之内才能够提交给servlet。要做到这一点,请像这样改变你的代码。

PrintWriter out = response.getWriter(); 
StringBuilder sb = new StringBuilder(); 
sb.append("<html><head></head><body>"); 
sb.append("<form action=\"servletB\" method=\"GET\">"); 
sb.append("<div><select name=\"thisparameter\">"); 
ArrayList<A> list = helper.getList(); 
sb.append("<option value=\"select\">Select an option</option>"); 
for (int i=0; i<list.size(); i++) { 
    A a = list.get(i); 
    sb.append("<option value="+ a.getYear()+">" + a.getName() + "</option>"); 
} 
sb.append("</select>"); 
sb.append("<button type=\"submit\">Go</button>\n" + 
"</form></div>"); 

sb.append("</body>"); 
sb.append("</html>"); 
out.println(sb.toString()); 
out.close(); 
+0

**谢谢!!! ** – user2237511

+0

@ user2237511如果它适用于您,您是否可以将答案标记为已接受? –

+0

是的,我的意思是,这是过早接受不断告诉我尝试一段时间后:) – user2237511

相关问题