2015-12-16 2 views
-1

У меня есть .jsp-файл, который отправляет данные с помощью метода post на сервлет, но когда я пытаюсь получить доступ к данным в сервлете через request.getAttribute(), он печатает " нуль»Получение null от request.getAttribute()

мой файл .jsp выглядит следующим образом:

  <form name="update" action="UpdateServlet" method="post" 
      accept-charset="utf-8"> 
      <label>Name:</label><input type="text" name="input_name" id="input_name"><br> 
      <label>Beschreibung:</label> <input type="text" name="input_beschreibung" id="input_beschreibung"><br> 
      <input type="hidden" name="input_id" id="input_id"> 
      <input type="submit" value="Okay"> 
      <button type="button" onclick="closeDialog()">Abbrechen</button> 
      </form> 

мой сервлет выглядит следующим образом:

public class UpdateServlet extends HttpServlet { 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html"); 

    System.out.println((String)request.getAttribute("input_id")); 
    System.out.println((String)request.getAttribute("input_name")); 
    System.out.println((String)request.getAttribute("input_beschreibung")); 

    RequestDispatcher rd=request.getRequestDispatcher("LoadServlet"); 
    rd.forward(request, response); 

} 

часть web.xml:

<servlet> 
    <servlet-name>UpdateServlet</servlet-name> 
    <servlet-class>wochenplaner.UpdateServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>UpdateServlet</servlet-name> 
    <url-pattern>/UpdateServlet</url-pattern> 
    </servlet-mapping> 

Я не понимаю, почему атрибуты запроса пусты. Спасибо заранее!

ответ

0

Вы сбиваете с толку request.getAttribute("") и request.getParameter(""). Вы должны использовать последний:

public class UpdateServlet extends HttpServlet { 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html"); 

    System.out.println(request.getParameter("input_id")); 
    System.out.println(request.getParameter("input_name")); 
    System.out.println(request.getParameter("input_beschreibung")); 

    RequestDispatcher rd=request.getRequestDispatcher("LoadServlet"); 
    rd.forward(request, response); 

} 

Смотрите здесь для некоторого дальнейшего обсуждения:

https://stackoverflow.com/a/5243833/1356423

+0

Спасибо, я чувствую себя настолько глупо. – Mick

0

попробовать это:

request.getParameter("input_id"); 
Смежные вопросы