“我来了。根据要求,我现在将告诉您如何编写您的第一个 Web 服务器。”
“网络服务器就像一个操作系统。它本身并没有价值。它之所以有价值,是因为你可以在它上面运行特殊的网络程序(servlets)。 ”
“正是这些 servlet 处理来自用户的请求。”
“他们如何处理请求?我如何在网络服务器中运行我的程序?”
“要编写自己的 servlet,您的类必须继承 HttpServlet 类。然后实现其 doGet() 和 doPost() 方法。当请求来自用户时,Web 服务器创建您的 servlet 对象之一并调用其 doGet()方法。或者它调用 doPost() 方法,具体取决于来自浏览器的请求类型。”
“但是我的程序是如何进入网络服务器的呢?”
“很简单,你写好程序,编译好,放到你安装Tomcat目录下的一个特殊文件夹里。”
“Servlet 是一个庞大而有趣但独立的主题。所以,我今天不会向您解释它。我会告诉您一些其他的事情。”
“JSP 是一种非常有趣的 servlet 类型。它们有点像 PHP。”
“让我们使用 JSP 编写并运行最简单的 Web 程序。”
“开始吧!我准备好了。”
“那我们开始吧。”
第 1 步:创建一个新的 Web 项目

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

“完毕。”
第 3 步:为其命名项目

“完毕。”
“你应该看到一个新的空项目。”
“几乎是空的。它会包含一个名为 index.jsp 的文件。找到它。”
第 4 步:找到 JSP 文件

“找到了。”
“太好了。这是我们可以编写 servlet 代码的地方。”
“但是让我们先稍微配置一下 IntelliJ IDEA。”
“您可以直接从 IntelliJ IDEA 在 Tomcat 中运行 servlet。如果需要,还可以调试它们。基本上,它超级方便而且很棒。到时候您会很感激的。”
“我相信你。那么接下来呢?”
“我们将‘教’IntelliJ IDEA 如何在 Tomcat 中运行我们的 Web 模块(我们的应用程序)。”
第 5 步:在菜单中选择“编辑配置”

“完毕。”
第 6 步:通过单击加号创建新配置

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

“在名称字段中为配置指定一个名称,该名称被标记为红色。”
“Tomcat 将在其上启动 servlet 的端口以绿色指示。”
“我们还需要告诉 IntelliJ IDEA Tomcat 所在的位置。单击 Configure 按钮……”
步骤 8:创建运行配置

“现在需要选择Tomcat所在的文件夹:”
第 9 步:指定 Tomcat 的位置



“完毕。”
“你应该得到这样的东西:”
第 10 步:结果配置

“现在我们需要将我们的项目连接到 Tomcat。”
有太多事情要做。我有这么详细的说明真是太好了。”
“你打赌!我为我的朋友试。”
“现在按下 Fix 按钮,IDEA 将自行完成所有操作。”
第十一步:IDEA连接项目和Tomcat

“完毕。”
“太好了,再提一句,估计8080端口已经被占用了,毕竟Tomcat刚安装就开始运行了。”
“IntelliJ IDEA 可以将 servlet 添加到正在运行的项目中,但为了简单起见,目前它每次都会启动一个新的 Tomcat 服务器。”
“那么,我们要运行几个 Tomcats 吗?”
“是的。而且每个都需要自己的端口。所以,让我们在项目设置中将端口 8080 更改为端口 8888。”
“四个八。我喜欢。”
第 12 步:将端口更改为 8888

“完毕。”
“太好了。我们完成了设置。”
“下一个是什么?”
“现在让我们稍微更改一下 index.jsp 文件”
“在那里写点东西,例如,«Power to crustaceans!»”
第 13 步:更改 index.jsp

“不,我宁愿写《机器人的力量!》”
“太好了。现在只剩下一点点要做了。”
第 14 步:运行 servlet 和 Tomcat

“Tomcat 日志和堆栈跟踪应该是可见的。日志应该没有错误。”
“像这样的东西:”
第 15 步 - Tomcat 日志

“与此同时,IDEA 应该打开一个浏览器,其中包含您的 servlet 的 URL。”
“你应该得到这样的东西:”
第 16 步:更改 index.jsp

“是的。这就是我得到的。酷!”
“现在在浏览器中输入以下 URL:”
http://localhost:8888/index.jsp |
“没有改变。”
“别这么说。”
第 17 步:更改 index.jsp

“现在浏览器显示您在 IntelliJ IDEA 中看到的 index.jsp 文件。”
“我换的那个?”
“是的。”
“但是如果在浏览器的请求中只指定了域,而不是请求的其余部分,那么将调用默认处理程序。在我们的例子中,这是 index.jsp。”
“假设您有三个文件:index.jsp、apple.jsp、google.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:”
<%@ 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页面。”
“非常感谢你,比拉博。”
“谢谢你,我的朋友!”
GO TO FULL VERSION