java开始面试的第56天.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java面试中的关键知识点涵盖了Web开发中的核心概念,尤其是关于请求处理、状态管理和安全性。以下是对这些知识点的详细解释: 1. **转发与重定向的区别**: - **转发(Forward)**:发生在服务器端,一次HTTP请求就能完成,它将请求从一个Servlet传递到另一个Servlet或者JSP页面,浏览器的URL不会改变。转发在同一个应用内部进行,不能跨应用或服务器。 - **重定向(Redirect)**:实际上是两个HTTP请求,浏览器收到服务器的重定向响应后,会发起新的请求到指定URL,浏览器地址栏的URL会显示新的地址。重定向可以是跨应用、跨服务器的。 2. **状态管理**: - **状态管理**是为了跟踪用户在Web应用中的行为,保持用户的会话状态。常见的方法有两种:**Cookie**和**Session**。 - **Cookie**:数据存储在客户端,每次请求时都会自动发送到服务器。通过`set-cookie`响应头设置,`cookie`请求头获取。限制包括大小(通常4KB)、数量以及安全问题。 - **Session**:数据存储在服务器端,通过一个唯一标识(sessionID)关联客户端。服务器通过检查请求头中的`JSESSIONID`来识别用户。Session适用于存储大量数据或需要长期保持的状态,但会增加服务器内存负担。 3. **代码解析**: - `request.getCookies()`:获取当前请求携带的所有Cookie对象数组。 - `currCookie.getName()`:获取Cookie的名称。 - `currCookie.getValue()`:获取Cookie的值。这段代码用于遍历并打印所有请求中的Cookie。 4. **使用Session验证防止非法访问**: - **Session验证**是防止未登录用户访问受保护页面的一种常见策略。 - **步骤1**:在用户成功登录后,将用户信息绑定到Session,如`session.setAttribute("user", user);`。 - **步骤2**:在受保护页面的Servlet或控制器中,检查Session中是否存在用户信息,如`Object obj = session.getAttribute("user");`,若不存在则重定向到登录页面。 - **步骤3**:在JSP页面中也可以直接使用Session,因为JSP页面默认被转换为Servlet,可以访问Session。 - **测试**:未登录用户尝试访问受保护页面会被重定向,登录后访问正常。即使关闭浏览器再打开,如果Session未过期,用户仍能访问,展示了Session在会话管理中的作用。 掌握这些基础概念对于Java Web开发者至关重要,它们涉及到Web应用的核心流程和安全机制。在面试中,能够深入理解并正确运用这些知识,可以展示出对Web开发的扎实基础和实践经验。
- 粉丝: 62
- 资源: 7万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助