面试(1)
JSP的九大隐含对象?
主要分为四个主要的类别:
一:输入和输出对象: 控制页面的输入和输出
request、response、out
二、作用域对象: 检索和jsp页面的servlet相关的信息
pageContext、session、application
三:servlet对象:提供有关页面环境的信息
page、config
四:错误对象: 处理页面中的错误
exception
输入输出对象:
-
request对象:
主要用于处理客户端的请求,包含了所有的请求信息,一般常用的方法有:getParameter(String name);
-
response对象:
主要用于处理jsp生成的响应,然后将响应结果发送给客户端。
常用方法有:setContextType(String name): 设置作为响应结果发送给客户端。
sendRedirect(String name) :发送一个响应给浏览器,指示其应请求下一个URL。
-
out对象:输出流,输出到客户端。
作用域对象:
-
pageContext对象:使用户可以访问当前页面作用域中定义的所有隐式对象。
-
session对象:表示用户的会话状况,用此项机制可以轻易识别出每一个用户,能保存和跟踪用户的会话状态。
-
application对象:作用于整个应用程序,所有的客户端窗口都可以共享该对象。从服务器开始就存在,直到服务器关闭为止。
servlet对象:
-
page对象:提供对网页上定义的所有对象的访问。page对象表示页面本身
-
cofig对象:存储servlet的一些初始信息
错误对象:
-
exception:处理jsp页面中的错误。
servlet的生命周期?
-
调用init()方法初始化
-
调用 service() 方法来处理客户端的请求。
-
Servlet 通过调用 destroy() 方法终止(结束)。
-
最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
Cookie和Session的区别?
(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。
(2)cookie的存储限制了数据量,只允许4KB,而session是无限量的
(3)我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此session更安全
(4)设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。
总结:如果我们需要经常登录一个站点时,最好用cookie来保存信息,要不然每次登陆都特别麻烦,如果对于需要安全性高的站点以及控制数据的能力时需要用会话效果更佳
Get和Post请求的区别?
线程的状态有哪几种?
-
新建(NEW):新创建了一个线程对象。
-
可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。
-
运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。
-
阻塞(BLOCKED):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice 转到运行(running)状态。阻塞的情况分三种:
(一). 等待阻塞:运行(running)的线程执行o.wait()方法,JVM会把该线程放入等待队列(waitting queue)中。 (二). 同步阻塞:运行(running)的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中。 (三). 其他阻塞:运行(running)的线程执行Thread.sleep(long ms)或t.join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态。
-
死亡(DEAD):线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。