У меня есть HTML-форму, как это:HTML метод POST форма вызывает метод Java Servlet doGet
form.html:
<html>
<body>
your name is :<br><br>
<form ACTION="../post2" METHOD="POST">
<input name="name" type="text" id="name"/>
<input name="send" type="submit" value="send"/>
</form>
</body>
<html>
сервлет для обслуживания этого запроса:
post2.class:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.*;
public class post2 extends HttpServlet
{
protected void doDo(HttpServletRequest request,HttpServletResponse response)
throws IOException{
String name = request.getParameter("name");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML><BODY>");
out.println("<H2>hello "+name+"</H2>");
out.println("<BR><BR>");
out.println("info:");
out.println("<BR><BR>");
out.println("<H2>metoda GET</H2>");
out.println("<BR><BR>");
out.println("SERVER_NAME="+request.getServerName()+"<BR>");
out.println("REQUEST_METHOD="+request.getMethod()+"<BR>");
out.println("QUERY_STRING="+request.getQueryString()+"<BR>");
out.println("REMOTE_HOST="+request.getRemoteHost()+"<BR>");
out.println("REMOTE_ADDR="+request.getRemoteAddr());
out.println("</BODY></HTML>");
}
@Override
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException {
doDo(request,response);
}
@Override
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException {
doDo(request,response);
}
}
и результат:
hello null
info:
SERVER_NAME=localhost
REQUEST_METHOD=GET
QUERY_STRING=null
REMOTE_HOST=127.0.0.1
REMOTE_ADDR=127.0.0.1
что не так? Для меня кажется, что сервлет не видит почтовый метод из формы. Пожалуйста, помогите, Im укомплектовать понятия не имею, почему он не работает должным образом ...
результат с Wireshark:
648 126,229267 87.105.184.89 192.168.1.100 HTTP POST 557/post2 HTTP/1.1 (применение/х-WWW-форм-urlencoded)
953 379,456916 192.168.1.100 87.105.184.89 HTTP 239 HTTP/1.1 302 Moved Временно
955 379,462518 192.168.1.100 87.105.184.89 HTTP 470 GET/post2/ HT TP/1,1
957 379,463979 192.168.1.100 87.105.184.89 HTTP 431 HTTP/1.1 200 OK (текст/HTML)
логика маршрутизации:
tomcat\webapps\ROOT\form.html
->\tomcat\webapps\post2\WEB-INF\classes\post2.class
Для начала, вы забыли '' тег. –
Используйте Wireshark или что-то, чтобы убедиться, что вы действительно получаете POST. –
Вы действительно представляете форму? Для того, чтобы 'name' был пустым, поле не может быть отправлено; это будет пустая строка, если в элементе ввода не было значения. –