Servlet介绍
运行在 Web 服务器或应用服务器上的程序,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
Servlet获取参数
示例:
//AddServlet.java
package com.example.javaweb01;
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 AddServlet extends HttpServlet {
//doPost
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码,防止中文乱码
req.setCharacterEncoding("UTF-8");
String fname = req.getParameter("fname");
String priceStr = req.getParameter("price");
//参数均以字符串形式获取,需转换
Integer price = Integer.parseInt(priceStr);
String fcountStr = req.getParameter("fcount");
Integer fcount = Integer.parseInt(fcountStr);
String remark = req.getParameter("remark");
System.out.println("fname: " + fname);
System.out.println("price: " + price);
System.out.println("fcount: " + fcount);
System.out.println("remark: " + remark);
}
}
页面:
<!--add.html-->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<form action="add" method="post">
名称: <input type="text" name="fname"/>
价格: <input type="text" name="price"/>
库存: <input type="text" name="fcount"/>
备注: <input typr="text" name="remark"/>
<input type="submit" value="添加"/>
</form>
</body>
</html>
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>AddServlet</servlet-name>
<servlet-class>com.example.javaweb01.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
</web-app>
执行过程:
- 用户发送请求,
action="add" - 项目中,web.xml中找到
url-pattern /add(注意/符号) - 找
servlet-mapping(映射)中的servlet-name - 找
servlet中与servlet-mapping中一样的servlet-name - 找
servlet-class - 用户请求
method=post,执行class中的doPost
浙公网安备 33010602011771号