### JavaWeb面试题知识点解析 #### 96. Servlet与CGI的区别 - **概念区别**:Servlet是一种基于Java的应用程序组件,它运行在服务器端,可以用来处理HTTP请求并生成响应。CGI(Common Gateway Interface)则是一种通用网关接口,允许Web服务器执行外部应用程序并返回结果。 - **执行效率**:Servlet在服务器进程中运行,采用多线程模型,这意味着一个Servlet实例可以同时处理多个请求。相比之下,传统的CGI为每个HTTP请求创建一个新的进程,处理完请求后即销毁,这导致了更高的系统开销和更低的处理效率。 - **资源管理**:Servlet实例通常在整个应用运行期间保持活动状态,只有在服务器关闭或应用卸载时才会销毁。而CGI进程每次请求结束后都会被销毁,下次请求时需重新创建。 - **扩展性**:由于Servlet支持多线程和持久化实例,因此在高并发场景下具有更好的扩展性。 - **兼容性和维护**:Java Servlet提供了更丰富的API和工具支持,便于开发者构建复杂的应用。CGI虽然简单但可能在维护和调试方面更为困难。 #### 97. Servlet接口中的方法 - **init(ServletConfig config)**:此方法在Servlet被容器加载并实例化之后立即调用,用于初始化Servlet配置。这里可以通过`ServletConfig`对象获取初始化参数和其他配置信息。 - **service(ServletRequest req, ServletResponse resp)**:此方法负责处理具体的HTTP请求。容器根据HTTP请求类型(如GET或POST)调用适当的`doGet`或`doPost`方法。`service`方法确保请求被正确处理,并将响应返回给客户端。 - **destroy()**:在Servlet实例不再需要时,容器会调用此方法释放Servlet所占用的资源。这是一个很好的机会来清理任何打开的数据库连接或其他资源。 - **getServletInfo()**:返回有关Servlet的信息字符串,通常是Servlet的版本号或其他描述性信息。 - **getServletConfig()**:返回当前Servlet的配置信息,通过这个方法可以再次获取`ServletConfig`对象。 #### 98. 转发(forward)与重定向(redirect) - **forward(转发)**:在服务器内部进行资源的跳转,客户端不会感知到这种变化,浏览器地址栏显示的仍然是原始请求的URL。这种方式效率较高,适用于在同一应用内的资源跳转。 - **redirect(重定向)**:服务器告知客户端去访问另一个地址。这种方式涉及到客户端的重定向,浏览器地址栏会显示新的URL。适用于跨应用或者不同服务器间的资源跳转。 #### 99. JSP内置对象及其作用 - **request**:封装了客户端发送的HTTP请求信息,包括请求参数等。 - **response**:封装了服务器对客户端的HTTP响应信息。 - **pageContext**:提供了访问其他JSP内置对象的方法,例如`request`、`response`等。 - **session**:用于存储特定用户的会话数据。 - **application**:代表整个Web应用的上下文,可以存储全局变量。 - **out**:输出流对象,用于向客户端输出数据。 - **config**:包含Web应用的配置信息,通常用于获取初始化参数。 - **page**:表示当前JSP页面的引用,相当于Java中的`this`关键字。 - **exception**:封装了页面抛出的异常信息,主要用于错误处理。 通过以上解析可以看出,JavaWeb领域涵盖了从底层HTTP协议处理到高级应用架构设计的各个方面。掌握这些知识点对于理解和开发JavaWeb应用至关重要。
剩余33页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助