0

I wrote a servlet that's supposed to instantiate a JavaBean, set values for its variables, set the JavaBean object as an attribute for the HttpServletRequest request object, forward the request to a jsp, then display JavaBean's values in the jsp, but I can't seem to get any of the values to display on the jsp. Here's the servlet:

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html");
    // set the response type before sending data
    PrintWriter out = response.getWriter();
    HttpRequestData requestData = new HttpRequestData();
    String url = "/HttpRequestData.jsp";

    requestData.setRemoteComputer(request.getRemoteUser());
    requestData.setHttpMethod(request.getMethod());
    requestData.setPortNumber(request.getServerPort());
    requestData.setQuery(request.getQueryString());
    requestData.setQueryParameter(request.getParameter("queryParameter"));
    requestData.setRemoteComputerAddress(request.getRemoteAddr());
    requestData.setRequestProtocol(request.getProtocol());
    requestData.setRequestUri(request.getRequestURI());
    requestData.setRequestUrl(request.getRequestURL());
    requestData.setServerLocale(request.getLocale());
    requestData.setServerName(request.getServerName());
    requestData.setUserAgent(request.getParameter("User-Agent"));

    request.setAttribute("httpParameters", requestData);

    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);
    dispatcher.forward(request, response);
}

and here's the part of the jsp that I'm trying to get to display what I want:

<ul>
    <li>Remote Computer Making the Request: ${httpParameters["remoteComputer"]}</li>
    <li>Address of the Remote Computer: ${request.remoteComputerAddress}</li>
    <li>HTTP Method: ${request.httpMethod}</li>
    <li>Request URI: ${request.requestUri}</li>
    <li>Request URL: ${request.requestUrl}</li>
    <li>Request Protocol: ${request.requestProtocol}</li>
    <li>Server Name: ${request.serverName}</li>
    <li>Port Number: ${request.portNumber}</li>
    <li>Server Locale: ${request.serverLocale}</li>
    <li>Query String: ${request.query}</li>
    <li>Query Parameter: ${request.queryParameter}</li>
    <li>User Agent: ${userAgent}</li>
</ul>

I'm sure I'm doing it horribly wrong and I'm trying to learn as I go, but I'm totally stuck on what to do

  • You've set it as request attribute with name of `httpParameters`. You should obviously get it via `${httpParameters}` not via `${request}`. – BalusC Apr 21 '22 at 16:40

0 Answers0