本帖最后由 小石姐姐 于 2017-11-29 16:18 编辑
### 面试集锦
* 1. Servlet 生命周期
*Servlet 的生命周期(**面试笔试**)
* 生命周期: 就是一个对象从创建到销毁的过程.
* Servlet 生命周期: Servlet 从创建到销毁的过程.
* 何时创建: 用户第一次访问 Servlet 就会执行 init 创建 Servlet 实例.
* 何时销毁: 当前项目从服务器中移除的时候,或者关闭服务器的时候.
* 详细描述:
* 用户第一次访问Servlet的时候,服务器会创建一个 Servlet 的实例,那么 Servlet中 init 方法就会执行.任何一次请求服务器都会创建一个新的线程访问Servlet中的service 的方法.在 service 方法内部根据请求的方式的不同调用 doXXX 的方法.(get 请求调用 doGet,post 请求调用 doPost).当 Servlet 中服务器中移除掉,或者关闭服务器,Servlet 的实例就会被销毁,那么 destroy 方法就会执行.
* 2. * JSP 的内置对象(****)
* JSP 的内置对象: JSP 中直接使用的对象.
* JSP 中有9大内置对象:
内置对象 真实对象 常用方法
* request ---- HttpServletRequest getParameter(),setAttribute(String name,Object value);
* response ---- HttpServletResponse setHeader(String name ,String value);getOutputStream();getWriter();
* session ---- HttpSession setAttribute();getAttribute();removeAttribute();
* application ---- ServletContext setAttribute();getAttribute();
* page ---- Object toString();wait();
* pageContext ---- PageContext setAttribute();getAttribute();
* config ---- ServletConfig setAttribute();getAttribute();
* out ---- JSPWriter write();print();
* exception ---- Throwable getMessage();getCause(); 设置: isErroPage="true";
* 3. * pageContext 内置对象:(重点)
* 获得其他的 8 个内置对象. :编写通用性的代码或框架的时候.
* 向 JSP 的四个域中存取数据. :
* JSP 的四个域范围: 用来存取数据的对象 真实对象
* PageScope ----- :当前页面有效 -- pageContext --- PageContext
* RequestScope ----- :一次请求范围 -- request --- HttpServletRequest
* SessionScope ----- :一次会话范围 -- session --- HttpSession
* ApplicationScope - :应用范围 -- application --- ServletContext
* 4. session 域对象:
* Session 是域对象:
* 创建: 服务器端 第一次 调用 getSession() 创建 session.
* 销毁: 三种情况销毁 session .
* 1.session 过期: 默认是 30 分钟.
* 2.非正常关闭服务器.
* 钝化/活化: 如果是正常关闭session,会序列化到硬盘生成.ser文件 ,再次启动会反序列化读取里面的数据并销毁掉.ser文件,非正常关闭就不会生成序列化文件.
* 3.手动调用 session.invalidate();
* 作用范围: 多次请求.(一次会话)
* 5. * 乱码处理小结:
* 请求乱码 和 响应乱码:
* 请求 常用的是 GET 和 POST请求.
* Get 请求处理乱码:
* String username = new String(request.getParamater("username").getBytes("ISO-8859-1"),"UTF-8");
* POST 请求乱码处理:
* request.setCharacterEncoding("UTF-8");
* 响应乱码处理 :
* 字符流响应输出:
* response.setContentType("text/html;charset=UTF-8");
* 字节流响应输出:
* response.setCharacterEncoding("text/html;charset=utf-8");
|
|