2014-10-16 67 views
0

我对学习Web开发极其新颖。我正在使用头先的Java,并在第一章后,我完全陷入了一个问题。所以,直接问题: 我使用Apache-tomcat-7.0.55。在web应用文件夹,我创建了我的项目,它具有文件夹结构如下:在网络项目中放置文件的正确结构

/path_to/apache-tomcat-7.0.55/webapps 
        -- /ch1/`my project folder` 
         --WEB-INF/ --web.xml  
          --classes/ --Ch1servlet.class 

和我的web.xml如下:

<?xml version="1.0" ?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
      version="2.4" 
> 
<servlet> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <servlet-class>Ch1servlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <url-pattern>/Serv1</url-pattern> 
</servlet-mapping> 

和Ch1servlet .java文件如下:

 public class Ch1servlet extends HttpServlet{ 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
    IOException{ 
      PrintWriter out = response.getWriter(); 
      java.util.Date today = new java.util.Date(); 
       out.println("<html>" + 
           "<body>" + 
           "<h1 align=center>HF\'s Chapter1 Servlet</h1>" + 
            "<br>" + today + "</body>" + "</html>"); 
       } 
     } 

当我启动服务器并运行尝试启动URL时http://localhost:8080/ch1/Serv1使用我的浏览器,我总是得到resource not found错误。为什么?我觉得我已经完成了书中指定的所有步骤?

+0

如果这个web.xml与服务器上的web.xml完全一样,那么它的xml格式不正确,因为它最终会结束标记,因此Web应用程序将不会部署。 – A4L 2014-10-16 12:20:37

+0

哦对不起,我在这里复制了它,但它有结束标记。 – neerajDorle 2014-10-16 12:21:27

+0

你在启动tomcat时是否有错误?如果是,请将其添加到您的问题。 – A4L 2014-10-16 12:26:07

回答

0

您应该将servlet类放在java包中。无包servlet是否工作取决于旧版Tomcat和JVM版本的特定组合。在这里我可以看到你正在使用一个相当新的Tomcat版本,如果你在书籍/教程中看到这个例子,那么它肯定是过时的。

package com.example; 
 

 
// ... 
 

 
public class Ch1Servlet extends HttpServlet { 
 
    // ... 
 
}

而且你的web.xml文件应该是这样的:

<? xml version="1.0" encoding="UTF-8" ?> 
 
<web-app 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" version="3.0"> 
 
    <servlet> 
 
    <servlet-name>Chapter1 Servlet 
 
     </servlet-name> 
 
     <servlet-class>com.example.Ch1Servlet</servlet-class> 
 
    </servlet> 
 
    <servlet-mapping> 
 
     <servlet-name>Chapter1 Servlet</servlet-name> 
 
     <url-pattern>/Serv1</url-pattern> 
 
    </servlet-mapping> 
 
</web-app>

试一试,看看。我相信你的问题是与包。