How do I read request parameter from servlet?

When creating an application with Java servlet most of the time we will work with the request and response object. From the request object we can read the parameter submitted by the user’s browser either through an HTTP GET or POST method.

Basically what you need to know is when you try to get the passed parameter from inside the servlet you can call the request.getParameter(paramName) where the paramName is the name of parameter that you want to read from the servlet request object.

In this example I’ll show you how to read the parameter to process user action in a very simple login servlet. In this example we’ll create a login form, a JSP page that accept user input for a username and password.

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Login Page</title>
</head>
<body>
<form id="loginForm" action="${pageContext.request.contextPath}/login" method="post">
    <label for="username">Username</label>
    <input id="username" type="text" name="username"/>
    <label for="password">Password</label>
    <input id="password" type="password" name="password"/>
    <input type="submit" value="Login"/>
</form>
</body>
</html>

In this form you’ll have to input box for a username and password. You also have a submit button for executing the login process. Now we have the form, let’s create the login servlet.

package org.kodejava.servlet;

import javax.servlet.Servlet;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "LoginServlet", urlPatterns = "/login")
public class LoginServlet extends HttpServlet implements Servlet {
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws IOException {
        doLogin(request, response);
    }

    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws IOException {
        doLogin(request, response);
    }

    protected void doLogin(HttpServletRequest request,
                           HttpServletResponse response) throws IOException {
        // Here we read the parameters from servlet request
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        PrintWriter pw = response.getWriter();
        if (username != null && username.equals("administrator")
                && password != null && password.equals("secret")) {
            // authentication accepted!
            pw.println("Success!");
        } else {
            // authentication denied!
            pw.println("Denied!");
        }
        pw.close();
    }
}   

Now you have everything, you can deploy the application on your servlet container, for example Apache Tomcat. Access your login page in the following address:

http://localhost:8080/login.jsp

You can also access the servlet directly from the following url:

http://localhost:8080/login

To pass the username and password information you can append the parameter like:

http://localhost:8080/login?username=administrator&password=secret

This will call the servlet and validate your login information.

Maven dependencies

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
</dependency>

Maven Central

Wayan

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.