我正在开发一个简单的Web应用程序。我使用JSP和Servlets。
这是我的项目结构。
这是我的代码。
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">
。抱歉我的无知,但我在这里很遗憾。
感谢。