当前位置:网站首页>2021.8.9 note request
2021.8.9 note request
2022-07-27 18:33:00 【It's food, not shellfish】
request
principle


Inheritance system

Get request line data _ Method
One of the most important is 2. Get virtual directories and 5. Get request URI
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getMethod();
System.out.println(method);
String contextPath = request.getContextPath();
System.out.println(contextPath);
String servletPath = request.getServletPath();
System.out.println(servletPath);
String queryString = request.getQueryString();
System.out.println(queryString);
String requestURI = request.getRequestURI();
StringBuffer requestURL = request.getRequestURL();
System.out.println(requestURI);
System.out.println(requestURL);
String remoteAddr = request.getRemoteAddr();
System.out.println(remoteAddr);
String protocol = request.getProtocol();
System.out.println(protocol);
}
Get request header data
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Enumeration<String> headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
String value = request.getHeader(name);
System.out.println(name + "-----" + value);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String agent = request.getHeader("user-agent");
if(agent.contains("Firefox")) {
System.out.println(" Here comes Firefox ...");
}else if(agent.contains("Chrome")) {
System.out.println(" Here comes Google ");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String referer = request.getHeader("referer");
if(referer != null) {
if(referer.contains("/day14")) {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(" Play ");
}else {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(" Do not give ");
}
}
}
By creating two tomcat And modify the virtual directory , A no /day14, One can verify
Get request body data

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/demo4" method="post">
<input name="username">
<input type="submit" value=" Submit ">
</form>
</body>
</html>
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedReader;
import java.io.IOException;
@WebServlet("/requestDemo5")
public class RequestDemo5 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
BufferedReader reader = request.getReader();
String str = null;
while((str = reader.readLine()) != null) {
System.out.println(str);
}
}
}
Get request parameters in general

get and post You can use
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;
@WebServlet("/requestDemo6")
public class RequestDemo6 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
System.out.println("get");
System.out.println(username);
String[] hobbies = request.getParameterValues("hobby");
for (String hobby : hobbies) {
System.out.println(hobby);
}
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
String name = parameterNames.nextElement();
String value = request.getParameter(name);
System.out.println(value);
}
System.out.println("----------");
Map<String, String[]> parameterMap = request.getParameterMap();
Set<String> strings = parameterMap.keySet();
for (String name : strings) {
System.out.println(name);
String[] value = parameterMap.get(name);
for (String va : value) {
System.out.println(va);
}
System.out.println("------------");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
Chinese garbled
post stay input When inputting Chinese , When outputting the corresponding input data, it will be garbled , The solution is request.setCharacterEncoding(“utf-8”);
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
System.out.println(username);
}
Request forwarding

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("demo8 Was interviewed ...");
request.getRequestDispatcher("/requestDemo9").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("demo9 Was interviewed ...");
}
Shared data ( Domain object )


@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("msg","hello");
request.getRequestDispatcher("/requestDemo9").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Object name = request.getAttribute("msg");
System.out.println(name);
System.out.println("demo9 Was interviewed ...");
}
getServletContext
I didn't say that
边栏推荐
- C杂讲 链表初讲
- Super practical! After reading the kubernetes study notes hidden by Alibaba P9, call NB directly
- 2021.7.12笔记 内外连接
- multi-table query
- Collection! 0 basic open source data visualization platform flyfish large screen development guide
- 修改input中placeholder样式
- 2021.7.31 note view
- "Who is Huawei" documentary film series landing on BBC: exposing a large number of Ren Zhengfei's unknown experience
- Wechat applet wxacode.getunlimited generates applet code
- 动态链表4单向循环链表(LoopSingle实现)
猜你喜欢
![[mit 6.s081] LEC 9: interrupts notes](/img/b6/a8d39aa7ede4eb1c5a74e6d15b3b1c.png)
[mit 6.s081] LEC 9: interrupts notes

Redis网红高频面试题三连:缓存穿透?缓存击穿?缓存雪崩?

Common commands of database 1

Nowcoder (5 choices)

深度学习-论文阅读:动作结构性图卷积网络AS-GCN

uniapp H5跨域问题

Super practical! After reading the kubernetes study notes hidden by Alibaba P9, call NB directly

深度学习:行为识别综述

Deep learning - VIDEO behavior recognition: paper reading - two stream revolutionary networks for action recognition in videos

数据库的常用命令2
随机推荐
Software installation related
[MIT 6.S081] Lab 10: mmap
Guoju spent $1.8 billion to acquire its competitor KEMET, and the transaction may be completed in the second half of next year
力压谷歌、英伟达!阿里含光800芯片再获权威测试世界第一
发布自己的npm组件库
[MIT 6.S081] Lec 8: Page faults 笔记
2021.7.13笔记 子查询
The end of another era!
2021.7.19笔记 DML
RSA encryption and decryption (compatible with wechat applet environment)
[mit 6.s081] LEC 10: multiprocessors and locking notes
Press Google and NVIDIA! Alibaba optical 800 chip won the world's first authoritative test again
LootCode动态数组练习(724,118,766)
Deep learning - VIDEO behavior recognition: paper reading - two stream revolutionary networks for action recognition in videos
深度学习-视频行为识别:论文阅读——双流网络(Two-stream convolutional networks for action recognition in videos)
MySQL学习 Day2 排序查询 / 聚合函数 /分组查询 /分页查询 /约束/多表之间的关系
Solution to invalid SQL Server connection to server
[mit 6.s081] LEC 8: page faults notes
Binary tree concept
2021.7.31笔记 视图