前言
我们这里的目标只是单纯的写出第一个Web项目,先简单体验一下Servlet怎么用,我会在Java EE基础(5)中解释一下什么是Servlet。相关的文章请看该文章最后面的链接。
使用的IDE为:Eclipse。
Eclipse IDE for Enterprise Java Developers.
Version: 2019-06 (4.12.0)
一、创建项目
新建一个新的Dunamic Web Project(动态网站项目)
如果你找不到Package Explorer视图,请参考我这篇博客:Eclipse中如何显示Package Explorer视图
二、导入所需库
目的:
因为在下面创建Class类时需要继承HttpServlet。而HttpServlet类是在servlet-api.jar包中。如果不导入servlet-api.jar包继承会报错。所以需要导入servlet-api.jar包。
依赖的包长这样:
又因为Tomcat依赖库中有servlet-api.jar包。所以就直接在添加Tomcat服务器依赖库。
1.Eclipse先集成Tomcat服务器
Eclipse先集成Tomcat服务器的原因是:项目添加Tomcat服务器依赖库时,Eclipse需要先集成Tomcat,如果不集成,那么项目添加服务器依赖库时会找不到。所以需要先集成Tomcat服务器。
注意:==先在Eclipse中的Servers视图中添加Tomcat服务器==
如果你没有Servers视图,请参考我这篇博客:Eclipse中如何打开需要的视图
2.项目添加所需库
项目需要添加Tomcat服务器的依赖库才能运行。
因为:新建Java类需要继承HttpServlet,而HttpServlet类是在servlet-api.jar包中,但是项目创建时没有依赖servlet-api.jar包。所以需要servlet-api.jar依赖包。
又因为Tomcat依赖库中有servlet-api.jar包,所以需要添加Tomcat服务器的依赖库即可。
右键项目 - 属性Properties
Java Build Path - Libraries - Add Library(添加库)
server runtime(添加服务器运行时库)
选中刚刚添加过的Tomcat 7服务器,然后finish
添加了一个Tomcat 7的则可以Apply and Close了
三、新建Java类
新建新建一个Java类,继承HttpServlet,并重写HttpServlet的service方法。
1.新建Java 类并继承
创建java类,类名为:MyServlet。包名为:com.changsheng.servlet
2.重写(覆写)HttpServlet的service方法
注意这边写的第一句代码:一会儿浏览器响应(显示)的就是这句:This is my first Servelt!!!
resp.getWriter().write("This is my first Servelt!!!");
下面这句代码只是在控制台输出而已。
System.out.println("控制台打印:This is my first Servelt这段话输出了!");
完整代码:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 响应对象,写出了一句话。
resp.getWriter().write("This is my first Servlet!!!");
System.out.println("控制台打印:This is my first Servelt这段话输出了!");
}
}
四、配置web.xml文件
1.生成web.xml文件
因为刚开始创建项目是没有生成web.xml,所以现在需要生成一下。
2.配置XML文件
默认:
配置文件为:
配置文件如下(每一句的含义都已经标出,我将会在java基础(5)文章中详解配置文件意义):
<!--配置Servlet -->
<servlet>
<!-- servlet名字 -->
<servlet-name>MyServlet</servlet-name>
<!-- 访问servlet类的位置(包名加类名,写完后按住ctrl鼠标移到下面这行看能不能点击跳转,可以跳转说明写对了) -->
<servlet-class>com.changsheng.servlet.MyServlet</servlet-class>
</servlet>
<!--配置Sevlet访问方式 -->
<servlet-mapping>
<!-- 对应访问的servlet名,一会儿会访问上面那个对应的servelet名字 -->
<servlet-name>MyServlet</servlet-name>
<!-- 一会儿浏览器输入的地址 -->
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
五、项目部署并运行
1.查看在WebContent目录的WEB-INF目录下是否有classes文件夹。
找到当前项目,并查看在WebContent目录的WEB-INF目录下是否有classes文件夹。
如果有:那么跳过1,直接看2部署。
如果没有:请参考我的这篇博客:Eclipse的WEB-INF目录下没有classes文件夹的问题解决
==注意:一定要确保WEB-INF目录下有classes文件夹,因为下面复制的WEB-INF文件夹中需要有classes文件夹(运行的就是classes文件夹中的class文件)。不然会报出异常,找不到类。(默认的classes文件夹是在当前项目的build文件夹下,并没有在WEB-INF文件夹下,所以需要更改classes文件夹位置)==
2.部署
==注意:== 如果使用这种部署方式,你只要改了Java代码,那么就需要重新复制一次到webapps目录下。
这个复制粘贴部署问题我会在下一篇文章中解决,现在请继续照着这篇文章做下去。
打开 tomcat 7的安装目录,在 webapps目录下新建文件夹,文件夹名为project。
将项目源码WebContent下的内容全部复制到该文件夹下(project文件夹下)。
3.启动Tomcat
到tomcat 7的bin目录下,双击startup.bat启动tomcat。
==启动后这个Tomcat小窗口别关闭!!!关闭了Tomcat也就关闭了==
tomcat启动成功!(注:我这里有中文乱码,不过暂时你们可以不用管他)
==注意:==
如果你出现这个错误 ==Failed to initialize connector [Connector[HTTP/1.1-8080]]== 说明你的端口被占用了,需要把占用了8080端口的软件服务停用。注意如果你使用了这个软件,请关闭该软件,不然tomcat会报错,因为他占用了8080端口!
六、浏览器访问
1.访问成功!
最后:我这边集成Tomcat服务器(Servers里面那个就是)只是要让你们熟悉一下服务器怎么添加集成的。同时导入一下需要用到的tomcat的库依赖。这个一定要熟悉,未来我们会一直使用Tomcat服务器。
下一篇文章我们会学到:优化第一个Web项目:Eclipse集成Tomcat并部署web项目(如果需要修改了java文件就需要重新拷贝文件这太麻烦了!)