Servlet

一、Serlvet

1.什么是Serlvet?

Servlet其实就是一个遵循Servlet开发的java类。Serlvet是由服务器调用的运行在服务器端

2.servlet的体系结构:


    Servlet:接口
        |
    GenericServlet:抽象类
        |
    HttpServlet:抽象类
        |
    自定义servlet
    
    servlet常用方法:
        void init(ServletConfig config):初始化
        void service(ServletRequest request,ServletResponse response):服务 处理业务逻辑
        void destroy():销毁

        
        ServletConfig getServletConfig() :获取当前servlet的配置对象
    
    GenericServlet常用方法:    
        除了service方法没有显示,其他都实现了
        空参的Init() 若我们自己想对servlet进行初始化操作,重写这个init()方法即可
    
    HttpServlet常用方法:
        service做了实现,把参数强转,调用了重载的service方法

       HttpServlet类已经实现了Servlet接口的所有方法,编写Servlet时,只需要继承HttpServlet,重写你需要的方法即可,并且它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大

一般我们开发的时候,都是重写doGet()和doPost()方法的(post请求与get请求)

            重载的service方法获取请求的方式,根据请求方式的不同调用相应doXxx()方法
        doGet和doPost方法

3.servlet生命周期 
    void init(ServletConfig config):初始化
     * 初始化方法
     * 执行者:tomcat服务器
     * 执行次数:一次
     * 执行时机:默认第一次访问获得servlet实例的时候(Servlet单例模式,后面再访问任然是前面的实例)
    void service(ServletRequest request,ServletResponse response):服务 处理业务逻辑
     * 服务
     * 执行者:服务器
     * 执行次数:请求一次执行一次
     * 执行时机:请求来的时候
    void destroy():销毁
     * 销毁
     * 执行者:服务器
     * 执行次数:只执行一次
     * 执行时机:当servlet被移除的时候或者服务器正常关闭的时候
     
     serlvet是单实例多线程
     默认第一次访问的时候,服务器创建servlet,并调用init实现初始化操作.并调用一次service方法
     每当请求来的时候,服务器创建一个线程,调用service方法执行自己的业务逻辑
     当serlvet被移除的时候服务器正常关闭的时候,服务器调用servlet的destroy方法实现销毁操作.

4.ServletContext

ServletContext:
    上下文(全局管理者)
    常用的方法:
        setAttribute(String key,Object value);//设置值
        Object getAttribute(String key);//获取值
        removeAttribute(String key)://移除值
获取全局管理者:
    getServletContext():

 

二、Cookie 

1.什么是Cookie 

  Cookie是由W3C组织提出,最早由netscape社区发展的一种机制

  • 网页之间的交互是通过HTTP协议传输数据的,而Http协议是无状态的协议。无状态的协议是什么意思呢?一旦数据提交完后,浏览器和服务器的连接就会关闭,再次交互的时候需要重新建立新的连接

  • 服务器无法确认用户的信息,于是乎,W3C就提出了:给每一个用户都发一个通行证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息。通行证就是Cookie

2.用法

Cookie的api:
        new Cookie(String key,String value)
    写回浏览器:
        response.addCookie(Cookie c)
    获取cookie:
        Cookie[] request.getCookies()
    cookie的常用方法:
        getName():获取cookie的key(名称)
        getValue:获取指定cookie的值

三、Session

1.什么是Session

 Session 是另一种记录浏览器状态的机制。不同的是Cookie保存在浏览器中,Session保存在服务器中。用户使用浏览器访问服务器的时候,服务器把用户的信息以某种的形式记录在服务器,这就是Session

2.为什么要使用Session技术?

Session比Cookie使用方便,Session可以解决Cookie解决不了的事情【Session可以存储对象,Cookie只能存储字符串。

3.使用

获取一个session:
        HttpSession  request.getSession()
    
    域对象:
        xxxAttribute
        生命周期:
            创建:第一次调用request.getsession()创建
            销毁:
                服务器非正常关闭
                session超时
                    默认时间超时:30分钟  web.xml有配置 
                    手动设置超时:setMaxInactiveInterval(int 秒) 了解
                手动干掉session
                    ★session.invalidate()
        存放的私有的数据.

四、过滤器

1.什么是过滤器?

    过滤器是Servlet的高级特性之一,实现Filter接口的Java类

2.为什么需要用到过滤器?

 

3.用法

Filter接口的方法:
    init(FilterConfig config):初始化操作
    doFilter(ServletRequest request, ServletResponse response, FilterChain chain):处理业务逻辑
    destroy() :销毁操作
filter的生命周期(了解)
    filter单实例多线程
    filter在服务器启动的时候 服务器创建filter 调用init方法 实现初始化操作
    请求来的时候,创建一个线程 根据路径调用dofilter 执行业务逻辑
    当filter被移除的时候或者服务器正常关闭的时候 调用destory方法 执行销毁操作.
FilterChain:过滤链
    通过chain的dofilter方法,可以将请求放行到下一个过滤器,直到最后一个过滤器放行才可以访问到servlet|jsp
    doFilter()放行方法

 

五、监听器

1.什么是监听器

    监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。

2.为什么我们要使用监听器?

监听器可以用来检测网站的在线人数,统计网站的访问量等等

3.用法

listener:
    监听器
    作用:
        监听web中中的域对象 ServletContext ServletRequest HttpSession
    监听内容:
        监听三个对象的创建和销毁
        监听三个对象属性的变化
        监听session中javabean的状态
    
    注意:listener全部是接口
        
监听三个对象的创建和销毁
    ServletContextListener
    ServletRequestListener
    HttpSessionListener
监听三个对象属性的变化
    ServletContextAttributeListener
    ServletRequestAttributeListener
    HttpSessionAttributeListener
监听session中javabean的状态
    HttpSessionActivationListener(钝化和活化)
    HttpSessionBindingListener(绑定和解绑)

使用步骤:
    1.编写一个类 实现接口
    2.重写方法
    3.编写配置文件(大部分都是)

参考:监听器

          https://github.com/ZhongFuCheng3y/3y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值