mvc (servlets,jsp,web.xml) 的正确文件结构
correct file structure for mvc (servlets,jsp,web.xml)
我正在编写一个名为FirstApp的简单mvc应用程序。该项目的文件结构如下:
FirstApp
|--entername.html
|--WEB-INF
|--web.xml
|--classes
|--web
|--EnterName.class
|--model
当我尝试在 tomcat 服务器上 运行 它时,它给我一个 HTTP 500 错误。
据我所知,我的部署描述符是正确的。
<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"
metadata-complete="true">
<display-name>Welcome to first servlet</display-name>
<description>
Welcome to My first servlet on linux
</description>
<servlet>
<servlet-name>first servlet</servlet-name>
<servlet-class>web.EnterName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first servlet</servlet-name>
<url-pattern>/Enter.do</url-pattern>
</servlet-mapping>
</web-app>
EnterName.java 文件
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class EnterName extends HttpServlet {
public void doPost(HttpServletRequest req,HttpServletResponse res) throws IOException,ServletException
{
res.setContentType("text/html");
PrintWriter pw = res.getWriter();
pw.println("hello how are you ");
}
}
导致错误的原因是什么?model 文件夹中目前没有文件
您的 class 不在 web
包中,因为您声称它在 web.xml
文件和目录结构中。
添加
package web;
作为 class 的第一行。
WEB-INF/classes
下的目录结构必须与包结构完全匹配。 class 仅当其实际包为 web
且其简单名称为 EnterName
.
时才命名为 web.EnterName
我正在编写一个名为FirstApp的简单mvc应用程序。该项目的文件结构如下:
FirstApp
|--entername.html
|--WEB-INF
|--web.xml
|--classes
|--web
|--EnterName.class
|--model
当我尝试在 tomcat 服务器上 运行 它时,它给我一个 HTTP 500 错误。
据我所知,我的部署描述符是正确的。
<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"
metadata-complete="true">
<display-name>Welcome to first servlet</display-name>
<description>
Welcome to My first servlet on linux
</description>
<servlet>
<servlet-name>first servlet</servlet-name>
<servlet-class>web.EnterName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first servlet</servlet-name>
<url-pattern>/Enter.do</url-pattern>
</servlet-mapping>
</web-app>
EnterName.java 文件
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class EnterName extends HttpServlet {
public void doPost(HttpServletRequest req,HttpServletResponse res) throws IOException,ServletException
{
res.setContentType("text/html");
PrintWriter pw = res.getWriter();
pw.println("hello how are you ");
}
}
导致错误的原因是什么?model 文件夹中目前没有文件
您的 class 不在 web
包中,因为您声称它在 web.xml
文件和目录结构中。
添加
package web;
作为 class 的第一行。
WEB-INF/classes
下的目录结构必须与包结构完全匹配。 class 仅当其实际包为 web
且其简单名称为 EnterName
.
web.EnterName