文章目录
- Tomcat是什么?
- 下载启动Tomcat
- 使用maven创建java web项目
- 集成本地Tomcat
- 例子
- 注意事项
- 启动tomcat控制台乱码
- 改端口
Tomcat是什么?
Apache Tomcat,通常简称为Tomcat,是一个开源的Web服务器和Servlet容器。Tomcat主要用来运行Java Servlets和JavaServer Pages (JSP) 技术,允许开发者用Java编写的Web应用程序在Web服务器上运行。
以下是Tomcat的一些关键特性和用途:
-
Servlet容器:Tomcat支持Servlet API,用于处理和响应客户端请求,尤其是HTTP请求。
-
JSP引擎:Tomcat支持JSP技术,这是一种简化的方式来创建动态网页。
-
Web服务器:Tomcat可以作为一个独立的Web服务器,处理静态和动态内容。
下载启动Tomcat
官网网址:Tomcat下载
第一步:下载
第二步:安装成功
第三步:启动与停止
启动:
停止:
- ctrl+c
- bin\shutdown.bat
使用maven创建java web项目
集成本地Tomcat
将刚才本地安装好的Tomcat集成到IDEA中,完成项目的部署
启动项目:
例子
<!-- web.xml -->
<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_3_1.xsd"
version="3.1">
<!--当客户端请求/hello路径时,由com.example.HelloServlet类来处理这个请求。-->
<servlet>
<!-- servlet的名称 名字任意-->
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.hac.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- servlet的名称 要和上面的名称一致-->
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
// HelloServlet.java
package com.hac;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
request.setAttribute("name", name);
// 将请求和响应转发到hello.jsp页面
request.getRequestDispatcher("hello.jsp").forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
<!-- index.jsp -->
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h2>Enter your name:</h2>
<form action="hello" method="post">
<input type="text" name="name">
<input type="submit" value="Submit">
</form>
</body>
</html>
<!-- hello.jsp -->
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h2>Hello, ${name}!</h2>
</body>
</html>
部署项目,效果
好的,让我再详细一步一步解释:
request.getRequestDispatcher("hello.jsp").forward(request, response);
这一行代码在Servlet中用于将当前请求和响应转发到hello.jsp
页面进行处理和显示。为了帮助理解,让我们分解这个过程并解释每个部分的作用。
-
获取
RequestDispatcher
对象request.getRequestDispatcher("hello.jsp")
request
:这是HttpServletRequest
对象,表示从客户端发送到服务器的HTTP请求。getRequestDispatcher("hello.jsp")
:这个方法从request
对象中获取一个RequestDispatcher
对象,用于将请求转发到指定的资源(这里是hello.jsp
)。"hello.jsp"
:这是目标资源的路径。在这个例子中,它指向Web应用的根目录下的hello.jsp
文件。
RequestDispatcher
对象负责将请求和响应转发到指定的资源。 -
转发请求和响应
request.getRequestDispatcher("hello.jsp").forward(request, response);
forward(request, response)
:这是RequestDispatcher
对象的方法,负责将请求和响应对象转发到另一个资源。request
:当前的请求对象,包含从客户端发送过来的所有信息(如请求参数)。response
:当前的响应对象,用于向客户端发送响应。
当调用
forward
方法时,当前Servlet的处理过程会停止,控制权会转交给hello.jsp
页面。服务器将继续处理hello.jsp
页面,并生成响应内容返回给客户端。
注意事项
启动tomcat控制台乱码
启动的过程中,控制台出现中文乱码,需要修改conf/logging.prooperties