2020-11-21Servlet

1.在Tomcat中编写Servlet

1.1.自己定义类

1.2.继承Tomcat提供的一个规则HttpServlet

1.3.重写一个方法service

1.4.方法里有两个参数HttpServletRequest和HttpServletResponse

1.5.抛出两个异常ServletException和IOException

1.6.编写工程内的配置文件web.xml

----------------------

1.Servlet对象的管理机制

1.1.Servlet对象是单例的

1.2.采用生命周期托管的方式实现单例设计模式

1.3.Servlet对象是延迟加载的方式

1.4.Servlet对象有三个生命周期,体现如下

1.4.1.对象创建时 init() init(ServletConfig config)

1.4.2.对象使用时 service(HttpServletRequest req, HttpServletResponse resp)

1.4.3.对象回收时 destroy()

1.5.通过修改web.xml配置文件改变Servlet对象的加载方式,从默认延迟加载修改为立即加载

1.6.在Servlet对象创建时,通过配置携带信息,让Servlet对象读取,配置之后通过init(ServletConfig config)方法中进行读取

		String value = config.getInitParameter("key");
        Enumeration enu = config.getInitParameterNames();
        String name = config.getServletName();
        //全局上下文对象
        ServletContext application = config.getServletContext();

1.7.Servlet类继承的关系

自己写一个类,继承HttpServlet,继承GenericServlet,实现Servlet, ServletConfig, Serializable

Servlet接口中含有五个方法

	void init(ServletConfig var1) throws ServletException;

    ServletConfig getServletConfig();

    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;

    String getServletInfo();

    void destroy();

ServletConfig接口中含有五个方法

	String getServletName();

    ServletContext getServletContext();

    String getInitParameter(String var1);

    Enumeration<String> getInitParameterNames();

GenericServlet抽象类体现的是缺省适配器模式

将上述两个接口中的八个抽象方法进行实现,只留了service方法,让用户添加逻辑使用
添加两个独有方法
init() log()

HttpServlet体现了对于协议的具体化

将父类的service方法添加实现,目的是将两个跨协议的参数转化成HTTP协议
自己添加了独有的protected 修饰的sevice方法,参数是HttpServletRequest req, HttpServletResponse resp
添加独有方法的目的是通过请求发送的方式get/post,找寻对应具体的执行方法doGet/doPost

1.8.如何使用

自己写一个类,类名是XXXController
继承HttpServlet或继承GenericServlet或实现servlet接口
重写方法service或doGet/doPost
方法的参数是HttpServletRequest req, HttpServletResponse resp
方法的修饰符和返回值protected/public void
方法异常ServletException, IOException
工程的web文件夹中有WEB-INF文件夹
web.xml配置文件目的是请求与真实Controller的对应关系
浏览器发送请求,访问操作资源
404 没有找到资源
405 没有找到执行方法

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页