Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 在web项目中放置文件的正确结构_Jakarta Ee_Servlets_Web - Fatal编程技术网

Jakarta ee 在web项目中放置文件的正确结构

Jakarta ee 在web项目中放置文件的正确结构,jakarta-ee,servlets,web,Jakarta Ee,Servlets,Web,我对学习web开发非常陌生。我使用的是head first java,在阅读第一章的同时,我完全陷入了一个问题。因此,直奔问题: 我正在使用Apache-tomcat-7.0.55。在webapps文件夹中,我创建了我的项目,其文件夹结构如下: /path_to/apache-tomcat-7.0.55/webapps -- /ch1/`my project folder` --WEB-INF/ --

我对学习web开发非常陌生。我使用的是head first java,在阅读第一章的同时,我完全陷入了一个问题。因此,直奔问题: 我正在使用Apache-tomcat-7.0.55。在webapps文件夹中,我创建了我的项目,其文件夹结构如下:

    /path_to/apache-tomcat-7.0.55/webapps
                   --  /ch1/`my project folder`
                        --WEB-INF/ --web.xml     
                            --classes/ --Ch1servlet.class
     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>");
               }
       }
我的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>

第一章Servlet
CH1服务
第一章Servlet
/服务1

Ch1servlet.java文件如下:

    /path_to/apache-tomcat-7.0.55/webapps
                   --  /ch1/`my project folder`
                        --WEB-INF/ --web.xml     
                            --classes/ --Ch1servlet.class
     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>");
               }
       }
公共类Ch1servlet扩展了HttpServlet{
公共void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出
IOException{
PrintWriter out=response.getWriter();
java.util.Date today=new java.util.Date();
out.println(““+
"" +
“HF的第1章Servlet”+
“
”+今天+”+); } }

当我启动服务器并运行时,尝试触发URL
http://localhost:8080/ch1/Serv1
使用我的浏览器,我总是得到
未找到的资源
错误。为什么会这样?我觉得我已经很好地遵循了书中指定的所有步骤。

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

package.com.example;
// ...
公共类Ch1Servlet扩展了HttpServlet{
// ...

}
如果web.xml正是您在服务器上拥有的web.xml,那么它就是格式不正确的xml,因为它在最后没有结束标记,因此web应用程序将不会被部署。哦,对不起,我在这里复制了错误的web.xml,但它有结束标记。启动tomcat时您有任何错误吗?如果是,请将其添加到您的问题中。否,tomcat正常启动。您的Ch1servlet.java类是否使用任何包?