Servlet面试题合集()-servlet
Servlet面试题合集()
servlet的生命周期
- 在创建servlet对象时,通过调用.init()方法进行初始化
- 通过service()方法来接收客户端的请求.根据请求方式的不同转发给对应的doGet()或doPost()方法
- 停止服务时,通过调用destory()方法销毁servlet对象
- servlet对象被JVM垃圾回收器回收
servlet对象是单例的
请求转发与重定向的区别
1)转发使用的是req.getRequestDispatcher()方法;重定向使用的是res.sendRedirect();
2)转发︰浏览器URL的地址栏不变;重定向:浏览器URL的地址栏改变;
3)转发是服务器行为,重定向是客户端行为;
4)转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
5)转发两次跳转之间传输的信息不会丢失,重定向两次跳转之间传输的信息会丢失(request范围)。
1 请求转发之后不能创建响应类的输出流
2 请求转发之后不能重定向
请求转发和重定向不能同时用
请求转发或者重定向后面,不能再写新的代码
要访问jsp页面必须通过servlet请求转发到页面
如何设置session失效
客户端和服务端如果不断开连接 Session有一个方法可以设置session失效的时间
客户端和服务端断开连接,session将会失效
getSession()方法
getSession()会在请求范围内查找是否存在session对象,如果存在则返回该对象;否则创建一个新的session对象
session与cookie的区别
- 存储位置不同
Cookie的数据信息存放在客户端浏览器上。
Session的数据信息存放在服务器内存中。 - 存储容量不同
单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie。 - 存取方式不同
- 隐私策略不同
- 有效期不同
- 服务器压力不同
- 浏览器支持不同
(有些浏览器会禁用Cookie,造成数据丢失) - 跨域支持上的不同
Cookie 支持跨域名访问
Filter过滤器和listener监听器的区别
filter: 过滤器,用于拦截请求或者响应对象。filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改到某―资源的响应。
过滤非登录请求
listener:监听器,用于监听web对象的创建和销毁。从字面上可以看出 listener主要用来监听。通过 listener 可以监听web 服务器中某一个执行动作,并根据其要求作出相应的响应。通俗的语言说就是在application,session,request三个对象创建或者消亡时,自动执行相应的监听方法。
WEB-INF目录
WEB-INF是Java的 WEB应用的安全目录,特点是客户端无法访问
ServletContext接口
Servletcontext官方叫servlet 上下文。
定义:
web容器在启动时,服务器tomcat 会为每一个工程创建一个对象,这个对象就是ServletContext对象,它代表当前 web应用程序。这个对象全局唯一,而且工程内部的所有servlet 都共享这个对象,所以也叫全局 应用程序 共享对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过servletcontext对象来实现通讯。因此,servletContext对象通常也被称之为context域对象。
ServletContext的应用:
1.做为域对象可以在整个web应用范围内共享数据。
域对象:在一个可以被看见的范围内共享数据用的对象
作用范围:整个web应用范围内共享数据
生命周期:当服务器启动web应用加载后创建出 ServletContext对象后,域对象产生。
当web应用被移除出容器或服务器关闭,随着web应用的销毁,域对象销毁。
2. 获取 web应用的初始化参数
使用标签(与Servlet标签并列)为整个web应用配置属性,ServeltContext对象通过getInitParameter()方法获得全局初始化参数:
ServletContext对象是在 Web 应用程序装载时初始化的。
ServletContext实例是通过getServletContext()方法获得的
ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。
GET与POST 请求方式的区别:
1 GET请求业务参数以键值对的形式拼接在URL后面;
POST请求业务参数存放在HTTP头信息中;
2 GET请求URL长度是受限制的,URL的最大长度是1024个字符,即2KB;
POST请求理论上数据长度无限制,但是数据受web服务器限制;
3 GET请求安全性较差,因为参数是URL的一部分,对用户可见;
POST请求相对更安全.因为参数不会被保存在浏览器历史或web服务器日志中
4 GET请求只允许ASCII字符;POST请求没有限制。也允许二进制数据.所以提交多媒体文件用POST方式提交。
HTTP状态码列表(重要的几个)
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面 |
405 | Method Not Allowed | 客户端请求中的方法(GET/POST)被禁止 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
servlet的生命周期
- 在创建servlet对象时,通过调用.init()方法进行初始化
- 通过service()方法来接收客户端的请求.根据请求方式的不同转发给对应的doGet()或doPost()方法
- 停止服务时,通过调用destory()方法销毁servlet对象
- servlet对象被JVM垃圾回收器回收
servlet对象是单例的
请求转发与重定向的区别
1)转发使用的是req.getRequestDispatcher()方法;重定向使用的是res.sendRedirect();
2)转发︰浏览器URL的地址栏不变;重定向:浏览器URL的地址栏改变;
3)转发是服务器行为,重定向是客户端行为;
4)转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
5)转发两次跳转之间传输的信息不会丢失,重定向两次跳转之间传输的信息会丢失(request范围)。
1 请求转发之后不能创建响应类的输出流
2 请求转发之后不能重定向
请求转发和重定向不能同时用
请求转发或者重定向后面,不能再写新的代码
要访问jsp页面必须通过servlet请求转发到页面
如何设置session失效
客户端和服务端如果不断开连接 Session有一个方法可以设置session失效的时间
客户端和服务端断开连接,session将会失效
getSession()方法
getSession()会在请求范围内查找是否存在session对象,如果存在则返回该对象;否则创建一个新的session对象
session与cookie的区别
- 存储位置不同
Cookie的数据信息存放在客户端浏览器上。
Session的数据信息存放在服务器内存中。 - 存储容量不同
单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie。 - 存取方式不同
- 隐私策略不同
- 有效期不同
- 服务器压力不同
- 浏览器支持不同
(有些浏览器会禁用Cookie,造成数据丢失) - 跨域支持上的不同
Cookie 支持跨域名访问
Filter过滤器和listener监听器的区别
filter: 过滤器,用于拦截请求或者响应对象。filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改到某―资源的响应。
过滤非登录请求
listener:监听器,用于监听web对象的创建和销毁。从字面上可以看出 listener主要用来监听。通过 listener 可以监听web 服务器中某一个执行动作,并根据其要求作出相应的响应。通俗的语言说就是在application,session,request三个对象创建或者消亡时,自动执行相应的监听方法。
WEB-INF目录
WEB-INF是Java的 WEB应用的安全目录,特点是客户端无法访问
ServletContext接口
Servletcontext官方叫servlet 上下文。
定义:
web容器在启动时,服务器tomcat 会为每一个工程创建一个对象,这个对象就是ServletContext对象,它代表当前 web应用程序。这个对象全局唯一,而且工程内部的所有servlet 都共享这个对象,所以也叫全局 应用程序 共享对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过servletcontext对象来实现通讯。因此,servletContext对象通常也被称之为context域对象。
ServletContext的应用:
1.做为域对象可以在整个web应用范围内共享数据。
域对象:在一个可以被看见的范围内共享数据用的对象
作用范围:整个web应用范围内共享数据
生命周期:当服务器启动web应用加载后创建出 ServletContext对象后,域对象产生。
当web应用被移除出容器或服务器关闭,随着web应用的销毁,域对象销毁。
2. 获取 web应用的初始化参数
使用标签(与Servlet标签并列)为整个web应用配置属性,ServeltContext对象通过getInitParameter()方法获得全局初始化参数:
ServletContext对象是在 Web 应用程序装载时初始化的。
ServletContext实例是通过getServletContext()方法获得的
ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。
GET与POST 请求方式的区别:
1 GET请求业务参数以键值对的形式拼接在URL后面;
POST请求业务参数存放在HTTP头信息中;
2 GET请求URL长度是受限制的,URL的最大长度是1024个字符,即2KB;
POST请求理论上数据长度无限制,但是数据受web服务器限制;
3 GET请求安全性较差,因为参数是URL的一部分,对用户可见;
POST请求相对更安全.因为参数不会被保存在浏览器历史或web服务器日志中
4 GET请求只允许ASCII字符;POST请求没有限制。也允许二进制数据.所以提交多媒体文件用POST方式提交。
HTTP状态码列表(重要的几个)
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面 |
405 | Method Not Allowed | 客户端请求中的方法(GET/POST)被禁止 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |