05-Servlet与内部加载机制(part1)

Posted 撩课学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05-Servlet与内部加载机制(part1)相关的知识,希望对你有一定的参考价值。

 一、什么是Servlet

    Servlet 运行在服务端的Java小程序,

    是sun公司提供一套规范(接口)

 

    主要功能:

    用来处理客户端请求

    响应给浏览器的动态资源

        

     servlet的实质就是java代码,

    通过java的API动态的向客户端输出内容

 

    以后写的程序就不在是在本地执行了。

    而是编译成字节码

    放到服务器上来去执行。

 

    编写程序时, 不需要有main函数了。

    因为写完后

    就把编写的程序编译成字节码,

    放到服务器上面

    当前发送就一个请求的时候

    服务器就会按照一定规则调用编写的代码

 

二、Servlet快速入门

    1.创建一个web工程名为:MyServlet

    2.在JavaResource中src下

       创建一个包名称为com.myxq.servlet

    3.在创建的servlet包当中

       创建一个class文件起名为FirstServlet

    4.进入该class实现一个Servlet接口,

       实现它未实现的方法

       重点看service方法

       在该方法当中写入一句话进行输出

       

   技术分享图片

    5.在web.xml当中进行配置

      

     技术分享图片

 

    6.启动服务器访问:

       localhost:8080/MyServlet/firstServlet

       就会自动执行创建的servlet中service方法

 

三、servlet内部机制

        想要弄清楚这个问题

        就必须得要先了解什么反射

 

四、类的加载时机

      当程序要使用某个类时

      如果该类还未被加载到内存中

      系统会通过

      加载,连接,初始化

      三步来实现对这个类进行初始化

      加载 

      就是指将class文件读入内存

      并为之创建一个Class对象。

      任何类被使用时

      系统都会建立一个Class对象。

 

      连接

      验证 是否有正确的内部结构

      并和其他类协调一致

      准备 负责为类的静态成员分配内存,

      并设置默认初始化值

 

      初始化

      初始化成员变量等等

 

      类的加载时机

      创建类的实例

      访问类的静态变量,或者为静态变量赋值

      调用类的静态方法

      初始化某个类的子类

      使用反射方式

      来强制创建某个类或接口

      对应的java.lang.Class对象


五、类加载器

        什么是类加载器classLoader

  负责将.class文件加载到内存中,

        并为之生成对应的Class对象。

  虽然我们不需要关心类加载机制,

        但是了解这个机制

        我们就能更好的理解程序的运行。

        类加载器可分为:

 

  根类加载器

  也被称为引导类加载器

        负责Java核心类的加载

  比如System,String等。

        在JDK中JRE的lib目录下rt.jar文件中

 

  扩展类加载器

  负责JRE的扩展目录中jar包的加载。

  在JDK中JRE的lib目录下ext目录

 

  系统类加载器

  负责在JVM启动时

        加载来自java命令的class文件

  以及classpath环境变量

        所指定的jar包和类路径

 

六、什么是反射

        创建一个对象的三个阶段

  1.源文件阶段 .java的文件

  2.字节码阶段 .class

  3.创建对象阶段 new 对象

 

        内省:

  在运行时能够获取

        JavaBean当中的

        属性名称和get与set

 

        反射:

  JAVA反射机制是在运行状态中

        对于任意一个类

        都能够知道这个类

        所有属性和方法;

  对于任意一个对象

        都能够调用它的

        任意一个方法和属性;

  这种动态获取的信息

        以及动态调用对象的方法的功能

        称为java语言的反射机制。

  想要使用反射,

        就必须得要获取字节码文件

 

        获取字节码:

        1.Object类的getClass()方法

        2.静态属性class

        3.Class类中静态方法

        技术分享图片

        

        

 

        

 

 

 

        

 


以上是关于05-Servlet与内部加载机制(part1)的主要内容,如果未能解决你的问题,请参考以下文章

java之类加载机制

数据结构栈与队列 Part1:栈的创建与相关函数

[Java复习] JVM

JVM16_类的概述分类ClassLoader源码分析自定义类的加载器双亲委派机制沙箱安全机制

Java反射与类加载过程会擦出什么样的火花

Java反射与类加载过程会擦出什么样的火花