I get this exception when i m trying to forward or redirect to an error page..pls suggest...working obn this for 2 long.I tried reqdispatecher.fwd and also res.sendRedirect..but always get illegal state excpetion.
package com.ibasis.dss.web.filter;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* This class handles filter requests.
*/
public class RedirectFilter implements Filter
{
private static final Log log = LogFactory.getLog(RedirectFilter.class);
private FilterConfig config;
String url ="redirectError.jsp";
public void init(FilterConfig filterConfig) throws ServletException
{
this.config = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws java.io.IOException, ServletException
{
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
try {
HttpSession session = req.getSession();
String start = (String) session.getServletContext().getInitParameter("Startuptime");
//log.debug("Start is.."+start);
String end = (String)session.getServletContext().getInitParameter("Endtime");
if(isApplicationDisabled(start,end))
{
RequestDispatcher rd = req.getRequestDispatcher(url);
rd.forward(req, res);
}
else
{
chain.doFilter(request, response); // Permission granted
}
}
catch(Exception e) {e.printStackTrace();}
}
public static boolean isApplicationDisabled(String start, String end) {
double startValue = Double.parseDouble(start) ;
double endValue = Double.parseDouble(end);
Calendar cal = new GregorianCalendar();
int getHrs=cal.get(Calendar.HOUR_OF_DAY);
int getMins = cal.get(Calendar.MINUTE);
double mins = (double)getMins/60;
double time = getHrs+mins;
if(time >= startValue && time <= endValue) {
//log.debug("COndition is.."+time);
return true;
}
else {
return false;
}
}
public void destroy()
{
this.config = null;
}
}