base 卡特琳娜 为了方便指向, + - 号是表示base路径下那个xml存不存在
-->ee以下
部署资源
导入tomcat包
1.生命周期1.init方法完成初始化操作
2.任何客户端的请求都会交给sevlet的service 方法来进行处理,servlet的service是程序入口
3.销毁时会调用destroy方法来完成销毁工作
注:servlet只被创建出一个对象
安全问题:init()线程安全问题:如果不使用成员变量,没有问题(因为成员变量是共享的),也就是说所有的访问都是由这一个sevlet来进行反馈的(单例)
destroy()方法
1.应用被卸载
2.服务器关闭
init补充:默认情况下是当前第一次访问时会触发,其实还可以设置一个参数,load-on-starip=非负数
,init方法可以随着应用的启动而执行,执行的时机会提前
设置方式:注解方式
2.配置文件所以设置之后mvc容器会在发生servlet的时候就生成了
3.servlet的url-pattern的写法:1./xxxx /servlet1
2.*.xxx *.html
优先级:/xxx优先级高于*.xxx
如果都为/xx,匹配程度越高越优先
DefaultServlet缺省Servlet
jsp的本质是servlet,当访问jsp的时候,其实访问的时候
/*的优先级要高于*.jsp所以最终调用的都是/*
当屏蔽了/*的时候jsp页面可以显示,但是html文件显示的是/
实际上/就是缺省Servlet,功能是用来处理那些没有任何Servlet可以处理的请求(也即是如果不写/,那么tomcat的缺省会去找资源文件(IO流读取html文件),如果发生了重写,会调用自己写的/,)
(这也就是中央调度器用"/"的时候,为什么要设置静态文件处理方式的一个原因)
所以核心就是,如果重写了"/",那么所有静态资源的访问都会到这里,
如果没有写(在访问静态资源的时候),tomcat会调用自己的缺省servlet,去读取静态文件(也就是说其实静态文件的访问也是一个servlet)
(这也就是中央调度器用"/"的时候,为什么要设置静态文件处理方式的一个原因)
3.SevletConfig(了解)也就是可以获取Config(也就是web.xml)里面的配置参数
4.ServletContext(思考这个域的范围,还有servlet的生命周期(服务器关闭和应用卸载)->一个servlet访问就有一个servlet)
- 同一个应用下(/app35)有不同的servlet,
- 不同的应用下是相互隔离的
1.一个运行时共享数据的场所
servlet1与servlet2之间的数据共享
2.电商场景:
电商首页的产品分类:
首页也需要使用该数据,可以通过首页获取之后放置到context之中,其他页面(Servlet)从Context中获取就可以了;
(但是如果不从首页访问,可以放到init方法里面然后放到域吗-->结果表明确实是这样(秒啊))
5.文件的绝对路径
没有main方法,调用方法的是tomcat,以下是tomcat下的一个jar包
(因此直接读file的地址不是文件的真实地址)
2.拿到文件的绝对路径
1.通过域空间得到真实地址,然后拼接
2.直接写当前文件的地址,得到真实路径
缺省补充
都会给Servlet,找不到的时候会给缺省进行管理,Tomcat的缺省会io流读取文件;



