JSP面试关键知识点解析:包括Servlet、Session与Cookie
需积分: 0 89 浏览量
更新于2024-09-21
收藏 61KB DOC 举报
"这篇关于jsp面试的知识点涵盖了多个核心概念,包括静态include与动态include、cookie与session的区别、servlet生命周期以及forward与sendRedirect的区别。此外,还提及了符合J2EE标准的web-app目录结构、HTTP表单提交、web.xml配置、URL编码以及解决乱码问题的方法,以及Cookie和session的特性比较。"
在JSP面试中,面试官可能会关注以下几个方面:
1. **静态Include与动态Include的区别**:
- 静态Include(`<jsp:include page="...">`):在编译时就将被包含页面的内容插入到主页面中,生成一个单独的Servlet类,适合包含静态内容,如头部、底部等。
- 动态Include(`<jsp:include>`与`<jsp:forward>`):在运行时动态地将被包含页面的内容插入,每次请求都会执行被包含页面的代码,适合包含动态内容。
2. **Cookie与Session的区别**:
- Cookie:存储在客户端浏览器,用于跟踪用户状态,大小有限制(通常4KB),且可能被禁用或清除。
- Session:存储在服务器端,安全但占用服务器资源,每个用户会话对应一个session,可以通过sessionID追踪用户,有超时机制。
3. **Servlet生命周期**:
- 创建:第一次请求时,容器创建Servlet实例并调用`init()`方法。
- 服务:每次请求,Servlet实例的`service()`方法被调用,它根据请求方法调用`doGet()`或`doPost()`。
- 销毁:应用关闭或容器清理时,调用`destroy()`方法。
4. **Forward与Redirect的区别**:
- Forward(`RequestDispatcher.forward()`):内部跳转,浏览器地址栏不会改变,适合同一应用内的跳转,请求范围内的对象可以共享。
- Redirect(`Response.sendRedirect()`):外部跳转,浏览器重新发起请求,地址栏显示新URL,数据不能直接传递。
除此之外,面试中还会涉及web-app的标准目录结构,例如`WEB-INF`下包含`classes`(存放编译后的Java类)、`web.xml`(部署描述符)和`lib`(存放库文件)。
在处理HTTP表单提交时,`form`的`action`属性可以是相对路径或绝对路径,`/`通常代表应用的根路径。对于乱码问题,需要在响应头设置正确的字符集,如在Servlet中使用`response.setContentType("text/html;charset=gbk")`或在JSP页面中使用`<%@page contentType="text/html;charset=gb2312"%>`。
解决不同场景下的乱码问题,例如GET请求、POST请求、URL参数包含中文,可以通过设置服务器配置(如Tomcat的`URIEncoding`属性)或在代码中调用`request.setCharacterEncoding("GBK")`。
最后,对于Cookie和Session的特性比较:
- Cookie存储在客户端,有生命周期,可以设置过期时间,但安全性较低。
- Session存储在服务器端,依赖于客户端的Cookie(通过sessionID识别),当Cookie禁用时,可通过URL重写维持Session,但会增加网络传输负担。
2010-08-30 上传
2010-10-12 上传
2013-05-07 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
rongxing19
- 粉丝: 0
- 资源: 1
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码