栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet笔记

Servlet:Server applet
    *概念:运行在服务器端的小程序,Servlet就是一个接口,定义了java类被浏览器访问(容器)的规则

    快速入门创建servlet:
        1.创建javaEE项目
        2.定义一个类,实现Servlet接口
        3.实现Servlet的抽象方法
        4.配置Servlet
            在web.xml文件的跟标签中配置
           
                firstServlet
                com.xiaoqiang.web.FirstServlet
           

           
                firstServlet
                firstServlet.do
           

package com.xiaoqiang.web;

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

public class FirstServlet implements Servlet {

    
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init:servlet被加载");
    }

    
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service:servlet被调用");
    }

    
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

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

    
    @Override
    public void destroy() {
        System.out.println("destroy:servlet被销毁");
    }
}  


   
    
        firstServlet
        com.xiaoqiang.web.FirstServlet
        
        0
    
    
        firstServlet
        /firstServlet
    
    

    servlet3.0版本:支持注解配置可以不使用 web.xml
        1.创建javaEE项目,使用3.0以上servlet版本,可以不创建servlet
        2.定义实现servlet接口的类
        3.复写抽象方法
        4.在类上使用@WebServlet("资源路径")

       

package com.xiaoqiang.web;

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

@WebServlet(urlPatterns = "/twoServlet")//urlPatterns资源路径,注解默认属性可以省略简化为 
public class TwoServlet 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() {

    }
}

    servlet的方法:
        1.init 初始化方法,在Servlet被创建时执行一次,默认首次访问servlet时,容器会加载servlet,在加载的时候执行init方法。
            在servlet标签中,可以使用load-on-startup标签定义servlet创建时机,值为负数访问时创建,值为>=0时启动时创建。
            servlet的init方法只执行一次,证明servlet是单例对象,为避免线程安全问题,尽量不要在Servlet中定义成员变量,或修改成员变量的值
        2.service 提供服务的方法,每次被访问的时候执行
        3.destroy 销毁方法,在服务器正常关闭时执行一次,在servlet销毁前执行,用于销毁资源
        4.ServletConfig 获取servlet的配置对象
        5.getServletInfo 获取servlet的一些信息,例如版本、作者等

    servlet生命周期:
        init初始化servlet、service提供处理客户端调用请求 、destroy在服务器正常关闭时销毁servlet

    servlet 继承体系结构
        service() Servlet提供服务的方法,每次被访问的时候执行
        抽象类 GenericServlet inplements Servlet
            GenericServlet:将Servlet将service()方法作为抽象,其他方法空处理,定义servlet类时,可以继承将GenericServlet实现service()方法,在方法中处理不同类型的请求
 
        抽象类 HttpServlet extends GenericServlet
            HttpServlet 封装了service接口,将不同类型的http请求分发到对应的处理方法中,我们复写对应的处理方法即可处理请求数据
            HttpServlet:对http协议的一种封装,复写 doGet / doPost 方法即可,简化操作
                1.定义类继承 Httpservlet
                2.复写 doGet / doPost 方法
    

package com.xiaoqiang.web;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


//public class TwoServlet extends GenericServlet{
//
//    @Override
//    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//        System.out.println("GenericServlet-service");
//    }
//}

@WebServlet("/threeServlet")
public class ThreeServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("HttpServlet:doGet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("HttpServlet:doPost");
    }
}


    Servlet配置
        1.urlPatterns:Servlet访问路径
            1.一个servlet可以定义多个路径:@WebServlet({"path1","path2","path3"})
            2.路径定义规则
                /XXX 单层访问路径
                /xxx/xxx... 多层访路径
                /* *是通配符,访问优先级最低
                *.do 访问后缀

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332558.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号