在学习Java Web开发之前,我们需要了解Web服务器和容器的概念。它们是Java Web应用程序的基础设施,为我们提供了开发、部署和运行动态Web应用的环境。

8.3.1. Web服务器

Web服务器是一种能够处理和响应客户端HTTP请求的软件。它负责处理静态内容(如HTML、CSS、JavaScript、图片等)和动态内容(如Servlet、JSP等)。常见的Web服务器有Apache HTTP Server、Nginx和Microsoft IIS。

8.3.2. 容器

在Java Web开发中,我们通常使用Servlet容器(也称为Web容器)来处理动态内容。Servlet容器是一个运行Servlet和JSP的应用服务器,它遵循Java Servlet规范,并提供了Web应用程序的运行环境。常见的Servlet容器有Tomcat、Jetty和GlassFish。

8.3.3. Web服务器与容器的关系

Web服务器和容器可以独立工作,也可以协同工作。在许多情况下,我们使用Web服务器处理静态内容,而使用容器处理动态内容。一种常见的配置是将Web服务器和容器连接在一起,使它们共同处理来自客户端的HTTP请求。例如,我们可以使用Apache HTTP Server和Tomcat一起工作,其中Apache处理静态内容,而Tomcat处理动态内容。

8.3.4. 部署Java Web应用程序

要部署Java Web应用程序,请遵循以下步骤:

  1. 编译Java源代码并将其打包成WAR(Web Application Archive,Web应用程序归档)文件。WAR文件包含Web应用程序的所有组件,如Servlet、JSP、HTML、CSS、JavaScript、图片等。
  2. 将WAR文件部署到Servlet容器(如Tomcat)中。部署方法有多种,如将WAR文件复制到容器的webapps目录下,或使用容器的管理界面进行部署。
  3. 启动容器,访问Web应用程序。例如,如果部署到本地Tomcat服务器,URL可能类似于http://localhost:8080/your-webapp/

8.3.5. 示例:使用Tomcat部署Java Web应用程序

以下是一个简单的Java Web应用程序示例,它包含一个Servlet和一个JSP页面。我们将使用Tomcat来部署这个应用程序。

  1. 创建一个名为HelloWorld的Web应用程序目录结构:
HelloWorld/
|-- WEB-INF/
|   |-- classes/
|   |   |-- HelloWorldServlet.class
|   |-- lib/
|   |-- web.xml
|-- index.jsp
  1. 编写HelloWorldServlet类:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorldServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><head><title>Hello World</title></head><body>");
        out.println("<h1>Hello World from Servlet!</h1>");
        out.println("</body></html>");
        out.close();
    }
}
  1. 编译HelloWorldServlet类,并将生成的.class文件放入WEB-INF/classes/目录下。

  2. 编写index.jsp文件:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello World</title>
</head>
<body>
    <h1>Hello World from JSP!</h1>
</body>
</html>
  1. 编写WEB-INF/web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>HelloWorldServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>
  1. 将整个HelloWorld目录打包成WAR文件。你可以使用命令行或IDE完成此操作。例如,在命令行中,可以进入HelloWorld目录并运行以下命令:
jar cvf HelloWorld.war *
  1. 将生成的HelloWorld.war文件部署到Tomcat的webapps目录下。

  2. 启动Tomcat服务器。

  3. 在浏览器中访问http://localhost:8080/HelloWorld/,你将看到Hello World from JSP!。访问http://localhost:8080/HelloWorld/hello,你将看到Hello World from Servlet!

至此,我们已经成功部署了一个简单的Java Web应用程序。在接下来的章节中,我们将学习更多关于Java Web开发的知识,如如何处理表单数据、如何管理会话和如何连接数据库等。 推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐