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的运行流程

如下图
在这里插入图片描述
大白话描述一下就是

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

代码走一走

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

  1. create new project,选择 Java Enterprise 然后配置JDK,Tomcat,选择Web Aplication,注意要勾选Creat web.xml
    在这里插入图片描述

  2. 因为IDEA不像Eclipse会自动创建classes和lib文件夹,需要我们手动创建并指定(注意要指定)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 配置Tomcat
    在这里插入图片描述
    在这里插入图片描述

  4. 启动,测试
    在这里插入图片描述

    上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
 <servlet>
     <servlet-name>helloServlet</servlet-name>
     <servlet-class>cn.berger.servlet.HelloServlet</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>helloServlet</servlet-name>
     <url-pattern>/hello</url-pattern>
 </servlet-mapping>

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

发布了38 篇原创文章 · 获赞 8 · 访问量 3307

猜你喜欢

转载自blog.csdn.net/hcwdd/article/details/103949562