配置JDK
确保JDK已经正确部署 注意tomcat版本不同可能需要对应的JDK版本 下文有提到
配置tomcat(Servlet容器)
1. 安装 Apache Tomcat
Apache Tomcat® - Apache Tomcat 10 Software Downloads 下载最新版tomcat
解压到/opt文件夹下
2. 配置环境变量
nano ~/.bashrc
在最后加上
export CATALINA_HOME=/opt/tomcat export PATH=$PATH:$CATALINA_HOME/bin
然后退出编辑(别忘了保存修改)
source ~/.bashrc
使更改生效
3. 启动 Tomcat
进入 Tomcat 的 bin 目录并启动:
cd $CATALINA_HOME/bin ./startup.sh
4. 访问 Tomcat
打开浏览器,访问 http://localhost:8080,应该能看到 Tomcat 的欢迎页面
此时出现页面无法访问 出现404 not found错误
查看日志
tail -f $CATALINA_HOME/logs/catalina.out
发现问题是Tomcat 启动时出现了--add-opens 参数不被识别的问题,因为这个参数在 Java 9 及以上版本中有效,而我当前使用的是 Java 8
切换Java 11后 重新再次启动tomcat 可以访问
5. 简单部署jsp应用程序
创建一个新的应用文件夹:
mkdir /opt/tomcat/webapps/myapp
在 myapp 目录下创建一个简单的 index.jsp 文件:
nano /opt/tomcat/webapps/myapp/index.jsp
在jsp文件中编写代码:
<html>
<body>
<h1>Hello, JSP on Deepin!</h1>
<p>
Current time: <%= new java.util.Date() %>
</p>
</body>
</html>
使新部署的应用生效,重启 Tomcat:
/opt/tomcat/bin/shutdown.sh /opt/tomcat/bin/startup.sh
在浏览器中访问 http://localhost:8080/myapp JSP 页面成功显示
6. 在idea中开发jsp文件的步骤
创建Jakarta EE项目
在项目中的 src/main/webapp/index.jsp 文件中编写
<html>
<head>
<title>Hello JSP</title>
</head>
<body>
<h1>Hello, JSP World!</h1>
</body>
</html>
运行且访问
创建一个简单的项目
新建Jakarta项目 选择Webapplication 选择配置好的Tomcat 选择合适的JDK
我选择了Java EE8 下面勾选Servlet会在pom.xml中自动配置好依赖
已经自动配置好适合Java EE 8 的javax.servlet
继续在pom.xml中配置Maven WAR插件 用于打包和部署
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
而这里已经在创建项目时自动配置好了
在 src/main/webapp/WEB-INF/web.xml中添加配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.hkx.helloservlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
然后就可以编译项目 配置好Tomcat以后运行
运行结果如图