NSF*_*NSF 0 java eclipse tomcat servlets
我正在使用Tomcat 7.0和Eclipse.tomcat服务器与eclipse同步.在创建我的第一个类之后,我将.java文件放在src /(默认包)/HelloWorld.java下(不是很好的做法我知道但只是为了测试)
内容如下,相当简单:
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println ("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
很多教程都声称我必须使用它javac来编译代码.但是我什么也没做,而且没有任何问题.每次我更改代码时,它都会像魔术一样立即更新.有些东西必须工作,但我不知道它是什么.
是的,这显然是一个新手问题,所以任何帮助都是受欢迎的.如果你有任何系统的,易于理解的教程链接,那就更好了.我正在寻找他们好几天,但得到了很多不一致的答案.
Mar*_*nik 12
对我来说,你混合了两种主要技术 - 作为Web容器的tomcat和作为IDE的eclipse.他们的整合让你困惑.让我们暂时离开JSP,只讨论servlet,因为它会让人感到困惑
Tomcat无法使用源文件(*.java).你必须用javac编译你的应用程序,并创建一个名为WAR的文件 - web archive - 一个zip文件,它将包含你编译的类并遵守一些tomcat理解的EE标准(它也可以使用文件夹而不是zip,但是让我们把它放进去除此之外,它与此解释无关).
其中此战争(一旦编译正确)将包含您的编译器servlet类HelloWorld.class).
一旦启动了tomcat并在部署文件夹中识别出war文件,它就会打开它并在运行时加载.没有编译,只有运行时加载.
现在人们在这里谈论JSP.事实上,JSP在技术上等同于servlet,但类似于HTML.您将文件扩展名为.jsp并构建您的WAR.java编译器无法读取jsp文件,因此你应该以某种方式将它们放入war文件中(通常构建工具/ IDE为你做).你可以在战争中创建jsp文件的底线.现在你把你的战争放到Tomcat中,它像以前一样识别它并加载.此时它仍然对您的JSP没有任何作用.
所以,你的战争被部署,tomcat启动,在浏览器中你去'http:// localhost:8080/myfirstjsp.jsp'此时(你的jsp的第一次调用)发生了很多事情:
下次你将调用jsp时,它将被编译.
这里的最后一个问题是Eclipse如何连接到所有这个故事:)实际上Eclipse与tomcat集成,所以所有的战争创建和部署的东西都是透明的.这就是为什么你在eclipse上推'play'并且它编译你的项目,创建一个战争,确保tomcat知道这场战争(配置部署相关的东西),启动tomcat和瞧,你有应用程序工作.
了解在什么级别发生的事情很重要
希望这有助于马克
| 归档时间: |
|
| 查看次数: |
9286 次 |
| 最近记录: |