002-Servlet JSP写HTML界面(二)

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

我们接着再来看看,如何把页面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();
    }
}

Main.java
注意看这里,src/main/resources,不正是这个文件夹吗?
在这里插入图片描述
没错,我们的资源都放在这里。

网上别的文章可能是:src/main/webapp,那就要手动在main文件夹里面创建一个webapp文件夹了。

—啰嗦分割线—

好了,我们开始写页面吧!
创建文件夹templates里面创建hello.jsp文件。
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处理。

效果如下:
Hello page
OK,大家会用了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值