1

I am developing a simple web application. I use JSP and Servlets for that.

This is my project structure.

Project

Here is my code.

CardSelection.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>BulkCardSelect</title>
</head>
<body>

    <h1>This is BulkCardSelect</h1>

    <form action="/Servlet_Crd" method="post">  
        <label>Please insert card no</label>
        <input type = "text" name="cardno" id="cardno">     
        <input type = "submit"  value="Submit Details">
        <input type = "hidden" name="page" value="CardSelection">   
    </form>

</body>
</html>

Servlet_Crd.java ( which handles requests from Jsps)

public class Servlet_Crd extends HttpServlet
{

    RequestDispatcher dispatcher;

    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {

        String sPage = request.getParameter("page");
        Logger logger = Logger.getLogger(this.getClass().getName());

        logger.log(Level.SEVERE, sPage);

        if (sPage.equals("CardSelection"))
        {
            PrintWriter out = response.getWriter();
            out.println("Page name is " + sPage);
            dispatcher = request.getRequestDispatcher("/CardPromotion/CardList.jsp");
            dispatcher.forward(request, response);
            return;
        }
        else if (sPage.equals("CardList"))
        {
            PrintWriter out = response.getWriter();
            out.println("Page name is " + sPage);
            dispatcher = request.getRequestDispatcher("/CardPromotion/CardSelection.jsp");
            dispatcher.forward(request, response);
            return;
        }
    }
}

web.xml File

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>Servlet_Crd</servlet-name>
    <display-name>Servlet_Crd</display-name>
    <description>Handles Card Related work</description>
    <servlet-class>com.ub.icard.Servlet_Crd</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Servlet_Crd</servlet-name>
    <url-pattern>/Servlet_Crd</url-pattern>
  </servlet-mapping>
</web-app>

Problem is, when I submit the CardSelection.jsp it gives me a 404 Error saying Servlet is not found.Apparently the request is directed to "http://localhost:8081/Servlet_Crd" instead of "http://localhost:8081/BankApplication/Servlet_Crd". When I give

<form action="../ServletCrd" method="post"> it works. But when I use that way, I cannot send further requests to the same servlet. Somewhere down the line whole thing breaks.

My question is what can I do rather that using <form action="../ServletCrd" method="post">. Sorry about my ignorance but I am quite lost here.

Thanks.

Ran_Macavity
  • 154
  • 2
  • 21

0 Answers0