我们接着再来看看,如何把页面HTML内容写在单独的文件里面吧!
我们这一次可以不用新建新项目,接着上次的项目一起。
说个题外话:一定要敲代码!敲代码真的很重要!!!
OK,我们开始吧!
先来看看目录结构:
如果你觉得这里说的太啰嗦了,你都会,就往下翻,翻到下一个“—啰嗦分割线—”标题在开始读哦!

再来看看Main的代码:
public class Main {
public static void main(String[] args) throws LifecycleException {
Tomcat tomcat = new Tomcat();
tomcat.setPort(Integer.getInteger("port", 8080));
tomcat.getConnector();
// 创建webapp:
Context ctx = tomcat.addWebapp("", new File("src/main/resources").getAbsolutePath());
WebResourceRoot resources = new StandardRoot(ctx);
resources.addPreResources(
new DirResourceSet(resources, "/WEB-INF/classes", new File("target/classes").getAbsolutePath(), "/"));
ctx.setResources(resources);
tomcat.start();
tomcat.getServer().await();
}
}

注意看这里,src/main/resources,不正是这个文件夹吗?

没错,我们的资源都放在这里。
网上别的文章可能是:src/main/webapp,那就要手动在main文件夹里面创建一个webapp文件夹了。
—啰嗦分割线—
好了,我们开始写页面吧!
创建文件夹templates里面创建hello.jsp文件。

写入:
<!DOCTYPE html>
<html>
<head>
<title>Hello page</title>
</head>
<body>
<% String name = request.getParameter("name");
name = name == null ? "world" : name;
%>
<h1>Hello, <%= name%></h1>
</body>
</html>
仔细看:<% String name = request.getParameter("name"); %> 这不是java代码吗???
仔细看:<%= name%> 这……不是name变量吗?
没错,jsp的主要威力就在这里。
jsp中,<%= %>代表变量显示,<% %>代表java代码。
再创建Java class:HelloPageServlet,写入:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = "/hellopage")
public class HelloPageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/templates/hello.jsp").forward(req, resp);
}
}
可以看到,我们这里用到了上一篇博客提到的“转发”,把/hellopage交给了hello.jsp处理。
效果如下:

OK,大家会用了吗?
本文继续上一节的内容,讲解如何将HTML界面代码写入独立文件中。强调了敲代码的重要性,并展示了项目的目录结构。通过创建JSP文件,利用`<%= %>`和`<% %>`来展示变量和运行Java代码。还提到了转发概念,通过Java类与JSP配合实现页面展示。
787

被折叠的 条评论
为什么被折叠?



