TECHNICALFACILITATION.COM - THE ULTIMATE WEBSPHERE AND JAVA CERTIFICATION GUIDES AND RESOURCES
Google
Download the Completed Solution: 08ServletFilters.ear.

Scroll to the bottom of the page for pertinent code snippets.

Creating a Custom Servlet Filter

This free, multimedia tutorial shows you how to use IBM's Rational Application Developer (IRAD) 6.0 to create a Servlet Filter. The web.xml file is then edited to apply the filter to the CountrySnooperServlet, to ensure that only true, patriotic Americans actually get to see the output of the CountrySnooperServlet. We also add in a little TimeStamping or Time Logging functionality, but that's neither here nor there.

If you found something helpful here, please do your part and help support the site. Link to us, buy some books, support our sponsors, tell your developer friends about us, and remember: Happy Java!


package com.examscam.web.filter;

import java.io.IOException;
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 AmericanFilter implements Filter {

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}


public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
String language = request.getLocale().getDisplayLanguage();

if (language!="Spanish") {
response.getWriter().print("Only people speaking American can view this Servlet.");
}
else{
chain.doFilter(request, response);
}
System.out.println("Time after the servlet is run: " + System.currentTimeMillis());
}


public void destroy() {
// TODO Auto-generated method stub
}

}

package com.examscam.servlet;

import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CountrySnooper extends HttpServlet implements Servlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String country = request.getLocale().getCountry();
if (country.equals("CA")){
response.getWriter().print("Hey, lets go for a Tim Hortons coffee!");
}
else {
response.getWriter().print("We love people who speak " + request.getLocale().getDisplayLanguage());

}
}
}



<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
ExamScamWeb</display-name>
<filter>
<description>
</description>
<display-name>
AmericanFilter</display-name>
<filter-name>AmericanFilter</filter-name>
<filter-class>com.examscam.web.filter.AmericanFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AmericanFilter</filter-name>
<url-pattern>/AmericanFilter</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AmericanFilter</filter-name>
<servlet-name>CountrySnooper</servlet-name>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

<servlet>
<description>
</description>
<display-name>
CountrySnooper</display-name>
<servlet-name>CountrySnooper</servlet-name>
<servlet-class>
com.examscam.servlet.CountrySnooper</servlet-class>
</servlet>
<servlet>
<description>
</description>
<display-name>
SessionServlet</display-name>
<servlet-name>SessionServlet</servlet-name>
<servlet-class>
com.examscam.servlet.SessionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CountrySnooper</servlet-name>
<url-pattern>/CountrySnooper</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SessionServlet</servlet-name>
<url-pattern>/SessionServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/examscam-taglib.tld</taglib-uri>
<taglib-location>/WEB-INF/examscam-taglib.tld</taglib-location>
</taglib>
</jsp-config>


</web-app>

Google
THE ULTIMATE CERTIFICATION AND WEBSPHERE RESOURCES - BUY THEM NOW ON AMAZON
eXTReMe Tracker