在学习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应用程序,请遵循以下步骤:
- 编译Java源代码并将其打包成WAR(Web Application Archive,Web应用程序归档)文件。WAR文件蕴含Web应用程序的所有组件,如Servlet、JSP、HTML、CSS、JavaScript、图片等。
- 将WAR文件部署到Servlet容器(如Tomcat)中。部署办法有多种,如将WAR文件复制到容器的
webapps
目录下,或应用容器的治理界面进行部署。 - 启动容器,拜访Web应用程序。例如,如果部署到本地Tomcat服务器,URL可能相似于
http://localhost:8080/your-webapp/
。
8.3.5. 示例:应用Tomcat部署Java Web应用程序
以下是一个简略的Java Web应用程序示例,它蕴含一个Servlet和一个JSP页面。咱们将应用Tomcat来部署这个应用程序。
- 创立一个名为
HelloWorld
的Web应用程序目录构造:
HelloWorld/
|-- WEB-INF/
| |-- classes/
| | |-- HelloWorldServlet.class
| |-- lib/
| |-- web.xml
|-- index.jsp
- 编写
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();
}
}
- 编译
HelloWorldServlet
类,并将生成的.class
文件放入WEB-INF/classes/
目录下。 - 编写
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>
- 编写
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>
- 将整个
HelloWorld
目录打包成WAR文件。你能够应用命令行或IDE实现此操作。例如,在命令行中,能够进入HelloWorld
目录并运行以下命令:
jar cvf HelloWorld.war *
- 将生成的
HelloWorld.war
文件部署到Tomcat的webapps
目录下。 - 启动Tomcat服务器。
- 在浏览器中拜访
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
发表回复