JavaWEB-(十四)初识Servlet

本文最后更新于:December 3, 2021 pm

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

目录

1.Servlet开发步骤

1.1 搭建环境

将Servlet相关的 jar 包(lib\servlet-api.jar)配置到 CLASSPATH中。如:

1
F:\ideaTool\apache-tomcat-9.0.52\lib\servlet-api.jar;

按照以上形式根据自己的安装路径配置到CLASSPATH中。

1.2 编写Servlet

  • 实现 javax.servlet.Servlet。
  • 需要重新5个主要方法。
  • 在核心方法 service() 中编写语句。

主要使用的包:

1
2
3
4
5
6
7
8
9
10
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;

//===================================
import javax.servlet.*;
import java.io.IOException;

2.实例

2.1 编写Servlet

建立一个名为MyServlet的txt文本文件,重写五个主要方法,如以下代码,并将后缀改为java。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//MyServlet.java

import javax.servlet.*;
import java.io.IOException;

public class MyServlet implements Servlet{
@Override
public void init(ServletConfig servletConfig) throws ServletException {

}

@Override
public ServletConfig getServletConfig() {
return null;
}

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("Hello Servlet!");
}

@Override
public String getServletInfo() {
return null;
}

@Override
public void destroy() {

}
}

再对上面的java文件进行编译,在命令窗口中输入:javac MyServlet.java
生成 MyServlet.class 文件。再将class文件放到myweb项目下的WEB-INF目录下的classes目录中。

2.2 配置Servlet

在myweb项目中,配置其web.xml文件。如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">

<servlet>
<servlet-name>my</servlet-name> <!--任意取一个别名-->
<servlet-class>MyServlet</servlet-class> <!--对哪个类进行描述,这里是对MyServlet.class作描述,如果有包名,则需要写全限定名-->
</servlet>
<servlet-mapping>
<servlet-name>my</servlet-name> <!--映射的哪一个servlet。所以需要和上面的servlet的名字一样-->
<url-pattern>/myservlet</url-pattern> <!--用来访问的路径-->
</servlet-mapping>

</web-app>

<servlet-mapping> 是对 <servlet> 作映射的。映射关系为:
用户通过访问 url-pattern ,然后通过 servlet-mapping 中的 servlet-name 映射到 servlet 中的 servlet-name ,然后才知道描述的是 servlet-class 。

即:<url-pattern> -> <servlet-mapping> 中的 <servlet-name> -> <servlet> 中的 <servlet-name> -> <servlet-class> 。

url-pattern配置的内容就是浏览器地址栏输入的URL中项目名称后的资源的名称

配置好Servlet后,再启动Tomcat,再在浏览器中输入:http://localhost:8080/myweb/myservlet 。然后可以在控制台黑窗口上(不是网页中)看见 Hello Servlet! 。

总结

简单来说部署项目和访问项目就几步。

  1. 在webapps目录下新建项目文件夹。
  1. 将ROOT项目中的WEB-INF文件夹复制到新建项目文件夹下。
  1. 将要用的 .class 文件放到classes文件目录下(没有则手动创建)。
  1. 配置web.xml。无非就两个东西:<servlet> ,<servlet-mapping>
  1. 启动Tomcat访问URL。