Filtering the URL
Please help on this program ,
import java.io.IOException;
import java.net.URLDecoder;
import java.util.Enumeration;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public abstract class RedirectFilter implements Filter {
private FilterConfig filterConfig;
java.util.Properties prop;
public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain) throws ServletException,IOException
{
HttpServletRequest servletrequest = (HttpServletRequest)req;
HttpServletResponse servletresponse = (HttpServletResponse)res;
String reqURI = servletrequest.getRequestURI();
Enumeration checkcharacters = servletrequest.getParameterNames();
boolean flag1 = false;
String key="";
String value="";
try
{
while(checkcharacters.hasMoreElements())
{
key=(String)checkcharacters.nextElement();
value=URLDecoder.decode(servletrequest.getParameter(key));
if(value.indexOf("<")>=0||value.indexOf(">")>=0||
value.indexOf("\"")>=0||value.indexOf("'")>=0||
value.indexOf("(")>=0||value.indexOf(")")>=0||
value.indexOf("&")>=0||value.indexOf("+")>=0 ||
value.indexOf("%")>=0 ||value.indexOf(";")>=0 ||
value.indexOf("~")>=0 ||value.indexOf("`")>=0 ||
value.indexOf("@")>=0 ||value.indexOf("#")>=0 ||
value.indexOf("$")>=0 ||value.indexOf("%")>=0 ||
value.indexOf("^")>=0 ||value.indexOf("[")>=0 ||
value.indexOf("]")>=0 ||value.indexOf("|")>=0 ||
value.indexOf("?")>=0 ||value.indexOf(".")>=0 ||
value.indexOf(",")>=0 ||value.indexOf("<")>=0 ||
value.indexOf("%")>=0 ||value.indexOf("")>=0 ||
value.indexOf(">")>=0 ||value.indexOf("\\")>=0 ||
value.indexOf(":")>=0)
servletresponse.sendRedirect("/portal/error404.htm");
}
chain.doFilter(servletrequest,servletresponse);
return;
}
catch(Exception e)
{
e.printStackTrace();
}
}
public FilterConfig getFilterConfig()
{
return this.filterConfig;
}
public void setFilterConfig (FilterConfig filterConfig)
{
this.filterConfig = filterConfig;
}
}
import java.io.IOException;
import java.net.URLDecoder;
import java.util.Enumeration;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public abstract class RedirectFilter implements Filter {
private FilterConfig filterConfig;
java.util.Properties prop;
public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain) throws ServletException,IOException
{
HttpServletRequest servletrequest = (HttpServletRequest)req;
HttpServletResponse servletresponse = (HttpServletResponse)res;
String reqURI = servletrequest.getRequestURI();
Enumeration checkcharacters = servletrequest.getParameterNames();
boolean flag1 = false;
String key="";
String value="";
try
{
while(checkcharacters.hasMoreElements())
{
key=(String)checkcharacters.nextElement();
value=URLDecoder.decode(servletrequest.getParameter(key));
if(value.indexOf("<")>=0||value.indexOf(">")>=0||
value.indexOf("\"")>=0||value.indexOf("'")>=0||
value.indexOf("(")>=0||value.indexOf(")")>=0||
value.indexOf("&")>=0||value.indexOf("+")>=0 ||
value.indexOf("%")>=0 ||value.indexOf(";")>=0 ||
value.indexOf("~")>=0 ||value.indexOf("`")>=0 ||
value.indexOf("@")>=0 ||value.indexOf("#")>=0 ||
value.indexOf("$")>=0 ||value.indexOf("%")>=0 ||
value.indexOf("^")>=0 ||value.indexOf("[")>=0 ||
value.indexOf("]")>=0 ||value.indexOf("|")>=0 ||
value.indexOf("?")>=0 ||value.indexOf(".")>=0 ||
value.indexOf(",")>=0 ||value.indexOf("<")>=0 ||
value.indexOf("%")>=0 ||value.indexOf("")>=0 ||
value.indexOf(">")>=0 ||value.indexOf("\\")>=0 ||
value.indexOf(":")>=0)
servletresponse.sendRedirect("/portal/error404.htm");
}
chain.doFilter(servletrequest,servletresponse);
return;
}
catch(Exception e)
{
e.printStackTrace();
}
}
public FilterConfig getFilterConfig()
{
return this.filterConfig;
}
public void setFilterConfig (FilterConfig filterConfig)
{
this.filterConfig = filterConfig;
}
}
it throw fallowing exception,Please help on this ..
java.lang.IllegalStateException: response already committed
at weblogic.servlet.internal.ServletResponseImpl.sendRedirect(ServletResponseImpl.java:554)
at RedirectFilter.doFilter(RedirectFilter.java:79)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at RedirectFilter.doFilter(RedirectFilter.java:84) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at eblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2771)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2433)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:172)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:145)

