使用Servlet写一个hello world
使用Servlet创建一个hello world程序需要完成的细节蛮多的,大致分为7步
1:创建项目
首先创建一个Maven
Maven是Java世界中一个非常知名的“构建工具”,负责编译打包代码 idea内置了Maven,可以直接使用
填写项目的名字和保存目录
这里项目的名称是ServletCSDN
项目创建好之后,可以看到IDEA给我们创建出了一些目录结构
src | 放源代码 |
---|---|
main | 放正式代码 |
java | 放Java代码 |
resources | 放依赖的资源(目前用不到 |
test | 放测试代码 |
pom.xml | 这个技术maven项目的核心配置文件,maven的相关属性就是这里配置的 |
2:引入依赖
Maven 项目创建完毕后, 会自动生成一个 pom.xml 文件. 我们需要在 pom.xml 中引入 Servlet API 依赖的 jar 包.
下载第三方库的时候,有一下三种方法 1.直接去第三方网站下载 2.去第三方的github上下载 3.去中央仓库下载
因为方法1和2比较麻烦,因此我们这里使用方法3去中央仓库下载
在中央仓库中搜索 "servlet", 一般第一个结果就是.
点进去有很多个版本,我们这里使用3.1.0这个版本!
版本不能乱选和tomcat的版本是匹配的 因为我的tomcat是8系列,对应的Servlet就是3.1.0这个版本
拷贝这段代码到pom.xml中
一个项目里面,可以有多个依赖,每个依赖都是一个标签 然后多个依赖都放到标签里面
粘贴后,修改后的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ServletCSDN</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>//将复制的代码粘贴到这个标签下面
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
我们初次粘贴这段代码可能会爆红 标红就说明没有下载完成, 要稍等片刻 或者刷新一下
3:创建目录结构
我们知道当项目创建好了之后, IDEA 会帮我们自动创建出一些目录.
但是web项目对于目录结构还有直接的要求 光是maven搞出来的目录是不够的 需要手动的创建出一些目录来
注:目录名和创建的位置是固定的,不能乱写,如果写错了,就不生效
创建效果如下:
web.xml就是tomcat能够识别这个动态页面的入口文件 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>
<display-name>Archetype Created Web Application</display-name>
</web-app>
注:大家复杂这段代码后,可能会爆红,这是正常的现象,凭没有错
4:编写代码
这里开始正式编写Java代码
首先创建一个HelloServlet
完整代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.rowset.serial.SerialException;
import java.io.IOException;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req,resp);
resp.getWriter().write("hello world");
}
}
假如这里的servlet爆红,需要添加servlet的jar包
注:这里代码完成了,但是不能直接运行,需要借助tomcat才可以运行
5:打包程序
先修改pom.xml,加入一些必要的配置,一个打包的类型和打包的名字
<!-- 要打一个war包-->
<packaging>war</packaging>
<!-- servletcsdn就是war包的名字-->
<build>
<finalName>servletcsdn</finalName>
</build>
执行打包操作 双击package
打包成功
打包的结果在target目录下,如果打包失败了就不能生成出来
6:部署代码
将程序部署到Tomcat上
将war文件复杂到Tomcat的webapps目录中
7:验证程序
提高浏览器,来访问当前的这个Servlet生成的动态页面
这里的hello路径为Servlet Path表示这个网站中的一个页面
至此大功告成!!!