欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

servlet

程序员文章站 2022-06-03 10:31:38
...

1.什么是Servlet?
保存在Servlet容器中,动态拼资源给发HTTP请求的客户端的web组件。
(什么是http协议:是一个规范,规定浏览器和服务器如何通信,规定通信的数据格式。)

2.Servlet的生命周期问题?
Servlet加载:在Web容器启动或第一次请求服务时,Web容器将其实例化放入Servlet实例池。
初始化Servlet:当Servlet实例化后,容器将调用Servlet对象的init()方法完成Servlet的初始化。
处理请求Service方法:容器通过Servlet的service()方法处理客户端请求。
处理完成调用destory()方法:Web容器关闭时,容器调用Servlet对象的destroy方法对资源释放。

3.创建Servlet对象的时机的三点阐述:
a.Servlet容器启动时:读取web.xml配置信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletCongfig对象作为参数来调用Servlet对象的init方法。
b.在Servlet容器启动后,客户端首次向Servlet发请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建,然后根据客户端的请求创建HttpRequest,HttpResponse对象。
c.Servlet容器启动时自动创建servlet对象,这是由web.xml文件中属性决定的。从中我们也能看到同一类型的servlet对象在Servlet容器中以单例的形式存在。

<servlet>
    <servlet-name>Init</servlet-name>
    <servlet-class>***</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

4.Servlet的技术特点:
方便,实用的API方法,针对HTTP请求提供丰富的API方法,他可以处理会话跟踪,读取和设置HTTP头信息等;高效的处理方式,Servlet的一个实例对象可以处理多个线程的请求。。。。

5.Servlet与JSP的区别:
Servlet更擅长业务逻辑代码的处理,JSP更擅长页面的显示;Servlet中调用Servlet API接口处理HTTP请求,而在JSP页面中,则直接提供了内置对象进行处理;Servlet的使用要进行一定的配置,而JSP文件通过.jsp扩展名部署在容器之中,容器对其自动识别,直接编译成Servlet进行处理。

3.常用的服务器有哪些:Tomcat,JBoss,WebLogic,WebSphere
4.常见的请求错误:
servlet
5.浏览器向服务器发送请求的方式和区别:
get(默认);
get使用请求路径传参,将参数附加在路径上发送服务器
参数在传递过程中可见,隐私性差
请求路径空间有限,只能携带少量参数
post;
使用实体内容传参
参数在传递过程中不可见,隐私性好
实体内容专门用来传参,大小没有限制
6.servlet的生命周期和工作原理
http://www.cnblogs.com/xuekyo/archive/2013/02/24/2924072.html
标准:默认情况下在第一次访问某个servlet时创建其唯一对象,并初始化;也可以在servlet容器启动时,读取web.xml配置文件中来依次创建对象,创建某个servlet对象(同时创建ServletConfig对象,然后通过ServletConfig对象作为参数调用init()方法),调用service()来处理请求,在服务端停止时,调用destroy(),结束生命周期。
7.jsp九大内置对象,四大作用域:http://blog.csdn.net/zhangzeyuaaa/article/details/44560921
8.el标签取值顺序:page,request,session,application
9.转发和重定向的共同点以及区别:
共同点:他们都是解决web组件之间的跳转问题;(web组件:servlet,jsp)
不同点:转发,一次请求,地址不变,共用一个request,只能转发给项目内的组件
重定向,二次请求,地址改变,不同的request,可以重定向到项目外的组
10.mvc模式:M(model):业务层,用来处理业务逻辑,通常负责数据库中存取数据。V(View):视图层,用来显示数据。C(Controller):控制层,用来处理请求。
最经典的mvc就是jsp+servlet+javabean
什么是Javabean:有默认构造器,实现序列化接口,通常有get/set方法
11.cookie和session专门解决这样的存储问题:
-多个请求之间可以公用此对象中的数据
-多个servlet之间可以公用此对象的数据
-多个浏览器单独存一份数据,数据分开互不影响
区别:
-cookie数据存在浏览器上,服务器压力小,但很容易被篡改
-session数据存储在服务器上,服务器压力大,无法篡改