一、Servlet 技术
1、概念
Servlet:server applet,是指运行在服务器端的小程序。
Servlet 就是 JavaEE 规范之一。(规范就是接口)
Servlet 就是 JavaWeb 三大组件之一。(三大组件分别是:Servlet程序、Filter 过滤器、Listener监听器)
Servlet 就是运行在服务器上的一个 Java 小程序。(它可以接收客户端发送过来的请求,并响应数据给客户端)
2、Servlet
servlet 就是一个接口,定义了 Java 类被浏览器访问到(Tomcat识别)的规则。
二、Servlet 入门案例
手动实现 Servlet 程序:
(1)编写一个类去实现 Servlet 接口;
(2)实现 service 方法,处理请求,并响应数据;
(3)到 web.xml 中去配置 servlet 程序的访问地址;
1、入门案例
(1)创建 JavaEE 项目
(2)定义一个类,实现 Servlet 接口
public class ServletDemo1 implements Servlet
(3)实现接口中的抽象方法
1 import javax.servlet.*;
2 import java.io.IOException;
3
4 public class ServletDemo1 implements Servlet {
5 @Override
6 public void init(ServletConfig servletConfig) throws ServletException {
7
8 }
9
10 @Override
11 public ServletConfig getServletConfig() {
12 return null;
13 }
14
15 @Override
16 public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
17 System.out.println("Hello Servlet被访问了");
18 }
19
20 @Override
21 public String getServletInfo() {
22 return null;
23 }
24
25 @Override
26 public void destroy() {
27
28 }
29 }
(4)配置servlet
在 web.xml 里面配置
1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
5 version="3.1">
6
7 <!--配置servlet-->
8 <servlet>
9 <!--servlet名称-->
10 <servlet-name>demo1</servlet-name>
11 <!--servlet全类名-->
12 <servlet-class>cn.ks.web.servlet.ServletDemo1</servlet-class>
13 </servlet>
14
15 <servlet-mapping>
16 <!--servlet名称-->
17 <servlet-name>demo1</servlet-name>
18 <!--映射路径-->
19 <url-pattern>/demo1</url-pattern>
20 </servlet-mapping>
21
22 </web-app>
Demo:
2、配置 xml 常见错误
(1)错误1:url-pattern 中配置的路径没有以斜杠开头。
(2)错误2:servlet-name 写错了,配置的值不存在。
(3)错误3:servlet-class 标签的全类名配置错误。
三、执行原理(url如何访问到Servlet程序)
(1)当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
(2)查找 web.xml 文件,是否有对应的<url-pattern>标签体内容。
(3)如果有,则在找到对应的<servlet-class>全类名
(4)Tomcat会将字节码文件加载进内存,并且创建其对象
(5)调用其方法
示意图: