2013-01-23 167 views
0

当我尝试将我的表单提交给servlet处理时,浏览器指示请求的资源不可用,并出现HTTP 404错误。该URL的样子:JSP Servlet请求的资源()不可用

http://localhost:8080/Website/DateSearchServlet 

我的XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
<servlet> 
    <servlet-name>DateSearchServlet</servlet-name> 
    <servlet-class>DB.DateSearchServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>DateSearchServlet</servlet-name> 
    <url-pattern>/Search/*</url-pattern> 
</servlet-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 

要叫我用这简单的形式在servlet:

<form name="dateSearch" action="DateSearchServlet" method="post"> 
    <label for="from">Date From</label> 
    <input type="text" id="from" name="from" /> 
    <label for="to">Date To</label> 
    <input type="text" id="to" name="to" /> 
    <input type="submit" id="submit" value="Submit"> 
</form> 

最后是这样的servlet:

@WebServlet(name = "DateSearchServlet", urlPatterns = {"/Search"}) 
public class DateSearchServlet extends HttpServlet { 

DatabaseConnector dataManager; 
boolean dbOK = false; 
HomeList homes = new HomeList(); 

@Override 
public void init() { 
    dataManager = new DatabaseConnector(); 
} 

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

    String dateFrom = request.getParameter("from"); 
    String dateTo = request.getParameter("to"); 

    if (dateFrom == null || dateTo == null) { 
     dbOK = false; 
    } else { 
     dbOK = true; 
    }//end if 

    request.setAttribute("homeList", null); 

    if (dbOK) { 
     homes = dataManager.getPropertiesSearch(dateFrom, dateTo); 
     request.setAttribute("homeList", homes); 
     request.getRequestDispatcher("bookings.jsp").forward(request, response); 
    } else { 
     System.out.println("DBNOTOK"); 
     //error... 
    } 
} 
} 

谢谢

+0

您好,感谢您的意见,我有按照建议改变表单动作,但似乎仍然抛出相同的资源未找到错误 – user1851487

回答

2

web.xml中的URL模式未针对您正在调用的servlet进行正确配置。

因此,在形式的行动改变为URL 搜索/ DateSearchServlet

0

试试这个....

<form name="dateSearch" action="DateSearchServlet.action" method="post"> 
<label for="from">Date From</label> 
<input type="text" id="from" name="from" /> 
<label for="to">Date To</label> 
<input type="text" id="to" name="to" /> 
<input type="submit" id="submit" value="Submit">