zoukankan      html  css  js  c++  java
  • Servlet——映射细节、3.0注解配置、线程不安全问题

    Servlet映射细节

    1.一个Servlet可以有多个<url-pattern>(可以使用多个资源名称找到当前的Servlet), 也可以有多个<servlet-mapping>
    ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200426093547883-1111283356.png)
    2.配置Servlet可以使用通配符( * )
        1.* : 表示任意字符
        2./* :可以使用任意的字符访问当前的Servlet
        3./xxx/* : xxx表示一个模块,/system/* (登陆验证)
        4.*.拓展名: 请求的资源必须以.zy结尾才能访问Servlet
    3.自定义的Servlet的<servlet-name>不能够为default,使用它会造成项目下面的静态资源找不到;在Tomcat/conf/web.xml文件中配置一个名字为default的Servlet,该Servlet在负责访问项目下的静态资源
    

    Servlet3.0新特性-注解配置

    1.问题: 在一个应用中存在很多Servlet,那么配置文件就会非常臃肿,开发效率低,不便于后期的维护.
    解决方案: 在Tomcat7开始, 可以使用**注解(WebServlet)**来取代XML配置.
    2.使用注解(WebServlet)做Servlet配置
        1.在Servlet类上贴@WebServlet注解
        // m1就表示资源名称
        @WebServlet("/m1")
        2.在web.xml文件中进行如下的配置
            metadata-complete=“true”:表示是否忽略Servlet上面的注解
            metadata-complete="false"表示是否不忽略Servlet上面的注解, 缺省值
     3.Web.xml和配置注解的选择
        1.配置Web.xml 
            优点: 配置清晰直观,因为和Java代码分离,维护性高.
            缺点: 在Web.xml中配置很多Servlet造成文件臃肿,维护性低
        2.注解 
            优点: 开发效率高,方便快速定位
            缺点: 与Java代码耦合在一起,维护性低.
    

    Servlet线程不安全问题

    ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200426094414169-2121977583.png)
    1.Servlet的线程不安全问题
        根本原因: Servlet是单例的, Servlet中的非static的成员变量只有一份,多个客户端好比是多个线程,都访问的是同一空间.
    2.解决方案 
        在Servlet中不要使用成员变量, 使用局部变量,每一个用户,每次请求都会调用service方法,而局部变量在service方法中,每一次访问都是新的空间.
  • 相关阅读:
    第01组 Beta冲刺(4/4)
    第01组 Beta冲刺(3/4)
    2019年安徽省黄山与湖北省武汉空气质量的数据分析
    爬取2019年hg录取分数线
    简单介绍下gbk和utf-8这两种编码的区别
    词云大作业(普哥、硕哥快来看啊!!!)
    分享一种下载python第三方库wordcloud库的一种方法
    介绍一种安装python第三方库jieba库的方法
    《C语言程序设计》实验报告(六)
    《C语言程序设计》实验报告(五)
  • 原文地址:https://www.cnblogs.com/linjing111/p/12777291.html
Copyright © 2011-2022 走看看