新建项目
创建普通Java项目,在项目中添加web内容,先添加web文件夹,如果进行如下步骤后,有警告需要添加工件 ,点击创建工件 ,后-应用-确认-即可

创建后在src文件夹同级会出现web文件夹

进行tomcat配置
首先需要在本地解压tomcat,建议放在盘符根目录在,文件夹名称不要含有中文

- 应用服务地址:如果是首次配置可能需要手动选择,选择本地的tomcat文件夹即可
- 可以选择是否启动后直接打开浏览器
- 可以选择打开的浏览器是哪一个,URL可以自定义可以默认
- 执行"更新"操作,是否重启,按照自己需要选择即可
- 如果有"没有为部署标记工件",按照操作进行修复即可
- 下一步会有选择应用程序上下文,可以按需填写,或只填写"/"即可
- 完成后-应用-确认
在项目中添加Servlet

在项目中进行Servlet配置,选择添加模块,确认即可
Servlet编写流程
① 创建一个类 实现 javax.servlet.Servlet 接口
② 实现接口中所有抽象方法
③ 在 service 方法中,处理请求和响应结果
④ 配置Servlet 的访问路径
配置Servlet 的访问路径方式
- web.xml 进行配置 一般进行复杂配置

①在 web.xml配置文件中完成初始化参数的设置通过<init-param>实现, 在Servlet中 读取信息;load-on-startup设置访问优先级
xml:
xml
<servlet>
<servlet-name>UserInfoServlet</servlet-name>
<servlet-class>cn.wolfcode.demo.UserInfoServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>java</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
- 通过注解进行配置 只配置访问路径
@WebServlet("/访问路径")
实现Servlet
- 继承
Servlet - 继承
GenericServlet - 继承
HttpServlet(常用)
操作中一般只关注service方法,进行重写即可
简单实现一个html页面用于获取表单数据

代码:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户新增</title>
</head>
<body>
<form action="/info" method="post">
<table>
<tr>
<td>姓名:</td>
<td>
<input type="text" name="name">
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="text" name="password">
</td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="1">男
<input type="radio" name="sex" value="2">女
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="hobby" value="java">java
<input type="checkbox" name="hobby" value="html">html
<input type="checkbox" name="hobby" value="css">css
<input type="checkbox" name="hobby" value="mysql">mysql
</td>
</tr>
<tr>
<td>
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
</body>
</html>
Servlet实现
java
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Map;
public class UserInfoServlet extends HttpServlet {
//通过web.xml文件获取到的初始值,可以这样获取到
@Override
public void init() throws ServletException {
ServletConfig sc = getServletConfig();
String name = sc.getInitParameter("name");
System.out.println("name = " + name);
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
//拿到的是字符串,需要其他类型要自己转换
String name = req.getParameter("name");
System.out.println("name = " + name);
String password = req.getParameter("password");
System.out.println("password = " + password);
String sex = req.getParameter("sex");
System.out.println("sex = " + sex);
String[] hobbies = req.getParameterValues("hobby");
System.out.println("Arrays.toString(hobbies) = " + Arrays.toString(hobbies));
System.out.println("====================");
//获取所有数据
Map<String, String[]> parameterMap = req.getParameterMap();
parameterMap.forEach((k,v)->System.out.println(k+"="+Arrays.toString(v)));
}
}
运行结果
