Search code examples
javajspservletsweb.xml

Pass parameters from servlet to jsp using HTTPServletRequest return null


I'm trying to pass parameters from servlet to JSP using HTTPServletRequest but no luck. Someone can explain me where am I wrong?

Here the servlet: HelloServlet

package net.codejava;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class HelloServlet
 */
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

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

        request.setAttribute("name", "name1");
        request.setAttribute("surname", "surname1");
        request.getRequestDispatcher("index.jsp").forward(request, response);

    }

}

Here the JSP: JSP ("HelloServlet/index.jsp")

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HelloWorld Index</title>
</head>
<body>
    Welcome <%= request.getAttribute("name") %>
</body>
</html>

and the web.xml: web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
    <servlet>
        <servlet-name>helloservlet</servlet-name>
        <servlet-class>net.codejava.HelloServlet</servlet-class>
        <jsp-file>/HelloServlet/index.jsp</jsp-file>        
    </servlet>
    <servlet-mapping>
        <servlet-name>helloservlet</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping>
</web-app>

RESULT

Welcome null

Solution

  • Actually your action is never get called. Try changing the following parts in your code.

    Updated web.xml

    <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
        <servlet>
            <servlet-name>helloservlet</servlet-name>
            <servlet-class>net.codejava.HelloServlet</servlet-class>
       </servlet>
        <servlet-mapping>
            <servlet-name>helloservlet</servlet-name>
            <url-pattern>*.htm</url-pattern>
        </servlet-mapping>
    </web-app>
    

    and call your action by

    http://localhost:8080/HelloServlet/index.htm