Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

response.addHeader & response.setHeader not working for Servlet/JSP/Filter

843842May 13 2008 — edited May 13 2008
Hi all,

I have been trying to do something which I thought should be very simple, but it does not work for some reason. I am using tomcat 5.5.12 with JDK 1.6.0_05
I am trying to send some headers from my JSP file to the servlet. I tried
using this code.

response.addHeader("sample", "Sample Value");
response.setHeader("sample", "Sample Value");

In the servlet i tried retrieving them, but with no success.

I read somewhere that neither a JSP nor a servlet has the right to modify
the request or response. So the suggestion was to use Filters. I have tried
using filters the code is pasted hereunder. but this thing also doesnt seem
to work.

JSP CODE
++++++++++++
<%
response.setContentType ("text/html");
response.setHeader("Sample","Sample Value");
System.out.println("CONTAINS HEADER = " +
response.containsHeader("Sample"));
response.sendRedirect("CompressionTest");
%>
++++++++++++

FILTER CODE
++++++++++++
import java.io.IOException;
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 class TestFilter implements Filter{

private FilterConfig config = null;

public void init(FilterConfig filterConfig) {
config = filterConfig;
}

public void destroy() {
this.config = null;
}

public void doFilter ( ServletRequest request, ServletResponse response,
FilterChain chain ) throws IOException, ServletException {

System.out.println("INSIDE THE DOFILTER METHOD IN THE FILTER SERVLET.
SETTING THE HEADER NOW.");
HttpServletResponse httpresponse = (HttpServletResponse)response;
HttpServletRequest httprequest = (HttpServletRequest)request;
System.out.println("VALUE OF HEADER FROM JSP = " +
httprequest.getHeader("Sample"));
httpresponse.setHeader("testing", "testing value");
System.out.println("INSIDE THE DOFILTER METHOD IN THE FILTER SERVLET.
AFTER SETTING THE HEADER.");
chain.doFilter(request, httpresponse);
return;
}
}
++++++++++++

SERVLET CODE
++++++++++++
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.*;
import javax.servlet.http.*;

public class TestServlet extends HttpServlet {

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

HttpServletRequest httprequest = (HttpServletRequest)request;
System.out.println("VALUE OF HEADER FROM JSP = " +
httprequest.getHeader("Sample"));
System.out.println("VALUE OF HEADER FROM FILTER = " +
httprequest.getHeader("testing"));
}
}

Please advice. Thanks in Advance.

~ Pai
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 10 2008
Added on May 13 2008
2 comments
3,317 views