配置Tomcat
打开idea,新建项目
安装Tomcat插件
点击编辑配置
图中各选项含义如下:
- 名称(N):为当前 Tomcat 配置命名,便于区分不同配置(如 “Tomcat1”)。
- Tomcat server:指定 Tomcat 服务器的安装路径(如 “Apache Tomcat/9.0.105”),点击 “Configure...” 可更改路径。
- Catalina base:Tomcat 的基础目录,包含配置、日志等文件,通常自动生成,也可手动指定。
- Deployment directory:项目部署目录,Tomcat 从此处读取 Web 应用文件(如项目的
src/main/webapp)。- Use classpath of module:选择项目模块,确保 Tomcat 能找到对应模块的类文件(如 “untitled2”)。
- Context path:应用的上下文路径,浏览器访问时的路径前缀(如
/untitled2,对应http://localhost:8080/untitled2/...)。- Server port:Tomcat 监听的 HTTP 端口(默认
8080,可修改避免冲突)。- SSL port:用于 HTTPS 通信的端口,若无 HTTPS 需求可留空。
- Admin port:Tomcat 管理端口(默认
8005,用于接收管理命令如shutdown)。- VM options:设置 JVM 启动选项(如内存大小
-XX:MaxHeapSize=512m),按需配置。- Environment variables:配置 Tomcat 运行时的环境变量。
- Extra JVM classpath:添加额外的 JVM 类路径(用分号分隔),项目依赖通常由构建工具管理,此处较少用。
- 执行前(B):配置启动 Tomcat 前的操作(如图中 “构建”,表示先构建项目再启动 Tomcat)。
点击运行
这样就成功了
web.xml文件会报错
将web.xml中的内容替换为以下代码
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.***/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
打开设置中的这个界面,点击加号
输入以下链接
http://java.sun.***/dtd/web-app_2_3.dtd
然后报错就消失了
一个示例
在 pom.xml 中添加以下内容(位于 <dependencies> 标签内)
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope> <!-- 表示依赖由 Tomcat 提供,无需打包 -->
</dependency>
点击“重新加载所有Maven项目”
创建HelloServlet.java
src/main/java/***/example/HelloServlet.java
输入以下代码
package ***.example;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
// 使用注解声明 Servlet 映射的 URL(Servlet 3.0+ 支持)
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
// 获取前端传递的参数(如JSP表单中的username)
String username = req.getParameter("username");
String wel***eMsg = (username != null && !username.isEmpty())
? "你好," + username + "!"
: "Hello, Tomcat!";
out.println("<html><body>");
out.println("<h1>" + wel***eMsg + "</h1>");
out.println("<p>当前时间戳:" + System.currentTimeMillis() + "</p>");
out.println("<p><a href='index.html'>返回首页</a></p>"); // 增加返回链接
out.println("</body></html>");
}
}
index.html
src/main/webapp/index.html
<!DOCTYPE html>
<html lang="zh-***">
<head>
<meta charset="UTF-8">
<title>Tomcat 前端示例</title>
<link rel="stylesheet" href="css/style.css"> <!-- 引用CSS -->
</head>
<body>
<h1>欢迎使用 Tomcat!</h1>
<p>这是一个静态HTML页面,演示Tomcat对静态资源的处理。</p>
<!-- 链接到之前的HelloServlet -->
<a href="hello" class="btn">点击访问动态Servlet</a>
<!-- 链接到JSP页面 -->
<a href="index.jsp" class="btn">点击访问JSP页面</a>
</body>
</html>
index.jsp
src/main/webapp/index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.text.SimpleDateFormat" %> <!-- 添加SimpleDateFormat导入 -->
<html>
<head>
<title>JSP 动态页面</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>JSP 动态内容演示</h1>
<p>当前服务器时间:<%= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new java.util.Date()) %></p> <!-- 修改时间格式化方式 -->
<p>JSP 版本:<%= application.getServerInfo() %></p>
<!-- 调用Servlet传递参数(可选) -->
<form action="hello" method="get">
<input type="text" name="username" placeholder="输入你的名字">
<button type="submit" class="btn">提交给Servlet</button>
</form>
</body>
</html>
style.css
src/main/webapp/css/style.css
/* src/main/webapp/css/style.css */
body {
font-family: "微软雅黑", sans-serif;
max-width: 800px;
margin: 50px auto;
padding: 20px;
}
h1 {
color: #2c3e50;
border-bottom: 2px solid #3498db;
padding-bottom: 10px;
}
p {
color: #7f8c8d;
line-height: 1.6;
}
.btn {
display: inline-block;
margin: 20px 10px 0 0;
padding: 10px 20px;
background-color: #3498db;
color: white;
text-decoration: none;
border-radius: 5px;
transition: background-color 0.3s;
}
.btn:hover {
background-color: #2980b9;
}
运行结果
要让 Tomcat 启动时默认访问 JSP 文件
修改 web.xml 文件
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.***/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Archetype Created Web Application</display-name>
<wel***e-file-list>
<wel***e-file>index.jsp</wel***e-file> <!-- 优先加载 index.jsp -->
<wel***e-file>index.html</wel***e-file> <!-- 若 index.jsp 不存在,再加载 index.html -->
</wel***e-file-list>
</web-app>