Servlet:Java服务器端小应用 第二天
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Servlet:Java服务器端小应用 第二天,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4661字,纯文字阅读大概需要7分钟。
内容图文
![Servlet:Java服务器端小应用 第二天](/upload/InfoBanner/zyjiaocheng/617/783d783fdc1544c99cc6f1779bc79495.jpg)
【Servlet:Java服务器端小应用 第二天】
1 Servlet的使用
1.1 Servlet在Tomcat中运行的原理
- 启动Tomcat服务器(以下动作只在服务器启动的时候执行):
1) 解析web项目的web.xml文件
2) 通过反射创建所有的Servlet对象
反射创建
Class clazz=Class.forName(“包名+类名”);
Servlet servlet= clazz.newInstance();
将创建好的Servlet对象放到Map集合中:
key是web.xml配置文件中的映射路径(url-pattern)
value是Servlet对象
- Tomcat服务器接收请求
请求地址: http://localhost:8080/demo/HelloServlet
- Tomcat服务器解析请求:
Tomcat服务器解析请求后,会诞生两个对象分别为:
HttpServletRequest对象:存储此次请求的所有相关信息(行、头、体),每次请求重新创建
HttpServletResponse对象:存储了此次请求的响应流对象,每次请求重新创建
- Tomcat服务器查找请求的资源
Tomcat服务器根据请求地址从map集合中获取要调用的Servlet对象
Servlet servlet=map.get(“/HelloServlet”);
- Tomcat服务器调用Servlet对象的过程:
Class clazz= servlet.getClass();
Method method = clazz.getMethod(“service”,HttpServletRequest.class,HttpServletResponse.class);
method.invoke(servlet,request,response);
注意:
该流程由Tomcat底层接收请求后自动执行,我们是看不到的,我们需要做的是将实现了Servlet接口的代码提前放到Tomcat服务器中,这样请求被接收后就可以反射调用了。
1.2 Servlet案例开发中的问题处理
1.2.2 默认欢迎页的设置(掌握)
默认欢迎页就是指,浏览器发出的请求路径中没有指定具体的访问资源时,默认就会访问的页面。
在Tomcat中的conf/web.xml中配置了全局的几个默认欢迎页。
欢迎页可以配置多个,匹配优先级自上而下。
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> |
一般在我们项目中要设置默认欢迎页的话,在自己项目的web.xml中设置即可!不要改Tomcat中的conf/web.xml进行设置。
<welcome-file-list> <welcome-file>hello.html</welcome-file> </welcome-file-list> |
1.3 Servlet的生命周期
我们知道,浏览器发起请求后达到Tomcat服务器;
服务器会解析请求信息得到HttpServletRequest和HttpServletResponse两个对象;
然后服务器再通过反射去调用Servlet的service方法去处理请求。
那么问题来了。
1.3.1 问题1:Servlet对象创建、初始化并使用完后会销毁吗?
显然,Servlet对象在创建、初始化并使用后不应该销毁。如果使用完(请求处理完)就销毁,那么下次过来请求又得去创建Servlet对象,这样效率并不高!!
我们自始至终都使用同一个Servlet对象去处理请求,如果同时有10个请求过来访问Tomcat服务器,服务器会创建10个线程来处理请求,因为service方法不涉及到全局变量的修改操作,所以也不会有线程安全问题的。
1.3.2 问题2:Servlet对象会被创建及初始化几次?
由问题1,我们可以了解到,Servlet对象只会被创建及初始化一次。之后会驻留在内存当中。
1.3.3 问题3:Servlet对象是在什么时候创建及初始化的?
Servlet的创建与初始化的时机有两个:
- Servlet在第一次被浏览器访问的时候创建与初始化的(目前我们的代码用的就是这种方式,默认就是这种)
- Servlet在启动服务器的时候被创建与初始化的(该方式需要做一些配置,告诉Tomcat服务器在启动的时候就创建Servlet对象)
1.3.4 问题4:Servlet对象什么时候销毁?
Servlet对象是由Tomcat服务器创建的,之后就一直驻留在内存中处理请求。直到服务器停止后,Servlet才会被销毁!
1.3.5 Servlet生命周期总结
- 没有配置load-on-startup的情况
配置了load-on-startup的情况:
服务器启动的时候就会执行:构造方法,然后执行初始化方法。
之后有请求过来,就直接走service方法进行处理。
服务器停止的时候,执行销毁方法。
2 Servlet的继承结构
2.1 概述
l tomcat服务器是支持Servlet规范的。我们写的代码要想被服务器调用到,也必须遵守Servlet规范
l 在Java中提到规范,其实就是接口,及接口的一系列实现类
l 之前我们写的Servlet类并没有去直接实现Servlet接口,是因为该接口中方法较多,而我们一般只关注service方法,而Servlet接口有它的一系列实现类,我们继承这些实现类即可,也就相当于间接的实现了Servlet接口
2.2 继承结构体系
对各个继承结构的详细描述:
2.3 注意
tomcat服务器在接收到浏览器的请求后,会调用自定义的Servlet的service方法处理器请求,如果当前自定义的Servlet类没有service方法会调用父类的service方法进行处理。
tomcat服务器本质上是不区分请求是post请求还是get请求,只要来了请求,它都直接调用对应的Servlet对象的service方法!!!
注意this关键字的含义!
3 请求(HttpServletRequest)
3.1 service方法的再次强调
3.1.1 service方法的作用
在service方法中编写处理请求的业务逻辑代码,浏览器发送请求后由tomcat服务器自动调用执行。
3.1.2 service方法的方法体
service方法中写业务逻辑代码的话,大概是如下三步:
- 获取请求数据
- 处理请求数据
- 响应结果
3.2 HttpServletRequest对象获取请求数据
3.2.1 request对象的来源
浏览器发送请求后,由tomcat服务器接收到,然后对请求的信息进行解析,将解析结果封装到HttpServletRequest和HttpServletResponse两个对象中。
然后tomcat通过反射调用service方法的时候,又将这两个对象传递给了service方法。
3.2.2 request对象的特点
- 在tomcat服务器接收请求后,对请求进行解析后创建的
- 每次请求,tomcat服务器都会重新创建
- request对象存储了此次请求的所有数据(http协议中的请求行、头、体)
内容总结
以上是互联网集市为您收集整理的Servlet:Java服务器端小应用 第二天全部内容,希望文章能够帮你解决Servlet:Java服务器端小应用 第二天所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。