1.搭建环境
Win7x64的PC上已有:Elipse,JDK,Tomcat,即java和tomcat的运行环境已搭建好,环境变量也搞定了。
在此基础上:
下载 tomcat插件。http://www.eclipsetotale.com/tomcatPlugin.html#A3
将zip文件解压,将解压后的文件夹拷贝到Elipse/plugin目录下。
重启Eclipse,这时就可以看到Eclipse的上方就多了tomcat的菜单栏和图标了。然后选择菜单:Window->Preferences->Tomcat,选择Tomcat的版本和TomcatHome,即Tomcat文件目录,如F:\apache-tomcat-6.0.36
2.创建第一个Eclipse
新建一个Tomcat项目:New Project/Java/TomcatProject/ProjectName;创建好后在WEB-INF/src下创建一个servlet类:
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out = res.getWriter();
out.println("Hello World Servlet");
out.close();
}
}
在WEB-INF文件夹下创建web.xml文件,
<!DOCTYPE web-app PUBLIC
'-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
解释:<servlet> </servlet> 与 <servlet-mapping> </servlet-mapping>是成对出现的,用来描述一个servlet的ID。
<servlet-name>相当于别名,也即ID,<servlet-class>是servlet.java的文件名。
<url-pattern>就是url到servlet的一个映射。
servlet的servlet-name是他的ID,
servlet-mapping的servlet-name是这个mapping 所配置的servlet的ID,所以他们两个是一对。
servlet标签表明,servlet的类全名是啥,servlet-mapping表示,url导向到哪个servlet。
整个项目只有一个web.xml。
3.测试
写完这两个文件后,按下Elipse中启动tomcat的快捷菜单,控制台出现:
信息: Server startup in 3565 ms
则表示Tomcat启动成功。
但是也有失败的情况,提示信息为(一大段中的关键一句):
java.net.BindException: Address already in use: JVM_Bind
意思是8080端口被占用,这时候解决方案是关掉占用该端口的进程,解决步骤:
运行cmd进入 命令提示符,输入命令: netstat -ano
盯住IP:XXX的端口号看,找到8080端口对应的PID,在资源管理器中结束该PID对应的进程。我很傻的在Eclipse外面也开了Tomcat,所以报错了。
在Eclipse 中重启Tomcat, 出现成功命令。
在浏览器中输入:
http://localhost:8080/ProjectName/hello
其中,ForServlet是我创建项目的项目名,hello是该进程的ID,上面已提过。
如果Lucky 的话,就显示出页面了。Otherwise, 404 again!
如果其他步骤没什么错的话,再重启Tomcat试试。也许重启就好了,Why?不晓得。
web开发,你会遇到很多莫名其妙的问题,很大一部分都是cache造成了,浏览器的cache,tomcat的cache,eclipse的cache。
下面是我的文件目录
Hello World Servlet