• 2 Servlet(1)


    什么是Servlet:

      是开发动态web资源的技术。

    一个java程序向浏览器输出数据的步骤:

      1、创建一个java类,实现servlet接口

      2、然后把java类部署到web服务器中

    servlet运行的过程:(重点)

      1、web容器会先检查有没有servlet实例,没有则执行第二步,有则执行第四步

      2、web容器会装载和创建servlet实例

      3、调用init()方法,这是初始化方法(像游戏里面,刚开始你要设置人物的武力值什么的)

      4、创建http请求对象(用来封装数据的)和http响应对象,调用service()方法

      5、当web容器关闭,调用destroy()方法释放资源

    使用servlet,需要理解它的web.xml配置文件(就像取小名,小名可以代表你本人):

      常见的属性:

      <servlet -name>:servlet注册名称

      <servlet -class>:servlet完整类名(就是servlet在项目中的绝对路径)

      <url - patten>:servlet对外访问路径(就是你访问网站的网址)

    例子:

    web.xml

     1 <Servlet>
     2     <servlet-name>demo1</servlet-name>
     3     <servlet-class>gacl.servlet.servlet.servletDemo1</servlet-class>
     4  </Servlet>
     5 
     6 
     7 <Service-mapping>
     8     <service-name>demo1</servlet-name>
     9     <url-patten>/servlet/1.jsp</url-patten>
    10 </Servlet-mapping>
    web.xml

    Servlet:是java类,供其他java类调用,无法独立运行,受到Servlet引擎调用

    Servlet线程安全问题:(我感觉挺重要的)

      出现的情况:出现多线程的情况下,会出现线程安全问题

      解决方法:

          1、将变量设置为局部变量(安全问题通常就是多个线程调用变量导致出现问题)

          2、synchronize(就是一个锁,第一个线程调用方法时,你将方法上锁,只有第一线程结束,第二线程才可以调用方法)

    SUN公司提供的解决方法:让Servlet实现一个singleThreadModel接口,如果某个Servlet实现了ServletThreadModel接口,那么Servlet引擎

    将以单线程模式来调用service方法

    标记接口:没有变量,没有方法

    作用:打上标志(比如cloneable()方法就是允许克隆)

    (重要)对于实现SingleThreadModel接口的servlet,servlet引擎仍然对servlet的多线程并发访问,其采用的方式是产生多个servlet实例对象,

    并发的每个线程分别调用一个独立的servlet实例对象

    会当凌绝顶,一览众山小
  • 相关阅读:
    增加新分类daily——“每天学了啥?”
    gcc选项中的编译过程
    一个带路径复制的perl脚本
    git
    mysql explain 详解
    CentOS Python2.4升级到Python2.7
    mongoDb查询
    linux php 扩展
    php-redis 扩展安装
    redis Linux的安装方法
  • 原文地址:https://www.cnblogs.com/quenvpengyou/p/12846555.html
Copyright © 2020-2023  润新知