“我来了。根据要求,我现在将告诉您如何编写您的第一个 Web 服务器。”

“网络服务器就像一个操作系统。它本身并没有价值。它之所以有价值,是因为你可以在它上面运行特殊的网络程序(servlets)。

“正是这些 servlet 处理来自用户的请求。”

“他们如何处理请求?我如何在网络服务器中运行我的程序?”

“要编写自己的 servlet,您的类必须继承 HttpServlet 类。然后实现其 doGet() 和 doPost() 方法。当请求来自用户时,Web 服务器创建您的 servlet 对象之一并调用其 doGet()方法。或者它调用 doPost() 方法,具体取决于来自浏览器的请求类型。”

“但是我的程序是如何进入网络服务器的呢?”

“很简单,你写好程序,编译好,放到你安装Tomcat目录下的一个特殊文件夹里。”

“Servlet 是一个庞大而有趣但独立的主题。所以,我今天不会向您解释它。我会告诉您一些其他的事情。”

“JSP 是一种非常有趣的 servlet 类型。它们有点像 PHP。”

“让我们使用 JSP 编写并运行最简单的 Web 程序。”

“开始吧!我准备好了。”

“那我们开始吧。”

第 1 步:创建一个新的 Web 项目

运行一个简单的 Web 应用程序 - 1

“完毕。”

第 2 步:将模块类型设置为 Java 模块。将应用程序类型设置为Web 应用程序并指定JDK。

运行一个简单的 Web 应用程序 - 2

“完毕。”

第 3 步:为其命名项目

运行一个简单的 Web 应用程序 - 3

“完毕。”

“你应该看到一个新的空项目。”

“几乎是空的。它会包含一个名为 index.jsp 的文件。找到它。”

第 4 步:找到 JSP 文件

运行一个简单的 Web 应用程序 - 4

“找到了。”

“太好了。这是我们可以编写 servlet 代码的地方。”

“但是让我们先稍微配置一下 IntelliJ IDEA。”

“您可以直接从 IntelliJ IDEA 在 Tomcat 中运行 servlet。如果需要,还可以调试它们。基本上,它超级方便而且很棒。到时候您会很感激的。”

“我相信你。那么接下来呢?”

“我们将‘教’IntelliJ IDEA 如何在 Tomcat 中运行我们的 Web 模块(我们的应用程序)。”

第 5 步:在菜单中选择“编辑配置”

运行一个简单的 Web 应用程序 - 5

“完毕。”

第 6 步:通过单击加号创建新配置

运行一个简单的 Web 应用程序 - 6

“完毕。”

第 7 步:指示要运行的内容(Tomcat 服务器、本地)

运行一个简单的 Web 应用程序 - 7

“在名称字段中为配置指定一个名称,该名称被标记为红色。”

“Tomcat 将在其上启动 servlet 的端口以绿色指示。”

“我们还需要告诉 IntelliJ IDEA Tomcat 所在的位置。单击 Configure 按钮……”

步骤 8:创建运行配置

运行一个简单的 Web 应用程序 - 8

“现在需要选择Tomcat所在的文件夹:”

第 9 步:指定 Tomcat 的位置

运行一个简单的 Web 应用程序 - 9 运行一个简单的 Web 应用程序 - 10 运行一个简单的 Web 应用程序 - 11

“完毕。”

“你应该得到这样的东西:”

第 10 步:结果配置

运行一个简单的 Web 应用程序 - 12

“现在我们需要将我们的项目连接到 Tomcat。”

有太多事情要做。我有这么详细的说明真是太好了。”

“你打赌!我为我的朋友试。”

“现在按下 Fix 按钮,IDEA 将自行完成所有操作。”

第十一步:IDEA连接项目和Tomcat

运行一个简单的 Web 应用程序 - 13

“完毕。”

“太好了,再提一句,估计8080端口已经被占用了,毕竟Tomcat刚安装就开始运行了。”

“IntelliJ IDEA 可以将 servlet 添加到正在运行的项目中,但为了简单起见,目前它每次都会启动一个新的 Tomcat 服务器。”

“那么,我们要运行几个 Tomcats 吗?”

“是的。而且每个都需要自己的端口。所以,让我们在项目设置中将端口 8080 更改为端口 8888。”

“四个八。我喜欢。”

第 12 步:将端口更改为 8888

运行一个简单的 Web 应用程序 - 14

“完毕。”

“太好了。我们完成了设置。”

“下一个是什么?”

“现在让我们稍微更改一下 index.jsp 文件”

“在那里写点东西,例如,«Power to crustaceans!»”

第 13 步:更改 index.jsp

运行一个简单的 Web 应用程序 - 15

“不,我宁愿写《机器人的力量!》”

“太好了。现在只剩下一点点要做了。”

第 14 步:运行 servlet 和 Tomcat

运行一个简单的 Web 应用程序 - 16

“Tomcat 日志和堆栈跟踪应该是可见的。日志应该没有错误。”

“像这样的东西:”

第 15 步 - Tomcat 日志

运行一个简单的 Web 应用程序 - 17

“与此同时,IDEA 应该打开一个浏览器,其中包含您的 servlet 的 URL。”

“你应该得到这样的东西:”

第 16 步:更改 index.jsp

运行一个简单的 Web 应用程序 - 18

“是的。这就是我得到的。酷!”

“现在在浏览器中输入以下 URL:”

http://localhost:8888/index.jsp

“没有改变。”

“别这么说。”

第 17 步:更改 index.jsp

运行一个简单的 Web 应用程序 - 19

“现在浏览器显示您在 IntelliJ IDEA 中看到的 index.jsp 文件。”

“我换的那个?”

“是的。”

“但是如果在浏览器的请求中只指定了域,而不是请求的其余部分,那么将调用默认处理程序。在我们的例子中,这是 index.jsp。”

“假设您有三个文件:index.jspapple.jspgoogle.jsp。以下是工作原理:”

要求 回复
http://localhost:8888 索引.jsp
http://localhost:8888/ 索引.jsp
http://localhost:8888/index.jsp 索引.jsp
http://localhost:8888/apple.jsp 苹果.jsp
http://localhost:8888/ samsung.jsp 错误消息:未找到 Servlet
http://localhost:8888/google.jsp 谷歌.jsp
http://localhost:8888/索引 错误消息:未找到 Servlet

“我明白那个。”

“Bilaabo,长期以来你一直在说 JSP 很棒。但它们与普通的 HTML 页面非常相似。一切都完全一样。”

“嗯,不是全部。尝试将以下文本添加到 JSP:”

JSP代码
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
<title>Amigo says hi</title>
</head>
<body>
<%--This is still HTML--%>
<%
// But I can write Java code here

String s = "Power to robots!";
for(int i=0; i<10; i++)
{
 out.println(s);
 out.println("<br>");
}

%>
<%--and this is HTML again--%>
</body>
</html>

“你可以在 JSP 页面中嵌入 Java 代码,它就会运行!

“JSP 页面中的 Java 代码称为 scriptlet,包含在 <% 和 %> 标记中”

“哇哦。”

“好吧,我自己去写几个JSP页面。”

“非常感谢你,比拉博。”

“谢谢你,我的朋友!”