ServletConfig
interface is part of the Jakarta Servlet API and is used to pass configuration information to a servlet at initialization time. In this blog post, we will explore the ServletConfig
interface and demonstrate how to use it in a Java servlet application.Step 1: Add Servlet Dependency to pom.xml
First, add the Jakarta Servlet dependency to your pom.xml
file. We are using version 6.1.0 in this example.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.javaguides.servlet.tutorial</groupId>
<artifactId>java-servlet-tutorial</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>java-servlet-tutorial Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- Jakarta Servlet dependency -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>java-servlet-tutorial</finalName>
</build>
</project>
Step 2: Create Servlet using ServletConfig
Let's create a servlet that demonstrates the use of ServletConfig
to retrieve initialization parameters.
MyServlet.java
package net.javaguides.servlet.tutorial.httpservlet;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/config")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private String email;
private String phone;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
email = config.getInitParameter("email");
phone = config.getInitParameter("phone");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html><body>");
out.println("<h1>ServletConfig Example</h1>");
out.println("<p>Email: " + email + "</p>");
out.println("<p>Phone: " + phone + "</p>");
out.println("</body></html>");
out.close();
}
}
In this example, the MyServlet
class uses the ServletConfig
interface to retrieve initialization parameters email
and phone
defined in the servlet configuration.
Step 3: Configure Initialization Parameters
To configure initialization parameters, use the @WebInitParam
annotation in the servlet class.
MyServlet.java (with @WebInitParam
)
package net.javaguides.servlet.tutorial.httpservlet;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebInitParam;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(
urlPatterns = "/config",
initParams = {
@WebInitParam(name = "email", value = "admin@example.com"),
@WebInitParam(name = "phone", value = "123-456-7890")
}
)
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private String email;
private String phone;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
email = config.getInitParameter("email");
phone = config.getInitParameter("phone");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html><body>");
out.println("<h1>ServletConfig Example</h1>");
out.println("<p>Email: " + email + "</p>");
out.println("<p>Phone: " + phone + "</p>");
out.println("</body></html>");
out.close();
}
}
In this example, the @WebInitParam
annotation is used to specify the initialization parameters directly in the servlet class.
Conclusion
In this blog post, we explored the ServletConfig
interface and demonstrated how to use it in a Java servlet application to retrieve initialization parameters. We also showed how to configure these parameters using the @WebInitParam
annotation. The ServletConfig
interface is essential for passing configuration information to a servlet at initialization time, making it a powerful tool for servlet developers.
References
Related Servlet Posts
- What is a Servlet in Java?
- Servlet Life Cycle
- Servlet Interface Example
- GenericServlet Class Example
- HttpServlet Class Example Tutorial
- HttpServlet doGet() Method Example
- HttpServlet doPost() Method Example
- @WebServlet Annotation Example
- @WebInitParam Annotation Example
- @WebListener Annotation Example
- @WebFilter Annotation Example
- @MultipartConfig Annotation Example
- How to Return a JSON Response from a Java Servlet
- Servlet Registration Form + JDBC + MySQL Database Example
- Login Form Servlet + JDBC + MySQL Example
- Servlet JDBC Eclipse Example Tutorial
- JSP Servlet JDBC MySQL CRUD Example Tutorial
- Servlet + JSP + JDBC + MySQL Example
- Registration Form using JSP + Servlet + JDBC + Mysql Example
- Login Form using JSP + Servlet + JDBC + MySQL Example
- JSP Servlet Hibernate CRUD Example
- JSP Servlet Hibernate Web Application
- Hibernate Registration Form Example with JSP, Servlet, MySQL
- Login Form using JSP + Servlet + Hibernate + MySQL Example
Hello Ramesh,
ReplyDeleteNice blog! I am editor at Java Code Geeks (www.javacodegeeks.com). We have the JCG program (see www.javacodegeeks.com/join-us/jcg/), that I think you’d be perfect for.
If you’re interested, send me an email to eleftheria.drosopoulou@javacodegeeks.com and we can discuss further.
Best regards,
Eleftheria Drosopoulou