(3)第一个Web项目

(3)第一个Web项目

前言

我们这里的目标只是单纯的写出第一个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文件就需要重新拷贝文件这太麻烦了!)