获取请求方式
System.out.println(req.getMethod());
获取servlet路径
System.out.println(req.getServletPath());
获取get方式的请求参数
System.out.println(req.getQueryString());
获取请求url
System.out.println(req.getRequestURL());
获取协议及版本号
System.out.println(req.getProtocol());
根据请求头名称获取请求头的值
String value = req.getHeader(name)
获取所有的请求头名称
Enumeration<String> names = req.getHeaderNames();
//获取所有请求头信息并打印
Enumeration<String> names = req.getHeaderNames();
while(names.hasMoreElements()){
String name = names.nextElement();
System.out.println(name+"--"+req.getHeader(name));
}
request获取请求体数据
获取字节输入流
BufferedReader reader = req.getReader();
获取字符输入流
ServletInputStream inputStream = req.getInputStream();
servlet提供了通用的方法便于自己获取请求参数。
根据参数名获取参数值
String value = req.getParameter(name); //获取一个参数值
String[] values = req.getParameterValues(name); //参数值有多个 a=1&a=2
获取所有的请求参数名称
Enumeration names = req.getParameterNames();
获取所有参数的map集合
Map<String, String[]> map = req.getParameterMap();
有时候请求数据中有中文服务器解析会乱码,可以改变流的解码方式
req.setCharacterEncoding(“utf-8”);
@WebServlet(urlPatterns = {"/demo1"})
public class Demo extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse resp){
System.out.println("demo1接收到get请求");
RequestDispatcher requestDispatcher = req.getRequestDispatcher("/demo2");
requestDispatcher.forward(req,resp);
}
}
设置响应状态码
resp.setStatus(int x);
设置响应头
resp.setHeader(key,valve);
设置编码
//请求消息解码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); //响应消息编码方式
response.setHeader("content-type","text/html;charset=utf-8"); //告诉浏览器使用何种方式解码响应数据
进行重定向(浏览器可见)
response.setHeader(“location”,“http://www.baidu.com”);
使用字符输出流
//获取字符输出流
PrintWriter writer = resp.getWriter();
writer.write("客户端,你好哈哈哈");
//获取字节输出流
ServletOutputStream outputStream = resp.getOutputStream();
outputStream.write("客户端,你好哈哈哈酷酷酷酷酷酷".getBytes("utf-8"));