JAVA——J2EE之Servlet(二) 动态WEB项目

一、创建

本知识点采用动态Web项目-Dynamic Web Project的方式把 Java project+独立Tomcat的Hello Servlet 重新做一遍。(也就是基础一)

1.新建Dynamic Web Project

新建Dynamic Web Project
File->New->Other->Web->Dynamic Web Project

创建 HelloServlet
注意:eclipse创建的时候会自带一个包名j2ee,不要使用这个包名,让包名置空

默认的Dynamic Web Project并不会导入servlet-api.jar,所以Servlet会出现编译错误。
下载servlet-api.jar,并复制到e:/project/j2ee/WebContentWEB-INF/lib 目录下
复制好之后,右键点击项目,刷新即可。 这个动作,会导致当前项目的build path->Libraries里的 Web App Libraries 自动加上这个servlet-api.jar包,这样HelloServlet就编译通过了。

在WEB-INF目录中创建 web.xml

通过Eclipse启动Tomcat-Run On Server

接下来就是在eclipse中配置Tomcat并启动,这个需要好几个步骤完成。
首先右键项目 -> Run As -> Run on Server

这里选中Apache里的
Tomcat v7.0 Server, 如果你使用的是更高版本的eclipse,这里还可以看到Tomcat v9.0 Server.
本知识点使用Tomcat 为例进行讲解,其他版本的Tomcat使用类似的操作。

通过Eclipse启动Tomcat-指定Tomcat服务器地址

然后指定Tomcat目录所在位置,这里使用的位置是:
D:\tomcat7-8080-eclipse,
表示版本是7的tomcat,端口号是8080.

注意: tomcat7-8080-eclipse是可以确保能够在eclipse中配置的,有时候tomcat被人为自定义修改之后,就不再能够在Eclipse中使用,请使用右上角确保可以运行的tomcat7,绕开不必要的麻烦。

通过Eclipse启动Tomcat-部署

然后就是下一步,把当前项目作为 “j2ee” 部署在tomcat中。
部署成功之后,访问地址:

http://127.0.0.1:8080/j2ee/hello

需要注意的是,因为在上一步部署的时候,使用的是j2ee这个配置,所以这里访问的时候有路径名称j2ee,与 前面的独立Tomcat部署方式不一样,那个没有j2ee这个路径

http://127.0.0.1/hello

关闭Eclipse中的Tomcat

以Eclipse的方式启动Tomcat,其实就是一个普通的Java 进程,只需要在Console 面板关闭即可
启动的时候,如果出现错误窗口,就表示端口8080和8089被占用了。具体的关闭不清楚方式可询问我

需要注意的几点

  1. 类文件会被输出到build/classes里,而不是WEB-INF/classes目录下
  2. 当有类或者配置文件变化时,会自动重启,无需手动重启Tomcat. 但是不稳定,当很许多类改动,新加了jar包,新增加了配置文件等等,都有可能导致自动重启失效,所以最好还是手动重启,确保重启成功
  3. WebContent会被整个复制到

E:\project.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\j2ee

这个位置下面去,Eclipse中启动的tomcat其实是访问的这个位置。所以当WebContent里的内容比较多的时候,就会花较长时间复制
4. 因为第3条的原因,第1条在build里生成的类和配置文件,也会被复制到第3条所说的位置

二、切换-把JAVA PROJECT切换到动态WEB项目

1.准备java project

项目转换
右键项目j2ee->properties->Project Facets->Convert to faceted form…

设置content directory
1. 勾选Dynamic Web Module
2. 勾选之后,会出现 Furthe configuration available …, 点击
3. 动态web项目的默认内容目录是WebContent,而 j2ee这个项目的对应目录是 web, 所以这里要输入web
4. 点击ok

猜你喜欢

转载自blog.csdn.net/jae_peng/article/details/80010359