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>
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024