Servlet面试题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yhl_jxy/article/details/81111477

1、Servlet生命周期?

Servlet声明周期分为3个部分,从Servlet接口中的方法就可以知道。

初始化:从Web加载Servlet开始,第一次请求时候调用Servlet的init()方法进行初始化,init()调用且只调用一次。

处理请求:调用service()方法处理请求,之后每一次的请求都会调用service()方法。

销毁:当服务卸载或停止的时候,调用destroy()方法进行一些清除或销毁工作。

2、get提交和post提交有何区别?

1)get一般用于从服务器上获取数据,post一般用于向服务器传送数据。

2)请求的时候参数的位置有区别,get的参数是拼接在url后面,用户在浏览器地址栏可以看到。post是放在http包的包体中。

3)能提交的数据有区别,get方式能提交的数据只能是文本,且大小不超过1024个字节,而post不仅可以提交文本还有

二进制文件。

4)servlet在处理请求的时候分别对应使用doGet和doPost方式进行处理请求。

3、doGet与doPost方法的两个参数是什么?

HttpServletRequest:封装了与请求相关的信息。

HttpServletResponse:封装了与响应相关的信息。

4、什么是cookie?

    Cookie是由W3C组织提出,最早由netscape社区发展的一种机制网页之间的交互是通过http协议传输数据的,

而http协议是无状态的协议。无状态的协议是什么意思呢?一旦数据提交完后,浏览器和服务器的连接就会关闭,

再次交互的时候需要重新建立新的连接。服务器无法确认用户的信息,于是乎,W3C就提出了:给每一个用户都发

一个通行证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息。通行证就是Cookie。

5、Session和cookie有什么区别?

从存储方式上比较:

Cookie只能存储字符串,如果要存储非ASCII字符串还要对其编码。

Session可以存储任何类型的数据,可以把Session看成是一个容器。

从隐私安全上比较:

Cookie存储在浏览器中,对客户端是可见的。信息容易泄露出去。如果使用Cookie,最好将Cookie加密。

Session存储在服务器上,对客户端是透明的。不存在敏感信息泄露问题。

从有效期上比较:

Cookie保存在硬盘中,只需要设置maxAge属性为比较大的正整数,即使关闭浏览器,Cookie还是存在的。

Session的保存在服务器中,设置maxInactiveInterval属性值来确定Session的有效期。并且Session依赖于名为

JSESSIONID的Cookie,该Cookie默认的maxAge属性为-1。如果关闭了浏览器,该Session虽然没有从服务器中消亡,

但也就失效了。

从对服务器的负担比较:

Session是保存在服务器的,每个用户都会产生一个Session,如果是并发访问的用户非常多,是不能使用Session的,

Session会消耗大量的内存。

Cookie是保存在客户端的。不占用服务器的资源。像baidu、Sina这样的大型网站,一般都是使用Cookie来进行会话跟踪。

从浏览器的支持上比较:

如果浏览器禁用了Cookie,那么Cookie是无用的了!

如果浏览器禁用了Cookie,Session可以通过URL地址重写来进行会话跟踪。

从跨域名上比较:

Cookie可以设置domain属性来实现跨域名

Session只在当前的域名内有效,不可夸域名
 

猜你喜欢

转载自blog.csdn.net/yhl_jxy/article/details/81111477