# Servlet doGet und doPost



## kiesa747 (20. September 2011)

Hey,

ich habe 2 parameter : User und Pass die würde ich gerne zum servlet übergeben 

wenn ich die doGet methode benutze würde es so aussehen :

"link?User="+ausgaben aus textfield+"&pass"+ausgabe aus textfield


```
pass = Password.getValue();
			name= User.getValue();
			
			
			Resource newPictureResource = new ExternalResource("http://localhost:8888/PieChart?UserName="+name+"&Password="+pass);
			Success.setSource(newPictureResource);
			editContent.addComponent(Success);
```

empfangen im servlet :

```
String UserName = request.getParameter("UserName");
		String Password = request.getParameter("Password");
```

habs getestet funktioniet.

wenn der UserName + password richtig sind wird ein "Success" bild gepostet.

wenn mans so macht kann man die parameter oben im browser sehen , das will aber wirklich keiner . 

meine Frage: wie würde die parameter übergabe an die Servlet methode "doPost" aussehen ?
die doPost methode sendet die parameter im hintergrund so das man die im "Direkt" im browser nicht sieht.


----------



## Billie (20. September 2011)

Mit einem HTML-Formular das als Methode POST und nicht GET verwendet?


```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<body>
      <form name="form" id="form" action="PieChart" method="post" enctype="application/x-www-form-urlencoded">
        User: <input type="text" name="UserName" value="" /><br />
        Password: <input type="password" name="Password" value="" />
        <input type="submit" name="Login" value="Login" />
      </form>
     </body>
</html>
```

Es ist übrigens gängige Praxis die doGet- und doPost-Methoden in einem Servlet zusammenzufassen.

Beispiel:


```
public class GetPostServlet
    extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
        IOException {
        doGetPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
        IOException {
        doGetPost(request, response);
    }

    private void doGestPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
        IOException {
        // Code
    }
}
```

In den meisten Fällen interessiert es Dich nicht unbedingt, ob die Daten per GET od. POST übertragen wurden. Du kannst natürlich auch nur POST-Requests behandeln - zB für ein Login-Servlet durchaus sinnvoll.


----------

