路径中的Servlet映射错误

时间:2013-05-09 09:11:33

标签: jsp servlets

我是JSP和Servlets的新手。

我有两个JSP页面Index.jsp和Edit.jsp以及一个Controller.java。

  1. 的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>
    
  2. 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>
    
  3. 控制器

    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);
       }}
    
  4. 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]

    请建议!!

2 个答案:

答案 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。