JavaWeb与WebService面试题解析:Servlet、CGI与转发重定向

需积分: 5 0 下载量 7 浏览量 更新于2024-07-09 收藏 985KB PDF 举报
"Java面试题全集(中) - CSDN博客.pdf" 本文档主要涵盖了JavaWeb和WebService领域的面试题目,旨在帮助求职者准备相关面试。以下是对几个关键知识点的详细解释: ### 1. Servlet与CGI的区别 Servlet是Java编程语言中用于Web应用程序的一种服务器端组件,而CGI(Common Gateway Interface)是一种早期的Web服务器与外部应用程序交互的标准协议。Servlet的优势在于它们是多线程的,一个Servlet实例可以服务于多个请求,且常驻内存,因此性能较高。相比之下,CGI对每个请求都会创建一个新的进程,处理完请求后立即销毁,导致更高的资源消耗。 ### 2. Servlet接口中的方法 Servlet接口定义了几个关键的方法,它们与Servlet的生命周期紧密相关: - `void init(ServletConfig config) throws ServletException`: 初始化方法,用于设置Servlet的初始状态,仅在Servlet首次加载时调用。 - `void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException`: 服务方法,当收到客户端请求时调用,负责调度请求到相应的doGet或doPost等方法。 - `void destroy()`: 销毁方法,当Servlet实例不再需要或者Web容器关闭时调用,用于清理资源。 - `String getServletInfo()`: 获取Servlet的描述信息。 - `ServletConfig getServletConfig()`: 返回Servlet的配置对象,用于获取Servlet的配置参数。 ### 3. 转发(forward)与重定向(redirect) - **转发(Forward)**:发生在服务器端,Web容器将一个请求从一个资源“转发”到另一个资源。客户端浏览器的URL不会改变,因为实际的请求从未离开服务器。转发效率较高,但无法实现跨域操作。 - **重定向(Redirect)**:客户端接收到服务器返回的HTTP状态码302或303,然后浏览器重新发起一个新的HTTP请求到指定的新URL。浏览器地址栏会显示新的URL,重定向可能涉及多次网络往返,但支持跨域操作。 ### 4. JavaWeb架构 在JavaWeb开发中,通常会结合Servlet、JSP(JavaServer Pages)以及MVC(Model-View-Controller)模式来构建应用程序。Servlet常用于处理业务逻辑,JSP用于展示视图,而模型则封装了数据和业务逻辑。此外,Spring框架等高级框架可以进一步简化开发过程,提供更高效的控制反转(IoC)和依赖注入(DI)机制。 ### 5. WebService WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的、平台和语言无关的通信方式,允许不同系统间的应用程序进行互操作。SOAP(Simple Object Access Protocol)定义了消息格式,WSDL(Web Services Description Language)描述了服务的位置和如何调用,而UDDI(Universal Description, Discovery, and Integration)是服务发现的规范。 在面试中,了解这些基本概念和技术的细节,能体现候选人对JavaWeb和WebService的理解深度,有助于在面试中脱颖而出。