2010-03-07 22 views

Respuesta

24

Solo crea una clase que se extienda HttpServlet y anótala con @WebServlet en un determinado patrón de URL.

@WebServlet("/login") 
public class LoginServlet extends HttpServlet {} 

O cuando todavía estás en Servlet 2.5 o mayor (la anotación era nuevo ya Servlet 3.0), a continuación, registrar el servlet como <servlet> en web.xml y mapear en un cierto patrón de URL a través de <servlet-mapping>.

<servlet> 
    <servlet-name>login</servlet-name> 
    <servlet-class>com.example.LoginServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>login</servlet-name> 
    <url-pattern>/login</url-pattern> 
</servlet-mapping> 

A continuación, dejar que el enlace HTML o punto de acción del formulario a una dirección URL que coincide con el url-pattern del servlet.

<a href="${pageContext.request.contextPath}/login">Login</a> 
<form action="${pageContext.request.contextPath}/login" method="post"> 
    <input type="text" name="username"> 
    <input type="password" name="password"> 
    <input type="submit"> 
</form> 

Al utilizar los botones de envío, asegúrese de que utiliza type="submit" y no type="button". La explicación en la parte ${pageContext.request.contextPath} se puede encontrar en esta pregunta y respuesta relacionadas: How to use servlet URL pattern in HTML form action without getting HTTP 404 error.

Los enlaces y formularios con method="get" invocarán el método doGet() del servlet. Por lo general, utiliza este método para preprocesar una solicitud "en la carga de la página".

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

Formas con method="post" invocarán doPost() método de la servlet. Por lo general, utiliza este método para posprocesar una solicitud con datos de formulario enviados por el usuario (recopilar parámetros de solicitud, convertirlos y validarlos, actualizar el modelo, invocar acciones comerciales y, finalmente, generar una respuesta).

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

Para obtener más información sobre los servlets y encontrar ejemplos más concretos, a la cabeza our Servlets wiki page. Debe tenerse en cuenta que también puede usar un archivo JSP en lugar de un archivo HTML sin formato. JSP le permite interactuar con el backend a través de expresiones EL mientras produce salida HTML, y usar taglibs como JSTL para controlar el flujo. Vea también our JSP wiki page.

+0

gracias, pero muestra otro error. (Es decir, Error 500 – user246160

+0

Se ha lanzado una excepción. Lea la pila/registros y corrija el código en consecuencia. – BalusC

0

Por ejemplo creo un login.html así

<div class="container"> 

    <form method = "post" class="form-signin" role="form" action="LoginServlet"> 
    <h2 class="form-signin-heading">Please sign in</h2> 
    <input type="text" class="form-control" name = "username" placeholder="User Name" required autofocus> 
    <input type="password" class="form-control" name = "password" placeholder="Password" required> 
    <div class="checkbox"> 
     <label> 
     <input type="checkbox" value="remember-me"> Remember me 
     </label> 
    </div> 
    <input type="submit" class="btn btn-lg btn-primary btn-block" value="Sign in"> 
    </form> 

</div> 

Entre las etiquetas que llamo LoginServlet definiendo método como "post".

Cuestiones relacionadas