我知道它与WEB-INF\classes
有关。但是这里是我在我的类路径中放入适当的.jar
文件后编译的代码。
import java.io.* ;
import javax.servlet.http.* ;
public class BeeServlet extends HttpServlet
{
public void doGet( HttpServletRequest request , HttpServletResponse response )
{
response.setContentType("text/html");
try
{
PrintWriter out = response.getWriter();
out.println( "a-buzz-buzz ..." );
out.close();
}
catch( Exception e )
{
System.out.println( "cannot get writer: " + e );
}
}
}
它编译得很好,但我没有找到任何类型的例子,如在哪里放置它以及如何使用localhost:8080
URL调用它。我这样做是在没有IDE的情况下尝试尽可能地学习,但这一点只是让我感到困惑......
编辑 - 我编译了这段代码。我将它放入tomcat 7.0 / webapps / BeeServlet / WEB-INF / classes目录中,就像所有教程所说的那样。我键入localhost:8080 / BeeServlet,没有任何反应。这没有意义。
答案 0 :(得分:1)
您需要一个Web应用程序部署描述符(web.xml),它提供URL到您的Servlet的映射以及Web服务器上项目的某个目录结构。通常,如果在IDE中使用Web应用程序项目模板,则会为您创建此结构。
理论阅读:http://tomcat.apache.org/tomcat-7.0-doc/appdev/deployment.html
教程:http://www.nogoodatcoding.com/howto/deploy-a-servlet-on-tomcat
web.xml文件示例:running and deploying servlet with eclipse and tomcat 7
答案 1 :(得分:1)
webapp的结构如下:
root
- WEB-INF
- classes
- .class files, respecting the package hierarchy
- lib
- .jar files used by your application, other than the servlet and JSP jar files
- web.xml
- whatever you want
在webapps下部署根目录,或者制作包含根目录内容的war文件并部署此war文件,然后你将获得一个webapp。
如果使用注释声明servlet及其映射,则自servlet 3.0(Tomcat 7)以来,web.xml不是必需的。否则,你需要一个。