Thursday, 24 April 2014

Servlets : Filter Config Demo


Click here to watch in Youtube : https://www.youtube.com/watch?v=uiEBhrkRx3I

Click the below Image to Enlarge
Servlets : Filter Config Demo

FilterConfigDemo Project Dir Structure
Servlets : Filter Config Demo

MyFilter.java
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MyFilter implements Filter
{
 FilterConfig config;

 public void init(FilterConfig config) throws ServletException
 {
  System.out
          .println("------------------------------------------------------");
  System.out.println(" init method is called in "
          + this.getClass().getName());
  System.out
          .println("------------------------------------------------------");

  this.config = config;
 }

 public void doFilter(ServletRequest req, ServletResponse resp,
         FilterChain chain) throws IOException, ServletException
 {

  PrintWriter out = resp.getWriter();

  String filterName = config.getFilterName();

  System.out.println("Filter Name : " + filterName + "\n");

  String isConstruction = config.getInitParameter("construction");

  if (isConstruction.equals("yes"))
  {
   out.print("This page is under construction");
  }
  else
  {
   /** sends request to next resource */
   chain.doFilter(req, resp);
  }

 }

 public void destroy()
 {
  // add code to release any resource
  System.out
          .println("------------------------------------------------------");
  System.out.println(" destroy method is called in "
          + this.getClass().getName());
  System.out
          .println("------------------------------------------------------");
 }
}
HelloServlet.java
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet
{
 private static final long serialVersionUID = 1L;

 public void init() throws ServletException
 {
  System.out
          .println("------------------------------------------------------");
  System.out.println(" Init method is called in "
          + this.getClass().getName());
  System.out
          .println("------------------------------------------------------");
 }

 public void doGet(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException
 {

  System.out.println(" doGet method is called in "
          + this.getClass().getName() + "\n\n");
  System.out
          .println("------------------------------------------------------");

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();

  out.print("<br>welcome to helloservlet<br>");

 }

 public void destroy()
 {
  System.out
          .println("------------------------------------------------------");
  System.out.println(" destroy method is called in "
          + this.getClass().getName());
  System.out
          .println("------------------------------------------------------");
 }

}
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 metadata-complete="true" version="3.0">
 <display-name>FilterConfigDemo</display-name>
 <description>
        This is a simple web application with a source code organization
        based on the recommendations of the Application Developer's Guide.
    </description>
 <servlet>
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>HelloServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>HelloServlet</servlet-name>
  <url-pattern>/hello</url-pattern>
 </servlet-mapping>
 <filter>
  <filter-name>myfilter</filter-name>
  <filter-class>MyFilter</filter-class>
  <init-param>
   <param-name>construction</param-name>
   <param-value>yes</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>myfilter</filter-name>
  <url-pattern>/hello</url-pattern>
 </filter-mapping>
</web-app>
index.html
<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>FilterConfigDemo</title>
</head>
<body>
<p>
<h3>FilterConfigDemo</H3>
<p></p>
<ul>
<li><a href="hello">FilterConfigDemo</a></li>

</ul>
</body></html>
Environment Used 

JDK version :1.6.0_30
Tomcat version : 7.0.50 

To Download FilterConfigDemoApp Project Click the below link

https://sites.google.com/site/javaee4321/servlets/FilterConfigDemoApp.zip?attredirects=0&d=1 

See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Wednesday, 23 April 2014

    Servlets : Send Redirect vs. Forward


    Click here to watch in Youtube : https://www.youtube.com/watch?v=xMgpVkRHFZE

    Click the below Image to Enlarge
    Servlets : Send Redirect vs. Forward

    Servlets : Send Redirect vs. Forward

    Servlets : Send Redirect vs. Forward

    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Servlets : Authentication Filter


    Click here to watch in Youtube : https://www.youtube.com/watch?v=X2ja-wJC02E

    Click the below Image to Enlarge
    Servlets : Authentication Filter

    AuthenticationFilterDemo Project Dir Structure

    Servlets : Authentication Filter
    AuthenticationFilter.java
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class AuthenticationFilter implements Filter
    {
    
     public void init(FilterConfig config) throws ServletException
     {
      System.out
              .println("------------------------------------------------------");
      System.out.println(" init method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    
     public void doFilter(ServletRequest request, ServletResponse response,
             FilterChain chain) throws IOException, ServletException
     {
    
      System.out.println(" doFilter method is called in "
              + this.getClass().getName() + "\n\n");
    
      PrintWriter out = response.getWriter();
    
      String username = request.getParameter("username");
      String password = request.getParameter("password");
      if (username.equals("admin") && password.equals("admin"))
      {
       // sends request to next resource
       chain.doFilter(request, response);
      }
      else
      {
       out.print("username or password is not correct!");
    
      }
     }
    
     public void destroy()
     {
      // add code to release any resource
      System.out
              .println("------------------------------------------------------");
      System.out.println(" destroy method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    }
    
    HelloServlet.java
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class HelloServlet extends HttpServlet
    {
     private static final long serialVersionUID = 1L;
    
     public void init() throws ServletException
     {
      System.out
              .println("------------------------------------------------------");
      System.out.println(" Init method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    
     public void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException
     {
    
      System.out.println(" doGet method is called in "
              + this.getClass().getName() + "\n\n");
      System.out
              .println("------------------------------------------------------");
    
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
    
      out.print("<br>welcome to helloservlet<br>");
    
     }
    
     public void destroy()
     {
      System.out
              .println("------------------------------------------------------");
      System.out.println(" destroy method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    
    }
    
    web.xml
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     metadata-complete="true" version="3.0">
     <display-name>AuthenticationFilterDemo</display-name>
     <description>
            This is a simple web application with a source code organization
            based on the recommendations of the Application Developer's Guide.
        </description>
     <servlet>
      <servlet-name>HelloServlet</servlet-name>
      <servlet-class>HelloServlet</servlet-class>
     </servlet>
     <servlet-mapping>
      <servlet-name>HelloServlet</servlet-name>
      <url-pattern>/hello</url-pattern>
     </servlet-mapping>
     <filter>
      <filter-name>AuthFilter</filter-name>
      <filter-class>AuthenticationFilter</filter-class>
     </filter>
     <filter-mapping>
      <filter-name>AuthFilter</filter-name>
      <url-pattern>/hello</url-pattern>
     </filter-mapping>
    </web-app>
    
    index.html
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>AuthenticationFilter Demo</title>
    </head>
    <body>
     <form action="hello" method="GET">
      
      UserName :  <input type="text" name="username" /><br /> 
      
      Password :&nbsp; &nbsp; <input type="password" name="password" /><br /> 
       
      <input type="submit" value="login" />
      
     </form>
    </body>
    </html>
    
    Environment Used 

    JDK version :1.6.0_30
    Tomcat version : 7.0.50

    To Download AuthenticationFilterDemoApp Project Click the below link
    https://sites.google.com/site/javaee4321/servlets/AuthenticationFilterDemoApp.zip?attredirects=0&d=1

    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Servlets : FilterChain


    Click here to watch in Youtube : https://www.youtube.com/watch?v=ADI9IMivvKA

    Click the below Image to Enlarge
    Servlets : FilterChain
    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Servlets : Filter Config


    Click here to watch in Youtube : https://www.youtube.com/watch?v=RZ59rIs54ck

    Click the below Image to Enlarge
    Servlets : Filter Config
    Servlets : Filter Config
    Servlets : Filter Config
    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Saturday, 19 April 2014

    Servlets : Send Redirect Introduction


    Click here to watch in Youtube : https://www.youtube.com/watch?v=8qTinfs-u1c

    Click the below Image to Enlarge
    Send Redirect Introduction
    Send Redirect Introduction
    Send Redirect Introduction
    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Servlets : Filter Interface


    Click here to watch in Youtube : https://www.youtube.com/watch?v=Eo-e3tDP3D8

    Click the below Image to Enlarge
    Servlets : Filter Interface
    Servlets : Filter Interface
    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Thursday, 17 April 2014

    Servlets Filter Lifecycle

    🚀 Master Java & Boost Your Coding Skills!

    Subscribe to Ram N Java for crystal-clear programming tutorials and step-by-step guides.

    🔔 Subscribe Now

    Introduction to Servlet Filter Lifecycle

    In Java web applications, a Filter is an object that transforms the header and content of requests and responses. The entire lifecycle of a filter is managed directly by the Servlet Container (such as Apache Tomcat) from the moment the application is deployed until the server shuts down.

    The 3 Major Phases of Filter Lifecycle

    1. Filter Loading & Initialization (init() Method)

    When the web application starts or deploys, the servlet container loads the filter class, creates its instance, and calls the init(FilterConfig config) method.

    • The init() method is called only once in the filter's lifetime.
    • Once initialized, the filter is placed into active service.

    2. Request Filtering (doFilter() Method)

    Whenever a matching client request comes in for a targeted servlet or URL pattern, the servlet container invokes the doFilter() method.

    • The doFilter() method is called multiple times (once for every matching request/response).
    • This is where you perform tasks like request preprocessing, logging, authentication, and forwarding along the FilterChain.

    3. Filter Destruction (destroy() Method)

    When the filter is taken out of service (such as when the web application is undeployed or the server is shut down), the servlet container calls the destroy() method.

    • The destroy() method is executed only once.
    • Use this method to release resources, close database connections, or perform necessary cleanup operations.

    Summary Flow

    Filter Class Loaded → Instance Created → init() [Once] → doFilter() [Multiple Times] → destroy() [Once]

    Recommended Related Tutorials

    Servlet Filter Introduction


    Click here to watch in Youtube : https://www.youtube.com/watch?v=LInemFmF-8E

    Click the below Image to Enlarge



    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Servlets : RequestDispatcher Example


    Click here to watch in Youtube : https://www.youtube.com/watch?v=x91U0h2xY2U

    Click the below Image to Enlarge


    RequestDispatcherDemo Project Dir Structure

    LoginServlet.java
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class LoginServlet extends HttpServlet
    {
    
     private static final long serialVersionUID = 1L;
    
     public void init() throws ServletException
     {
      System.out
              .println("------------------------------------------------------");
      System.out.println(" Init method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    
     public void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException
     {
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
    
      String userName = request.getParameter("username");
      String passWord = request.getParameter("password");
    
      if (userName.equalsIgnoreCase("ram") && passWord.equals("ram"))
      {
       RequestDispatcher requestDispatcher = request
               .getRequestDispatcher("/welcome");
       requestDispatcher.forward(request, response);
      }
      else
      {
       out.print("Sorry UserName or Password is Wrong!");
       RequestDispatcher requestDispatcher = request
               .getRequestDispatcher("/index.html");
       requestDispatcher.include(request, response);
      }
     }
    
     public void destroy()
     {
      System.out
              .println("------------------------------------------------------");
      System.out.println(" destroy method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    }
    
    WelcomeServlet.java
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class WelcomeServlet extends HttpServlet
    {
    
     private static final long serialVersionUID = 1L;
    
     public void init() throws ServletException
     {
      System.out
              .println("------------------------------------------------------");
      System.out.println(" Init method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    
     public void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException
     {
    
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
    
      String userName = request.getParameter("username");
      out.print("Welcome " + userName);
     }
    
     public void destroy()
     {
      System.out
              .println("------------------------------------------------------");
      System.out.println(" destroy method is called in "
              + this.getClass().getName());
      System.out
              .println("------------------------------------------------------");
     }
    }
    
    web.xml
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     metadata-complete="true" version="3.0">
     <display-name>RequestDispatcherDemo</display-name>
     <description>
            This is a simple web application with a source code organization
            based on the recommendations of the Application Developer's Guide.
        </description>
     
     <servlet>
      <servlet-name>LoginServlet</servlet-name>
      <servlet-class>LoginServlet</servlet-class>
     </servlet>
     <servlet>
      <servlet-name>WelcomeServlet</servlet-name>
      <servlet-class>WelcomeServlet</servlet-class>
     </servlet>
    
    
     <servlet-mapping>
      <servlet-name>LoginServlet</servlet-name>
      <url-pattern>/login</url-pattern>
     </servlet-mapping>
     <servlet-mapping>
      <servlet-name>WelcomeServlet</servlet-name>
      <url-pattern>/welcome</url-pattern>
     </servlet-mapping>
     
    </web-app>
    
    index.html
    <!DOCTYPE HTML>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>RequestDispatcherDemo</title>
    </head>
    <body>
     <form action="login" method="post">
      
      UserName :  <input type="text" name="username" /><br /> 
      
      Password :&nbsp; &nbsp; <input type="password" name="password" /><br /> 
       
      <input type="submit" value="login" />
      
     </form>
    </body>
    </html>
    
    Environment Used

    JDK version :1.6.0_30
    Tomcat version : 7.0.50

    To Download RequestDispatcherDemoApp Project Click the below link
    https://sites.google.com/site/javaee4321/servlets/RequestDispatcherDemoApp.zip?attredirects=0&d=1

    See also:

  • Servlets Tutorial
  • All Design Patterns Links
  • Tutorials