HttpServletRequest from Seam
supernovasoftware.com May 6, 2006 3:14 PMIs it possible to directly access the HttpServletRequest in a bean.
For example I am now using a custom filter to add the follwing items to the request so that I can access them from Seam Components.
This currently works fine, but I am wondering if I can do away with this filter.
package pipetracker.web.servlet;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ExposeHttpServletRequestFilter implements Filter
{
 private static final Log logger = LogFactory.getLog(ExposeHttpServletRequestFilter.class);
 @SuppressWarnings("unused")
 private ServletContext servletContext;
 public void destroy()
 {
 }
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
 {
 HttpServletRequest httpServletRequest = (HttpServletRequest) request;
 addRemoteUser(httpServletRequest);
 addBasePath(httpServletRequest);
 try
 {
 chain.doFilter(request, response);
 } catch (Exception e)
 {
 logger.error("ended request due to exception", e);
 throw new ServletException(e);
 } finally
 {
 logger.debug("ended request");
 }
 }
 public void init(FilterConfig config) throws ServletException
 {
 servletContext = config.getServletContext();
 }
 private void addRemoteUser(HttpServletRequest httpServletRequest)
 {
 logger.info(httpServletRequest.getRemoteUser());
 httpServletRequest.setAttribute("remoteUsr", httpServletRequest.getRemoteUser());
 }
 private void addBasePath(HttpServletRequest httpServletRequest)
 {
 StringBuffer basePath = new StringBuffer();
 basePath.append(httpServletRequest.getScheme() + "://").append(httpServletRequest.getServerName() + ":" + httpServletRequest.getServerPort()).append(httpServletRequest.getContextPath() + "/");
 httpServletRequest.setAttribute("basePath", basePath.toString());
 }
}
 
    