1. Four general methods for obtaining request data: getParameter
1.1 Get the parameter value through getParamter (key name). Get and post request are common
package cn.sc;
import javax.servlet.ServletException;
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.util.Enumeration;
import java.util.Map;
import java.util.Set;
@WebServlet( "/test3")
public class test3 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//通过getParamter(键名)来获取参数值 get和post请求通用
String username = request.getParameter("username");
String hobby = request.getParameter("hobby");
System.out.println("爱好是:"+hobby);
System.out.println(username);
}
JavaWeb code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="test3" method="post">
用户名<input type="text" placeholder="请输入用户名" name="username"/><br/>
密码<input type="password" placeholder="请输入密码" name="pwd">
<input type="checkbox" value="cll" name="hobby">123456
<input type="checkbox" value="ckl" name="hobby">123457
<input type="submit" value="登陆"/>
</form>
</body>
</html>
The result is
1.2 get all the parameters by key name
System.out.println("-------------通过键名获取所有的参数--------------");
// request.getParameterValues 适用于 一个键名 有多个参数
String[] hobies = request.getParameterValues("hoby");
for (String hoby1 : hobies) {
System.out.println(hoby1);
}
The result is
1.3request.getParamyterNames() Get all the keys to access the servlet
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()){
String name = parameterNames.nextElement();
// System.out.println(name);
String value = request.getParameter(name);
System.out.println(name+"+++"+value);
}
The result is
1.4 enumerate all the key names and values through the map collection
Map<String, String[]> pm = request.getParameterMap();
Set<String> keySet = pm.keySet();
for (String key : keySet) {
String[] values = pm.get(key);
for (String value : values) {
System.out.println(key+"----"+value);
}
}
The result is
2 Solve the Chinese garbled problem of request to obtain parameters
In the 1.1 method, if you enter Chinese in the username text box, garbled characters will appear. For example
We can also solve these Chinese garbled codes by adding the code in the red box in the position below.
3. Request forwarding
It is a way to jump resources inside the server. For example, in the development of Century, we need some different servlets. Each person completes different functions. When we access aservlet to achieve some functions, we need to jump to a new bservlet. This is the resource jump.
for example
package cn.sc;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/test1")
public class test1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("我的貂,蝉在哪里");
//1.获取request的请求转发器,内部参数为转发的路径
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/test2");
//2.调用转发器对象,传入参数request和response
requestDispatcher.forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}
Jump to test2
package cn.sc;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/test2")
public class test2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("千军万马一将在,探囊取物有何难");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}
The result is