2015-02-10 3 views
1

Из любопытства я отправляю оба параметра get и post с тем же именем и разными значениями.Получает ли значение параметра значение параметра post?

JSP:

<form action="actionName?param1=value1" method="post"> 
<input type="text" value="value2" name="param1" id="param1"> 
<input type="submit" value="Submit"> 
</form> 

Servlet:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{ 
    doPost(request, response); 
} 
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{ 
    String strParam1 = request.getParameter("param1"); 
} 

Я всегда получаю значение strParam1 как "значению1".

Итак, значит ли параметр получить значение по параметру post или это зависит?

+0

Вы переопределили doPost) 'метод в сервлет' (? –

+0

да .. обновит мой код сервлета через минуту. – Kartic

+0

Проверьте консоль своего браузера после того, как запрос сделан, чтобы очистить ваш вопрос. –

ответ

0

Получить и отправить, по-видимому, обрабатывают по-разному. Сбивает с толку, поскольку я вижу много примеров обработки почтовых сообщений таким же образом, как и запросы.

В следующей статье рассматривается его подробно.

http://www.cse.iitb.ac.in/dbms/Data/Courses/DBIS/Software/servlets/servlet_tutorial.html#user-interaction

Метод doPost использует getParameterNames и getParameterValues ​​ методы, чтобы получить данные формы.

public void doPost(HttpServletRequest req, HttpServletResponse res) 
    throws ServletException, IOException { 
    // first, set the "content type" header of the response 
    res.setContentType("text/html"); 

    //Get the response's PrintWriter to return text to the client. 
     PrintWriter toClient = res.getWriter(); 

     try { 
      //Open the file for writing the survey results. 
      String surveyName = req.getParameterValues("survey")[0]; 
      FileWriter resultsFile = new FileWriter(resultsDir 
      + System.getProperty("file.separator") 
      + surveyName + ".txt", true); 
      PrintWriter toFile = new PrintWriter(resultsFile); 

     // Get client's form data & store it in the file 
      toFile.println("<BEGIN>"); 
      Enumeration values = req.getParameterNames(); 
      while(values.hasMoreElements()) { 
       String name = (String)values.nextElement(); 
     String value = req.getParameterValues(name)[0]; 
       if(name.compareTo("submit") != 0) { 
        toFile.println(name + ": " + value); 
       } 
      } 
      toFile.println("<END>"); 

     //Close the file. 
      resultsFile.close(); 

     // Respond to client with a thank you 
     toClient.println("<html>"); 
     toClient.println("<title>Thank you!</title>"); 
      toClient.println("Thank you for participating"); 
     toClient.println("</html>"); 

     } catch(IOException e) { 
      e.printStackTrace(); 
      toClient.println(
     "A problem occured while recording your answers. " 
     + "Please try again."); 
     } 

     // Close the writer; the response is done. 
    toClient.close(); 
    } 
Смежные вопросы