JSP不识别Servlet-404

时间:2018-04-08 10:24:42

标签: java jsp servlets servlet-3.0

我正在开发一个简单的Web应用程序。我使用JSP和Servlets。

这是我的项目结构。

Project

这是我的代码。

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(处理来自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文件

<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>

问题是,当我提交CardSelection.jsp时,它给出了一个404错误,指出找不到Servlet。显然请求被定向到"http://localhost:8081/Servlet_Crd"而不是"http://localhost:8081/BankApplication/Servlet_Crd"。当我给出

<form action="../ServletCrd" method="post">它有效。但是当我使用这种方式时,我无法向同一个servlet发送更多请求。在某个地方,整个事情都会破裂。

我的问题是我可以做什么,而不是使用<form action="../ServletCrd" method="post">。抱歉我的无知,但我在这里很遗憾。

感谢。

0 个答案:

没有答案