一、前端向后端传值
https://blog.csdn.net/s2152637/article/details/90947003
① form表单
② ajax
③href超链接
二、后端向前端传值
① ajax
② HttpServletRequest
session存值会存到cookie中,登录用此传值,退出时候需要remove掉
③Model/ModelMap/ModelandView
④httpServletResponse
response.getWriter().write()和 response.getWriter().print()方法
https://blog.csdn.net/qq_20610631/article/details/82382206
三、request和response的属性传值
https://blog.csdn.net/a859522265/article/details/7259115
测试用例:
测试过程中的输入:
注意:上面标题栏的Response 不要和response对象不是一回事相混淆了
测试代码
几种path的区别于联系:
@PostMapping("/user/login")
public String login(@RequestParam String username, @RequestParam String password, Map<String, Object> map,
HttpServletRequest request,
HttpServletResponse response,
HttpSession httpSession) throws IOException {
//获取地址
System.out.println("1>>>" + request.getContextPath());//1>>>/test
System.out.println("2>>>" + request.getServletPath());//2>>>/user/login
System.out.println("6>>>" + request.getRequestURI());//6>>>/test/user/login
System.out.println("7>>>" + request.getRequestURL());//7>>>http://localhost:8080/test/user/login
//获取请求的方法
System.out.println("3>>>" + request.getMethod());//3>>>POST
//获取协议
System.out.println("8>>>" + request.getProtocol());//8>>>HTTP/1.1
String addr = request.getRemoteHost() + request.getRemotePort() + request.getRemoteAddr() + "==user=" + request.getRemoteUser();
System.out.println("9>>>addr: " + addr);
System.out.println("4>>>" + request.getHttpServletMapping());
//获取url后面的请求参数部分的字符串
System.out.println("5>>>" + request.getQueryString());
//获取session
System.out.println("9>>>" + request.getSession());
System.out.println(request.getSession() == httpSession);
//获取cookie
System.out.println("10>>>" + request.getCookies());
//获取所有属性
Enumeration<String> attributeNames = request.getAttributeNames();
while (attributeNames.hasMoreElements()) {
System.out.println("11>>>" + attributeNames.nextElement());
}
//获取参数
//获取单参数的值
System.out.println("15>>>"+request.getParameter("username"));//获取请求参数,注意类型是string型(如果写成username,则表示为属性名,查到的结果会为空)
System.out.println("16>>>"+request.getParameter("password"));//如上所示
//获取所有参数的所有值
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
String element = parameterNames.nextElement();
System.out.println("12>>>" + element);
System.out.println("13>>>" + request.getParameter(element));
}
Map<String, String[]> params = request.getParameterMap();
for (String name : params.keySet()) {
String value = request.getParameter(name);
System.out.println("14>>>name=" + name + ", value=" + value);
}
//服务器端口号
System.out.println("17>>>"+request.getServerPort());
//获取服务器名
System.out.println("18>>>"+request.getServerName());
//获取请求头
//获取单请求头单值
System.out.println("19>>>"+request.getHeader("Accept-Language"));
//获取当请求头多值
Enumeration headers = request.getHeaders("user-agent");
while(headers.hasMoreElements())
{
System.out.println("20>>>"+headers.nextElement());
}
//获取所有请求头和值
Enumeration names = request.getHeaderNames();
while(names.hasMoreElements()) {
//根据请求头名得到对应的值
String name = (String) names.nextElement();
System.out.println("21>>>"+name + "=" + request.getHeader(name));
}
//获取请求正文
InputStream in = request.getInputStream();
byte[] buf =new byte[1024];
int len = -1;
while((len=in.read(buf))!=-1)
{
System.out.println("22"+new String(buf,0,len));
}
输出的结果
1>>>/test
2>>>/user/login
6>>>/test/user/login
7>>>http://localhost:8080/test/user/login
3>>>POST
8>>>HTTP/1.1
9>>>addr: 0:0:0:0:0:0:0:1562010:0:0:0:0:0:0:1==user=null
4>>>org.apache.catalina.core.ApplicationMapping$MappingImpl@51afed62
5>>>null
9>>>org.apache.catalina.session.StandardSessionFacade@35d1a348
true
10>>>[Ljavax.servlet.http.Cookie;@14ad7933
11>>>org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER
11>>>org.springframework.web.servlet.HandlerMapping.bestMatchingHandler
11>>>hiddenHttpMethodFilter.FILTERED
11>>>org.springframework.web.servlet.DispatcherServlet.CONTEXT
11>>>org.springframework.web.servlet.resource.ResourceUrlProvider
11>>>characterEncodingFilter.FILTERED
11>>>org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE
11>>>org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER
11>>>formContentFilter.FILTERED
11>>>org.springframework.web.servlet.HandlerMapping.bestMatchingPattern
11>>>requestContextFilter.FILTERED
11>>>org.springframework.web.servlet.DispatcherServlet.OUTPUT_FLASH_MAP
11>>>org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping
11>>>org.springframework.web.servlet.DispatcherServlet.FLASH_MAP_MANAGER
11>>>org.springframework.web.servlet.HandlerMapping.uriTemplateVariables
11>>>org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVER
11>>>org.springframework.core.convert.ConversionService
15>>>zhangsan
16>>>123456
12>>>username
13>>>zhangsan
12>>>password
13>>>123456
14>>>name=username, value=zhangsan
14>>>name=password, value=123456
17>>>8080
18>>>localhost
19>>>en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
20>>>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36
21>>>host=localhost:8080
21>>>connection=keep-alive
21>>>content-length=33
21>>>cache-control=max-age=0
21>>>origin=http://localhost:8080
21>>>upgrade-insecure-requests=1
21>>>content-type=application/x-www-form-urlencoded
21>>>user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36
21>>>accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
21>>>referer=http://localhost:8080/test/
21>>>accept-encoding=gzip, deflate, br
21>>>accept-language=en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
21>>>cookie=JSESSIONID=76E9523B920A9C67E15572DFBB212A37; Idea-69a40201=0d269b22-5356-493a-8e79-e820f18a7bf7; goSessionid=K9r4LvqOSVu1mzs9-6MWIaA99-KVL6P3qWMk1aD_5vc%3D
补充:
String basePath = request.getScheme() + "://" + request.getServerName()
+ ":" + request.getServerPort() + request.getContextPath();
request.getScheme() : http
request.getServerName():IP地址
request.getServerPort(): 端口号
request.getContextPath():项目根目录