【发布时间】:2011-11-05 10:10:00
【问题描述】:
我想创建一个 servlet 类,它从 jsp 接收两个输入参数,比如说 login.jsp 和 servlet“CommandQueueTestServlet”将这些传入参数设置为标头参数,然后将请求和响应参数发送到另一个 servlet“CheckForCommandServlet ”。
我需要这样做只是为了测试我的功能,因为我的“CheckForCommandServlet”实际上会被其他一些具有标头参数的应用程序调用。
但对于我自己的测试,我想创建一个 servlet“CommandQueueTestServlet”来设置标头。
请检查下面我要解释的代码
javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class CommandQueueTestServlet extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String hwId=request.getParameter("hardware_id");
String panelistId=request.getParameter("panelist_id"));
// Setting input parameter as header parameter.Since request object dont have setHeader so setting in response
//object
response.setHeader("x-HwId",hwid);
response.setHeader("x-panelistId,panelistId);
// creating instance of CheckForCommandServlet and passing in doGet() method:
CheckForCommandServlet headerParam= new CheckForCommandServlet();
headerParam.doGet(request,response);
}
}
// Code for CheckForCommandServlet
public class CheckForCommandServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Enumeration enumeration = httpServletRequest.getHeaderNames();
String headerName;
String headerValue;
while (enumeration.hasMoreElements())
{
headerName = (String)enumeration.nextElement();
if (headerName == null)
{
headerName = "";
}
headerName = headerName.toLowerCase();
headerValue = httpServletRequest.getHeader(headerName);
logger.log(Level.INFO, "Header headerName " + headerName);
logger.log(Level.INFO, "Header ParamaterValue " + headerValue);
}
}
我的 CheckForCommandServlet 是如何获得在 CommandQueueTestServlet 中设置的 headerParemeter 的,因为它是在 header 参数中设置的。
【问题讨论】: