ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

servlet之线程及服务器启动就创建

2022-04-06 15:32:37  阅读:162  来源: 互联网

标签:do URL Servlet 通配符 星号 线程 创建 服务器 servlet


简介:

Servlet是非线程安全的,所以其效率高,速度快,但是在多线程的情况下容易出错;

那么为了避免这种情况,有几点注意事项:

  1、不要在Servlet中创建成员,仅创建局部变量即可

  2、可以创建无状态成员(例如:一个类中只有一个print方法,那么在Servlet中创建其实例化对象不会因为多线程访问而引发错误);

  3、可以创建有状态的成员,但是该成员为只读(例如:一个类中有name成员属性,但是name只有getName()方法,没有setName()方法,那么多个线程调用时相互也不会产生影响,但如果存在setName()方法,在多线程调用时就会彼此影响)

 

服务器启动就进行创建:

一般Servlet在浏览器第一次访问的时候创建,但是可以通过添加配置信息进行设置为服务器启动的时候就进行Servlet的创建:

在<seervlet>标签中的<load-on-startup>标签中添加非负整数数值的大小决定启动的顺序

可以重写无参的init()方法进行实验:

 

 

 

 

多个路径:

在配置文件的url项的<url-pattern>标签,可以为Servlet配置多个url:

其中的F1Servlet和F2Servlet在浏览器的访问时都是访问的FServlet, 

 

通配符 * :

 

还可以在<url-pattern>中使用通配符,所谓通配符就是星号“*”,星号可以匹配任何URL前缀或后缀,使用通配符可以命名一个Servlet,绑定一组URL,例如:还可以在<url模式>中使用通配符,所谓通配符就是星号“*”,星号可以匹配任何url前缀或后缀,使用通配符可以命名一个Servlet,绑定一组URL,例如:
<url-pattern>/serylet/*<url-patter> : /servlet/a、/serylet/b,都匹配/servlet/* 

<url-pattern>*.do</url-pattern>: /abc/def/ghi.do、/a.do,都匹配*.do; 

<url-pattern>/*<url-pattern>:匹配所有URL

 

 

请注意,通配符要么为前缀,要么为后缀,不能出现在URL中间位置,也不能只有通配符。例如: /*.do就是错误的,因为星号出现在URL的中间位置上了。*.*也是不对的,因为一个URL中最多只能出现一个通配符

 

标签:do,URL,Servlet,通配符,星号,线程,创建,服务器,servlet
来源: https://www.cnblogs.com/0099-ymsml/p/16106611.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有