一:Tomcat目录解析
bin:脚本目录
启动脚本:startup.bat
停止脚本:shutdown.bat
conf:配置文件目录 (config /configuration)
核心配置文件:server.xml
用户权限配置文件:tomcat-users.xml
所有web项目默认配置文件:web.xml
lib:依赖库,tomcat和web项目中需要使用的jar包
logs:日志文件.
localhost_access_log..txt tomcat记录用户访问信息,..表示时间。
例如:localhost_access_log.2017-04-28.txt
temp:临时文件目录,文件夹内内容可以任意删除。
webapps:默认情况下发布WEB项目所存放的目录。
work:tomcat处理JSP的工作目录。
2.Tomcat启动报错
错误: Caused by: java.net.BindException: Address already in use: JVM_Bind
原因:端口号冲突
解决:通过修改tomcat目录下conf/server.xml配置文件修改端口号。将8080修改成其他端口号。
二:Servlet作用
1.接收请求 :接收客户端发送的请求数据;
2.业务逻辑的处理;
3.响应结果 :将处理结果响应给客户端(浏览器);
三:Servlet开发步骤
1.创建一个普通java类实现Servlet接口;
2.重写Servelt接口中的所有抽象方法;
3.注册这个类;
1.在web.xml中配置这个类的信息;
2.配置这个类的映射路径;
4.在service方法中处理请求和响应的业务逻辑;
5.发布项目,启动项目之后,通过映射路径访问这个类;
四:Servlet的生命周期
1. 谁创建:tomcat创建;
2. 何时创建:第一次访问这个Servlet的时候,只创建一次,创建完成后会调用init()方法;
3. 如何工作:每次请求到这个Servlet时,由service方法处理请求和响应信息;
4. 何时销毁:服务器正常关闭,销毁前会调用destory()方法;
总结:
1. Servlet对象的创建:
1. 创建者:tomcat;创建时机:在Servlet第一次被访问的时候;
2. 特点:
1. 只会创建一次(单例);
2. 对象创建完成之后,会调用init()方法;
2. Servlet运行:
1. service()方法接收用户的请求,和处理响应;
2. 特点:
1. 每次对这个Servlet的访问都会由service()方法来处理;
2. service()方法的两个参数:request和response对象专门用来处理请求和响应;
3. Servlet销毁:
1. Servlet对象在服务器正常关闭的时候销毁;
2. 特点:
1. 销毁的时候会调用destory()方法;
4.url-pattern中的映射路径配置
1. 完全匹配 /user/hello 资源路径为/user/hello时可以访问
2. 目录匹配 /user/* 资源路径中含有/user目录均可访问
3. 后缀名匹配 *.do 资源路径中以.do结尾的均可访问
4. 缺省路径 / 访问的路径找不到,就会去找缺省路径
tomcat获得匹配路径时,优先级顺序:1 >2 > 3 > 4
五:加载Servlet对象优先级配置
问题:普通的Servlet对象在我们第一次访问的时候创建, 开发中,如果我们需要在服务器启动的时候,初始化Servlet对象应该如何编写呢?
需求:服务器tomcat启动,立刻加载配置文件,获取配置文件信息,为项目后续代码提供数据支持。
解决:此时的业务场景,我们需要在web.xml文件中给指定的Servlet添加一个标签<load-on-startup>
实现步骤:在web.xml中在<Servlet></Servlet>标签内部中配置:
<load-on-startup>2</load-on-startup> --- 传入正整数,整数越小,被创建的优先级就越高。12345
|
|