JSP 实验踩坑记录

JSP 全称 Java Server Pages,首次发布于1999年,最新版本3.0发布于2020年10月21日。

这门技术陈旧前后端耦合严重基于 Servlet 同步阻塞模型而高并发性能基本为零的老爷技术栈,作为本校荣获河南省本科教育线上教学优秀课程一等奖的课程的主讲内容,就这样进到了我的脑子里。

如何搭建第一个 JSP 页面

本人使用 macOS 15,安装 Tomcat 的方式是 brew install tomcat

安装完成后应该能看到 /opt/homebrew/Cellar/tomcat/版本号/ 中有 binlibexec 两个文件夹。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/opt/homebrew/Cellar/tomcat/11.0.11/
├── bin
│   └── catalina # Tomcat 可执行文件
├── libexec
│   ├── bin
│   ├── conf -> ../../../../etc/tomcat
│   ├── lib # Tomcat 所依赖的,最基本的 Servlet 和 JSP 所需要的包
│   ├── logs
│   ├── temp
│   ├── webapps # Web 项目文件的位置
│   ├── work
│   ├── BUILDING.txt
│   └── CONTRIBUTING.md
├── homebrew.mxcl.tomcat.plist
├── homebrew.tomcat.service
├── INSTALL_RECEIPT.json
├── LICENSE
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
└── sbom.spdx.json

bin 文件夹中放置的是 catalina 可执行文件,我们启动 Tomcat 时需要运行 catalina run 来调用它。而 libexec 中最重要的文件夹之一则是 webapps,这是我们放置各个 Web 应用程序的地方。

我们在 webapps 中新建一个名为 JSP-Exp 的文件夹,之后的所有操作都在这个 JSP-Exp 中完成。

在没有特殊配置的情况下,浏览器访问的 URL 的路径会直接映射到服务器部署目录下对应的 JSP 文件路径。我们将实验一所用的页面 hello.jsp 放在 JSP-Exp/1/ 中,则在成功启动 Tomcat 服务器后,访问 http://localhost:8080/JSP-Exp/1/hello.jsp 即可看到内容。

JDBC 驱动到底放在哪

一个典型的 Web 应用程序文件夹的组织结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/opt/homebrew/Cellar/tomcat/11.0.11/libexec/webapps/JSP-Exp
├── WEB-INF
│ ├── classes
│ └── lib
├── META-INF
│   └── context.xml
├── 1
│   └── hello.jsp
├── 2
│   ├── vote
│   ├── bg.jpg
│   ├── forward.jsp
│   ├── gray-vote.jsp
│   ├── index.jsp
│   ├── PAIMON.png
│   └── res.jsp
├── 3
│   ├── login.jsp
│   ├── main.jsp
│   ├── register.jsp
│   ├── register1.jsp
│   ├── shoppingCart.jsp
│   └── webvisit.jsp
├── 4
│   ├── accessMySQL.jsp
│   ├── input.jsp
│   └── inputCheck.jsp
└── 5
   ├── Guess
   ├── getNumber.jsp
   └── guess.jsp

从官网下载的 mysql-connector-j-9.4.0.jar 应该放在 WEB-INF/lib/ 中,它会在 Tomcat 服务器启动时被加载。

Java Bean 的食用方式

编译后放置在对应 Web 应用程序的 WEB-INF/classes/ 中。

使用 Java Bean 时提示找不到类中的某个属性

很可能是因为在该 Bean 中没有实现对应属性的 getter 方法。也有可能是真的忘记在类中定义该属性。


JSP 实验踩坑记录
https://blog.charles-link.cn/2025/10/JSP 实验踩坑记录/
作者
Charles
发布于
2025年10月19日
许可协议