1.自定义 servlet 的三种方式,及区别?
- 方式一:编写一个类去实现Servlet接口(必须重写Servlet接口里面所有的抽象方法)
- 方式二:编写一个类去继承GenericServlet抽象类(重写生命周期的service方法(抽象法))GenericServle抽象类它实现了Servlet接口,还实现了ServletConfig接口(这个接口中提供了一个getServletContext方法)可以在编写一个类中直接调用getServletContext方法就可以获得ServletContext对象。(开发中不常用)
- 方式三:编写一个类去继承HttpServlet抽象类(没有抽象方法!根据页面的提交方式决定重写doGet或者doPost方法,也可以重写service方法,因为servlet执行顺序先初始化,执行service方法在执行get或post方法)
2.写出 Servlet 中的三大作用域,并分别说明各自的特点?
- rerequest
解释:它表示一个请求,只要发出一个请求就会创建一个request,
作用域:仅在当前请求中有效。
用处:常在同一服务器件同一请求不同页面之间的参数传递,常用于表单控件值传递。
方法:request.setAttribute()-修改,request.getAttribute()-获取,request.removeAttribute()-删除 - session
解释:服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。
会话:用户打开浏览器会话开始,直到关闭浏览器会话才会结束,一次会话期间只会创建一个session对象。
用处:常用于wep开发中登陆验证界面(当用户登陆成功后浏览器分配其一个session键值对。)
方法:session.setAttribute()-修改,session.getAttribute()-获取,session.removeAttribute()-删除
获得session对象的方法:
(1).在servlet中:HttpSession=requset.getSession();
(2).由于session属于jsp的九大内置对象之一,也可以直接使用,例:<%session.setAttribute(“name”,“admin”)%>
session销毁:
(1).session超时
(2).客户端关闭后,
(3)调用session.invalidate(); - .Application(ServletContext)
作用范围:所