1 Tomcat服务器的下载与配置
1.1 下载解压
Tomcat官方下载地址:https://tomcat.apache.org/download-90.cgi
MAC选择tar,Windows选择64位zip
解压到任意文件夹(记住路径)
1.2 启动与关闭
MAC需要在bin目录下赋予sh文件执行权,Windows不用
sudo chmod 755 *.sh
启动服务器
MAC需使用终端进入bin目录,然后命令执行,Windows直接点击startup.bat就行
浏览器进入http://localhost:8080/,出现以下界面即为成功
服务器关闭同理,Windows点击shutdown.bat
2 IDEA配置使用Tomcat服务器
每次都用命令行启动实在很麻烦,可使用Tomcat服务器绑定简化流程。
2.1新建Web模块
名字自己取,其他默认就OK。
2.2 添加Tomcat到编译环境
添加Tomcat本地服务器,配置中选择解压的路径。
2.3 编写servlet文件
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.ServletException;
import javax.xml.transform.sax.SAXResult;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
public class Test extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.通过请求对象,读取请求行中的url信息
String url = req.getRequestURL().toString();
//2.通过请求对象,读取请求行中的method属性
String method = req.getMethod();
//3.读取uri属性,资源文件位置,请求行中并没有,其实是从url中截取的字符串,用于服务器定位资源
String uri = req.getRequestURI();
//4.读取请求头中所有请求参数名(枚举类型)
Enumeration paramNames = req.getParameterNames();
String paramName = (String)paramNames.nextElement();
//5.读取请求头或请求体中请求参数的值,GET在请求头中,默认UTF-8解码,POST在请求体中,默认ISO解码,不支持中文
//req.setCharacterEncoding("utf-8");POST中文需要
String Value = req.getParameter(paramName);
String loc = "http://www.baidu.com?name=Mike";
//1.设置响应头location属性,浏览器收到响应包后若发现有location会自动向location发送请求。请求地址,请求方式,请求参数
resp.sendRedirect(loc);
String result = "Hello<br/>World<br/>早安!";
//2.设置响应头ContentType,默认为text
resp.setContentType("text/html;charset=utf-8");
//3.通过响应对象,向Tomcat索要输出流
PrintWriter out = resp.getWriter();
//4.通过输出流,将执行结果以二进制形式写入到响应体
//write只能输出字符串,ASCII码,数字要用print或转成字符串
out.write(result);
}
}
2.4 更改web.xml文件配置
通知服务器调用servlet文件
<?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>Test</servlet-name>
<servlet-class>com.bottle.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/one</url-pattern>
</servlet-mapping>
</web-app>