JAVA_EE(三)->生命周期_url-pattern_Context域图_真实路径

0.se->ee文件的创建过程

 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类,每一个servlet类里都是单例的,
  •                 不同的应用下是相互隔离的

1.一个运行时共享数据的场所

        servlet1与servlet2之间的数据共享

2.电商场景:

电商首页的产品分类:

首页也需要使用该数据,可以通过首页获取之后放置到context之中,其他页面(Servlet)从Context中获取就可以了;

(但是如果不从首页访问,可以放到init方法里面然后放到域吗-->结果表明确实是这样(tomcat也是个容器))

5.文件的绝对路径

意思就是;如果直接用new file("文件名")这样的方式所得到的地址,这个地址是在运行之后的tomcat/bin目录下的相对地址,(因为是ee项目所以是tomcat作为main方法),而此时这个地址就变成了tomcat/bin目录下的相对地址,而我们实际需要的是地址idea将这些文件都复制到了项目的工作空间之下,也就是out下的地址,因此我们需要得到realpath,就是getServletContext().getRealPath(),这样得到的地址就是工作空间下的地址了;

        

 没有main方法,调用方法的是tomcat,以下是tomcat下的一个jar包

(因此直接读file的地址不是文件的真实地址,而是tomcat/bin目录下的)

 

2.拿到文件的绝对路径

 1.通过域空间得到真实地址,然后拼接(contextPath+servletPath)

2.直接写当前文件的地址,得到真实路径

缺省补充

 

 都会给Servlet,找不到的时候会给缺省进行管理,Tomcat的缺省会io流读取文件;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值