查漏补缺12--前后端传值以及request和response对象

一、前端向后端传值
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():项目根目录
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值