我是JSP和Servlets的新手。
我有两个JSP页面Index.jsp和Edit.jsp以及一个Controller.java。
的index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Index</title>
</head>
<body>
<Form action="/ch2/servletController/Controller">
<h1>Hello World!</h1>
<a href="Edit.jsp"> Click here </a>
<input type="submit" value="Edit" name="gotoEdit" />
</Form>
</body>
</html>
edit.jsp文件
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Edit</title>
</head>
<body>
<form action="Controller">
<h3>This is a simple HTML page that has a form in it.</h3>
<h3>If there is a value for the hobby in the query string, then it is used to initialize the hobby element.
</h3>
<p>
Hobby:
<input type="text" name="hobby" value="${param.hobby}" />
<input type="submit" value="Confirm" name="processButton" />
</p>
</form>
</body>
</html>
控制器
package ch2.servletController;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Controller extends HttpServlet
{
protected void doGet (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
String address;
if (request.getParameter("processButton") !=null)
{
address = "Process.jsp";
}
else if (request.getParameter("confirmButton") !=null)
{
address = "Confirm.jsp";
}
else
{
address = "Edit.jsp";
}
RequestDispatcher dispatcher =
request.getRequestDispatcher(address);
dispatcher.forward(request, response);
}}
Web Xml
<servlet>
<servlet-name>Controller</servlet-name>
<servlet-class>ch2.servletController.Controller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>/ch2/servletController/Controller</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
所以问题是当我运行index.jsp页面并单击“编辑”按钮时,它会出错。
![我收到的错误] [4]
请建议!!
答案 0 :(得分:0)
以下是一些建议:
1)由于您在href中引用Edit.jsp,请确保两个jsp都位于同一文件夹下。 最好的方法是使href =&#34;&lt;%= request.getContextPath()%&gt; /Edit.jsp"
2)同样适用于表格行动,即
action =&#34;&lt;%= request.getContextPath()%&gt; / ch2 / servletController / Controller&#34;
希望这有助于你的事业。
答案 1 :(得分:0)
在Edit.jsp中,表单操作是Controller,它应该与web.xml文件中的servlet的url-pattern相对应。在您的情况下,如果您将Edit.jsp表单操作更改为表单action =&#34; / ch2 / servletController / Controller&#34;,则jsp代码段将找到Servlet。