web学习04(Servlet方法)

Servlet的五个方法

public void init(ServletConfig servletConfig) throws ServletException {}
public ServletConfig getServletConfig() {
    return null;
}
public void service(ServletRequest request, ServletResponse response)
        throws ServletException, IOException {}
public String getServletInfo() {
    return null;
}
public void destroy() {}

 1.init方法

        init方法被翻译为初始化,只执行一次,在Servlet对象被创建后执行

        init方法通常是完成初始化操作的,在init执行的时候Servlet已经被创建出来了

2.service方法

        service方法是处理用户请求的核心方法,只要用户发送一次请求,service方法必然会执行一次,发送100次请求,service方法就执行100次

3.destroy方法

        destroy发也是只执行一次,Tomcat服务器在销毁Servlet对象之前会调用一次destroy方法

        destroy方法执行时候,Servlet对象的内存还没有被销毁,但是即将被销毁

        destroy方法中可以编写销毁前的准备

        比如说,服务器关闭的时候,Servlet对象开启了一些资源,这些资源可能是流

        那么在关闭服务器的时候,要关闭这些流,关闭这些数据库连接,关闭资源的带啊吗就可以写在destroy方法中。

GenericServlet

GenericServlet是一个适配器

所有的GenericServlet都要继承Servlet

public abstract class GenericServlet implements Servlet{  }

因为编写Servlet类直接实现Servlet 有可能一个类中只需要service方法,其他方法大部分情况下是不需要使用的,导致代码很丑陋

所以用一个GenericServlet类作为适配器,这个类是一个抽象类,其中有一个抽象方法service

GenericServlet实现Servle接口,是一个Servlet的适配器,以后编写的Servlet直接继承GenericServlet,重写service方法即可(之后写代码是继承HttpServlet的,HttpServlet又是继承GenericServlet的)

        在init.service.destory方法中使用最多的是service方法,service方法是一定要实现的

        init方法只是执行了初始化操作,并且初始化操作只需要在服务器启动的时候执行一次,是         Tomcat服务器调用的。例如:初始化数据库连接池。初始化线程池、、、

        注:init方法中的ServletConfig对象是Tomcat创建的,Tomcat服务器先创建了ServletConfig对         象,然后调用init方法,并将ServletConfig对象传给了init对象

        destroy方法也很少使用,通常在destroy方法中,进行资源的关闭,在Servlet对象被销毁之 ·       前,保存要保存的数据,关闭未关闭的资源

ServletConfig

1.ServletConfig

1.ServletConfig:jakarta.servlet.ServletConfig

        是Servlet规范当中的一个

        ServletConfig是一个接口

2.WEB服务器实现了这个接口

如果是jetty服务器输出的ServletConfig对象,输出的内容可能不太一样,输出的包名不同

public class org.apache.catalina.core.StandardWrapperFacade implements ServletConfig{}

输出了org.apache.catalina.core.StandardWrapperFacade@。。。

因为toString方法

public String toString(){

         return getClass ().getName()+"@"+Integer.toHexString(hashCode());

}

3,一个Servlet对象中有一个ServletConfig对象。(Servlet和ServletConfig对象是一对一)
100个Servlet,就应该有100个ServletConfig对象。
4. Servletconfig对象是谁创建的?在什么时候创建的?
Tomcat服务器(WEB服务器)创建了ServletConfig对象。在创建Servlet对象的时候,同时创建ServletConfig对象。

5. config是configuration的缩写,servletConfig对象被翻译为:Servlet对象的配置信息对象。一个Servlet对象就有一个配置信息对象。

6. Servletconfig对象中到底包装了什么信息呢?
<servlet>
        <servlet-name>configTest</servlet-name>
        <servlet-class>com. bjpowernode.javaweb.servlet.ConfigTestServlet</servlet-class></servlet>
ServletConfig对象中包装的信息是:
        web.xml文件中<servlet></servlet>标签的配置信息。

Tomcat解析web.xml文件,将web.xml文件中<servlet></servlet>标签中的配置信息自动包装到ServletConfig对象中。

7.ServletConfig接口中的方法

<!--

        配置一个Servlet对象的初始化信息,初始化参数自动被Tomcat封装在ServletConfig对象         中

-->

        <init-parm>

                <parm-name></parm-name>

                <parm-value></parm-value>

        </init-parm>

8. ServletConfig接口中有4个方法:
(1);
        public String getInitParameter(String name);

(2):
        public Enumeration<String> getInitParameterNames();

(3):
        public servletcontext getServletdontext();

(4):
        public String getServletName();
以上的4个方法,在自己编写的Servlet类当中也可以使用this去调用。(这个Servlet继承了GenericServlet)

servletContext

1.Servletcontext是什么?
        Servletcontext是接口,是Servlet规范中的一员。

2.ServletContext是谁实现的?
        Tomcat服务器(WEB服务器)实现了Servletcontext接口。
        public class org.apache.catalina.core.ApplicationContextFacade implements ServletContext

3. ServletContext对象在WEB服务器启动的时候创建。ServletContext对象是WEB服务器创建的。
对于一个webapp来说,ServletContext对象只有一个。ServletContext对象在服务器关闭的时候销毁。

4. ServletContext怎么理解?
context : Servlet对象的环境对象。(Servlet对象的上下文对象。)

ServletContext对象其实对应的就是整个web.xml文件。
50个学生,每个学生都是一个Servlet,这50个学生都在同一个教室当中。那么这个教室就相当于ServletContext对象。放在ServletContext对象当中的数据,所有Servlet一定是共享的。
比如:一个教室中的空调是所有学生共享的

Tomcat是一个容器,一个容器当中可以放多个webapp,一个webapp对应一个ServletContext对象。

缓存机制

堆内存当中的字符串常量池。
         "abc"先在字符串常星池中查找,如果有,直接拿来用。如果没有则新建,然后再放入字符串          常量池

堆内存当中的整数型常量池。
        [-128~127]一共256个Integer类型的引用,放在整数型常量池中。没有超出这个范围的话,直         接从常量池中取

连接池(Connection Cache)
        a.这里所说的连接池中的连接是java语言连接数据库的连接对象: java.sql.Connection对象

        b.JVM是一个进程。MySQL数据库是一个进程。进程和进程之间建立连接,打开通道是很耗         费资源的。怎么办?可以提前先创建好N个Connection连接对象,将连接对象放到一个集合当         中,我们把这个放有Connection对象的集合称为连接池。每一次用户连接的时候不需要再新         建连接对象,省去了新建的环节,直接从连接池中获取连接对象,大大提升访问效率。

        c.连接池
                最小连接数
                最大连接数
                连接池可以提高用户的访问效率。当然也可以保证数据库的安全性。

线程池
        Tomcat服务器本身就是支持多线程的。
        Tomcat服务器是在用户发送一次请求,就新建一个Thread线程对象吗?
                当然不是,实际上是在Tomcat服务器启动的时候,会先创建好N多个线程Thread对象,                 然后将线程对象放到集合当中,称为线程池。用户发送请求过来之后,需要有一个对应                 的线程来处理这个请求,这个时候线程对象就会直接从线程池中拿,效率比较高。

                所有的WEB服务器,或者应用服务器,都是支持多线程的,都有线程池机制。

redis
        NoSQL教据库。非关系型教据库。缓存数据库。
向ServletContext应用域中存储数据,也等于是将数据存放到缓存cache当中了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值