servlet的运行流程及在IDEA的第一个web项目

什么是servlet

先看一下百度百科的定义:

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

从开发的角度去理解,一个servlet就是一个接口,匹配对应的URL,实现对请求的处理响应数据

servlet的运行流程

如下图
servlet的运行流程及在IDEA的第一个web项目_第1张图片
大白话描述一下就是

  1. 请求者(浏览器也可以是其他应用)通过一个URL地址发起HTTP请求
  2. URL地址信息可以指向对应的服务器,服务器接收到请求后发送给对应的servlet处理
  3. servlet处理后将响应信息返回到服务器
  4. 服务器将响应信息返回给请求者
  5. 请求者做出展示

代码走一走

本人使用额是IDEA跑一下,所以前边的创建项目一起写下来

  1. create new project,选择 Java Enterprise 然后配置JDK,Tomcat,选择Web Aplication,注意要勾选Creat web.xml
    servlet的运行流程及在IDEA的第一个web项目_第2张图片

  2. 因为IDEA不像Eclipse会自动创建classes和lib文件夹,需要我们手动创建并指定(注意要指定)
    servlet的运行流程及在IDEA的第一个web项目_第3张图片
    servlet的运行流程及在IDEA的第一个web项目_第4张图片
    servlet的运行流程及在IDEA的第一个web项目_第5张图片
    servlet的运行流程及在IDEA的第一个web项目_第6张图片

  3. 配置Tomcat
    servlet的运行流程及在IDEA的第一个web项目_第7张图片
    servlet的运行流程及在IDEA的第一个web项目_第8张图片

  4. 启动,测试
    servlet的运行流程及在IDEA的第一个web项目_第9张图片

    上servlet代码

    HelloServlet类:

    package cn.berger.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServlet;
    import java.io.IOException;
    
    public class HelloServlet extends HttpServlet {
        @Override
        public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
            System.out.println("servlet执行了");
        }
    }
    

 web.xml的配置

 ~~~xml
 
     helloServlet
     cn.berger.servlet.HelloServlet
 
 
     helloServlet
     /hello
 

xml的配置应该都理解,这里的servlet和servlet-mapping标签是一对,通过同一个servlet-name将url-pattern(url匹配规则)和处理请求的servlet-class关联起来,这样在浏览器访问对应的URL时,servlet类就会运行service方法(底层通过反射操作的)
在这里插入图片描述
servlet的运行流程及在IDEA的第一个web项目_第10张图片
可以看到控制台有输出,但是输出乱码了,我们可以在配置Tomcat的时候增加VM option命令-Dfile.encoding=UTF-8
servlet的运行流程及在IDEA的第一个web项目_第11张图片
重新启动后,运行查看控制台输出如下:
在这里插入图片描述
Bingo!

你可能感兴趣的:(网络编程)