程序员社区

【Servlet-0】创建第一个Web项目

文章目录

          • Servlet概述
            • 1.概念
            • 2.快速入门
            • 3.出现的问题
            • 4.Servlet执行原理
            • 5.Servlet生命周期方法
            • 6.Servlet 3.0注解配置
            • 7.Servlet的体系结构
            • 8.Servlet相关配置

Servlet概述
1.概念

Servlet概念:
 1.server applet 运行在服务器端的小程序
 2.Servlet本质上是一个接口,定义了java类被浏览器访问到的规则
 3.自定义一个类,实现Servlet接口,复写方法

2.快速入门

   1.创建javaee项目
 2.定义一个类,这个类需要实现Servlet接口
 3.实现接口中的抽象方法
 4.在web.xml中配置Servlet

3.出现的问题

在这儿我真的想吐槽一下,出现了这个问题,上网找了各种解决方法,但是都没有作用也不知道问题出在哪儿,妈的。。。。。Tomcatl来回卸载了好几遍

解决方法:一定要
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
v
在这里插入图片描述
**加粗样式

4.Servlet执行原理

   1.当服务器接收到客户端发出的请求后,会解析请求url路径,获取访问的Servlet资源路径
 2.查找web.xml文件,是否有对应的标签体内容
 3.如果有,就会找到全类名
 4.Tomcat会将字节码文件加载到内存,并为其创建对象
 5.调用其方法
在这里插入图片描述

5.Servlet生命周期方法

生命周期:
 1.被创建:执行init方法,只执行一次
 2.提供服务:执行service方法,执行多次
 3.被销毁:执行destroy方法,只执行一次

6.Servlet 3.0注解配置

好处:支持注解配置,可以不用配置web.xml
步骤:
 1.创建javaee项目
 2.定义一个类,实现Servlet接口
 3.复写方法
 4.在类上使用一个注解@WebServlet注解,进行配置
   @WebServlet(“资源路径”)

package Servlet概述;

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

@WebServlet("/demo2")
public class ServletDemo 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("servlet3.0.....");
    }

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

    @Override
    public void destroy() {
    }
}
7.Servlet的体系结构

Servlet接口的体系结构:
在这里插入图片描述
Servlet接口的实现类:GenericServlet类
将Servlet接口中的其他方法做了空实现,只将service()方法作为抽象方法
实现的类只需要继承这个类然后复写service()方法即可
在这里插入图片描述

package Servlet体系结构_02;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

/*
GenericServlet类是对Servlet接口中的抽象方法的空实现
重写了接口中除service()方法以外的其他三个抽象方法
 */
@WebServlet("/demo1")
public class ServletDemo extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("jianghuiaihengheng");
    }
}

Servlet接口的实现类:
 1.定义类继承HTTPServlet类
 2.复写doGet( )和doPost( )方法
  如果是get方式就执行doGet( )方法
  如果是post方式就执行doPost( )方法

在这里插入图片描述

package Servlet体系结构_02;

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 java.io.IOException;

@WebServlet("/demo2")
public class ServletDemo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet.....");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost....");
    }
}

在这里插入图片描述

8.Servlet相关配置

1.urlpartten:Servlet访问路径
 一个Servlet可以定义多个访问路径:@WebServlet({"/d1","/d2","/d3"})
2.路径定义规则:
 1./xxx
 2./xxx/xxx多层路径,目录结构
 3.*.do

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Servlet-0】创建第一个Web项目

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区