Как получить данные со страницы JSP в сервлет

Я новичок в функциональности сервлетов. Я пытаюсь получить некоторые данные в форме JSP и пытаюсь распечатать их в консоли с помощью Servlet. Но я не могу этого сделать.

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 <form action="Startup" method="post">
        <input type="text" name="name"/><br>        
        <input type="text" name="group"/>
        <input type="text" name="pass"/>
        <input type="submit" value="submit">            
    </form>

</body>
</html>
5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 <form action="Startup" method="post">
        <input type="text" name="name"/><br>        
        <input type="text" name="group"/>
        <input type="text" name="pass"/>
        <input type="submit" value="submit">            
    </form>

</body>
</html>
5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>controlServlet</servlet-name> <servlet-class>com.selenium8x8.servlet.ControlServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>controlServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>

Startup.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 <form action="Startup" method="post">
        <input type="text" name="name"/><br>        
        <input type="text" name="group"/>
        <input type="text" name="pass"/>
        <input type="submit" value="submit">            
    </form>

</body>
</html>

ControlServlet.java

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ControlServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        String group = request.getParameter("group");
        String pass = request.getParameter("pass");
        System.out.println("Name :"+ name);
        System.out.println("group :"+ group);
        System.out.println("pass :"+ pass);
    }

}

После выполнения выдает следующую ошибку:

HTTP Status 405 - HTTP method GET is not supported by this URL

type Status report

message HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource.

person Prasanna    schedule 16.10.2013    source источник
comment
Проверьте свой URL. На какой адрес был отправлен запрос?   -  person Sotirios Delimanolis    schedule 16.10.2013
comment
в чем проблема с передачей данных из JSP в сервлет или страницу, которая не отображается??   -  person Hussain Akhtar Wahid 'Ghouri'    schedule 16.10.2013
comment
Я получаю эту ошибку сейчас, HTTP-метод GET не поддерживается этим URL-адресом @HussainAkhtarWahid   -  person Prasanna    schedule 16.10.2013
comment
Я получаю эту ошибку сейчас, HTTP-метод GET не поддерживается этим URL-адресом @sᴜʀᴇsʜᴀᴛᴛᴀ   -  person Prasanna    schedule 16.10.2013
comment
@Prasanna: пожалуйста, обновите ошибку в вопросе   -  person Hussain Akhtar Wahid 'Ghouri'    schedule 16.10.2013
comment
Я обновил вопрос. Пожалуйста, посмотрите, сэр @HussainAkhtarWahid   -  person Prasanna    schedule 16.10.2013


Ответы (4)


@Prassana: измените файл web.xml, как показано ниже, и он должен работать. Я проверил ваш код, и он работает для меня. Это будет работать как для GET, так и для POST.

<servlet>
<servlet-name>ControlServlet</servlet-name>
<servlet-class>com.selenium8x8.servlet.ControlServlet</servlet-class>
  </servlet>

  <servlet-mapping>
<servlet-name>ControlServlet</servlet-name>
<url-pattern>/Startup</url-pattern>
  </servlet-mapping>
</web-app>
person user2821894    schedule 16.10.2013
comment
Но я получаю HTTP-статус 404 - /Testing_automation/ тип сообщения отчета о состоянии /Testing_automation/ описание Запрошенный ресурс недоступен. - person Prasanna; 16.10.2013
comment
@Prasanna: Можете ли вы дать полный URL-адрес, с которым вы пытаетесь? - person user2821894; 16.10.2013
comment
который из..? я не могу тебя понять - person Prasanna; 16.10.2013
comment
я пытаюсь это сделать в apache tomcat - person Prasanna; 16.10.2013
comment
Хорошо. Как вы пытаетесь использовать Apache Tomcat? - person user2821894; 16.10.2013
comment
@Prasanna: Хорошо, ты можешь остановить сервер tomcat. Чистая сборка проекта, затем запустите сервер и попробуйте. - person user2821894; 16.10.2013
comment
Тем не менее я сталкиваюсь с той же проблемой - person Prasanna; 16.10.2013
comment
Можете ли вы дать четкое описание того, что вы делаете для запуска своего кода или приложения или чего бы то ни было. Я проверил ваш код, и он отлично работает для меня. Вот как я это тестирую. После запуска сервера tomcat. Я набираю следующий URL в браузере. localhost:8080/XYZProject/Startup.jsp. где XYZProject — это имя моего проекта, а Startup.jsp — ваш файл jsp. Если вы можете дать четкое описание, где и когда вы получаете ошибку, я могу помочь вам также попробовать перезапустить затмение после остановки сервера. - person user2821894; 16.10.2013

Изменить сопоставление

<form action="/Startup" method="post">

Шаг 2: добавьте аннотацию ovveride

  @Override
  public  void doPost(HttpServletReques...

Я думаю, он не может обнаружить ваш метод публикации и пытается использовать метод get.

И попробуйте проверить с помощью метода get также один раз,

@Override
  public void doGet(HttpServletReques...
person Suresh Atta    schedule 16.10.2013
comment
@Prasanna Этого не должно быть. Не могли бы вы попробовать method="GET" и вставить тот же код в метод doGet и проверить? - person Suresh Atta; 16.10.2013
comment
Это действительно странно. Почему вы сопоставили <url-pattern>/*</url-pattern>, вы правильно указали <url-pattern>/Startup</url-pattern>? - person Suresh Atta; 16.10.2013

Необходимо изменить действие в теге формы со следующим

 <form action="/Startup" method="post">
person Dark Knight    schedule 16.10.2013
comment
Я получаю эту ошибку сейчас, HTTP-метод GET не поддерживается этим URL-адресом - person Prasanna; 16.10.2013

замените это: <form action="Startup"

этим: <form action="/Startup"

person Hussain Akhtar Wahid 'Ghouri'    schedule 16.10.2013