Servlet学习笔记1

一、Servlet技术

a) 什么是servlet

1、Servlet是JavaEE规范之一,规范就是接口

2、Servlet是JavaWeb三大组件之一,分别是Servlet程序,Filter过滤器和Listener监听器

3、Servlet是运行在服务器上的一个java小程序,它可以通过 HTTP(超文本传输协议)接收客户端发送过来的请求,并响应数据给客户端。

b)如何创建Servlet程序

1、编写一个类去实现Selvlet接口

2、实现service方法,处理请求,并响应数据

3、到web.xml中去配置servlet程序的访问地址

<?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">

    <!--servlet标签给tomcat配置servlet程序-->
    <servlet>
        <!--<servlet-name>给servlet程序起一个别名 一般是类名-->
        <servlet-name>HelloServlet</servlet-name>
        <!--servlet-class是servlet程序的全类名-->
        <servlet-class>h220907.HelloServlet</servlet-class>
    </servlet>

    <!--servlet-mapping标签给servlet程序配置访问地址-->
    <servlet-mapping>
        <!--servlet-name标签的作用是告诉服务器,当前配置的地址是给哪个servlet程序使用-->
        <servlet-name>HelloServlet</servlet-name>
        <!--url-pattern标签配置访问地址
               /        斜杠在服务器解析的时候表示地址为http://ip:port/工程路径
               /hello   表示地址为http://ip:port/hello
        -->

        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

c)Servlet程序的生命周期

1、执行Servlet构造器方法

2、执行init初始化方法

    第1、2步是在第一次访问的时候,创建servlet程序会调用

3、执行service方法

    每次访问都会调用

4、执行destroy销毁方法

    在web工程停止的时候调用

d)GET和POST请求的分发处理

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3 service方法:helloServlet被访问了!");
        //类型转换 把 servletRequest向下转为他的子类HttpServletRequest,从而调用getmethod方法
        HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
        //获取请求的方式 get or post
        String method = httpServletRequest.getMethod();

        if("GET".equals(method)){
            doGet();
        }else if("POST".equals(method)){
            doPost();
        }
    }

通过ServletRequest servletRequest向下转型为其子类HttpServletRequest,调用getmethod方法,获取当前请求的类型。

e)通过继承HttpServlet实现Servlet程序

一般在实际项目开发中,都是使用继承HttpServlet类的方式去实现Servlet程序。

1、编写一个类继承HttpServlet

2、根据业务需要,重写doPost或doGet方法

3、到web.xml中配置Servlet程序的访问地址

public class HelloServlet2 extends HttpServlet {
    //doGet方法在get请求的时候调用
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("hello, get请求!");
    }

    //doPost方法在post请求的时候调用
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("hello, post请求!");
    }
}
    <servlet>
        <servlet-name>HelloServlet2</servlet-name>
        <servlet-class>h220907.HelloServlet2</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>HelloServlet2</servlet-name>
        <url-pattern>/hello2</url-pattern>
    </servlet-mapping>

f)使用IDEA创建Servlet程序

直接new servlet

 

 自动生成doPost和doGet方法。

h)Servle类的继承体系

Interface Servlet              Servlet接口,只是负责定义 Servlet 程序的访问规范

           |

Class GenericServlet     实现了 Servlet接口,做了很多空实现

           |                           并持有一个ServletConfig类的引用,并对ServletConfig的使用做一些方法

           |

Class HttpServlet          实现了service方法,并实现了请求的分发技术

           |                               String method = req.getMethod()

           |                                     GET             POST 

           |                                    doGet()          doPost()     负责抛异常,说不支持GET/POST请求

自定义的Servlet 程序     重写  doGet()         doPost() 方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值