request对象

SpringMVC之自动注入Request对象

安稳与你 提交于 2019-12-09 02:31:42
前几天看了领导写的一段代码,在Controller中注入了HttpServletRequest,形式如下所示: @RestController public class AutowiredRequestController { @Autowired private HttpServletRequest request; } 当时看到了这一段代码,首先想到的是AutowiredRequestController是一个singleton的bean,HttpServletRequest是一个变化的共享变量,每个请求对象都是不一样的,这样写不会有线程安全问题吗?带着疑问去翻了翻SpringMVC的源码,结论是:不会有线程安全问题!!!不会有线程安全问题!!!!不会有线程安全问题!!!下面我们来分析一下: 在前面的文章中我们简单的分析过SpringMVC的上下文初始化过程( SpringMVC之浅析上下文初始化(一) 和 SpringMVC之浅析上下文初始化(二) ),SpringMVC环境中的父上下文时:XmlWebApplicationContext。下面我们先看一下XmlWebApplicationContext的UML类图(去掉了一些暂时无关的): 之前也说过会调用AbstractApplicationContext中的refresh方法进行Bean的组装初始化的过程

request对象getAttribute和getParameter区别

╄→гoц情女王★ 提交于 2019-12-06 19:04:30
java ee 中request对象getAttribute和getParameter区别   1.getAttribute是取得jsp中 用setAttribute設定的attribute 2.parameter得到的是string;attribute得到的是object 3.request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据;request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。   JSP中getParameter与getAttribute有何区别? ——说实话,这个问题当初我也困惑很久,我也知道怎么用,可是到底有什么区别,我也不是很清楚,后来找了很多资料才明白。昨天又有一位朋友问我这个问题,想我当初同样也困惑过,于是我就把这个问题贴出来,让同样困惑的朋友解惑。 ——getParameter得到的都是String类型的。或者是 id=123中的123,或者是某个表单提交过去的数据。 ——getAttribute则可以是对象。 ——getParameter

TP5给request对象动态绑定属性

懵懂的女人 提交于 2019-12-05 22:19:24
在tp5中可以给Request请求对象绑定属性,方便 全局调用 。比如我们可以在公共控制器中绑定当前登录的用户模型到请求对象。 1. 首先在公共控制器中绑定: <?phpnamespace app\common\controller;use app\index\model\User;use think\Controller;use think\Request;use think\Session;class Base extends Controller{ public function _initialize(){    $user = User::get(Session::get("user_id"));    Request::instance()->bind("user",$user);    //$this->request->bind("user",$user);  }} 2. 获取该属性(在控制器中): Request::instance()->user;//$this->request->user;//request()->user; 来源: https://www.cnblogs.com/lty-fly/p/11947418.html

express4.x Request对象获得参数方法

╄→尐↘猪︶ㄣ 提交于 2019-12-04 13:39:34
最近看完慕课网 “node.js 建站攻略”后, 对mongodb 操作有了进一步认识, 为了进一步巩固该数据库知识, 于是使用学到的知识搭建一个最简单的mongoDemo. 搭建完成后已放到Github分享, 详情请戳 mongoDemo源码 感兴趣的小伙伴可以看看;回到主题, 完成该小项目后对nodejs后台开发有了一些小悟,本文就req 最常用的参数获取做个小结; node.js后台开发基本都会碰到使用 req.param() 、req.params 、 req.query 、 req.body 获取参数的情况, 那么它们有哪些区别呢?以下详细分析之: 1. req.param() 该方法获得参数最为方便, 可以说是其他三个属性的综合体;但是 express 4.x api文档已写明该方法将会弃用!今后只能改用其他三个req属性获取参数。(Ps: 鄙人express4.x项目使用req.param()时不会报错,但启动项目时会有警告提示) 该方法的使用如下: // /user/tobi for /user/:name req.param('name') // => "tobi" // ?name=tobi req.param('name') // => "tobi" // POST name=tobi req.param('name') // => "tobi"

ThinkCMF常用代码

不打扰是莪最后的温柔 提交于 2019-12-03 22:51:24
模板常量 __ROOT__: 网站根目录,不带/; __WEB_ROOT__: 网站资源根目录,不带/,如果以前版本用__ROOT__来定位网站资源,方便以后cdn切换 __TMPL__: 当前模板根目录,不带/; 如:前台 simpleboot3模板根目录是 public/themes/simpleboot3 后台admin_simpleboot3模板根目录是public/themes/admin_simpleboot3 __STATIC__: public/static目录,不带/; 视频讲解 http://t.cn/RnQBHXZ 系统变量输出 系统变量的输出通常以{$Think开头,如: {$Think.server.http_host} // 输出$_SERVER['HTTP_HOST']变量 {$Think.session.user_id} // 输出$_SESSION['user_id']变量 {$Think.post.id} // 输出$_POST['id']变量 {$Think.get.page} // 输出$_GET['page']变量 {$Think.cookie.name} // 输出$_COOKIE['name']变量 支持输出 $_SERVER、$_ENV、 $_POST、 $_GET、 $_REQUEST、$_SESSION和 $_COOKIE变量。

response对象和request对象详解

匿名 (未验证) 提交于 2019-12-02 23:49:02
request方法列举: request.getAuthType() // 获取保护servlet的认证方案名(BASIC或SSL),未受保护的servlet返回的就是null request.getCharacterEncoding() // 获取字符编码 request.getContentLength()// 返回请求体内容的长度 request.getContentType() // 获取内容类型 request.getContextPath() // 获取上下文路径,就是"/"+工程名 request.getLocalAddr() // 获取应用服务器的IP地址 request.getLocalName() // 获取应用服务器的主机名 request.getLocalPort() // 获取应用服务器的端口号 request.getMethod() // 获取请求方式获取请求方式(GET与POST为主,也会有PUT、DELETE、INPUT) request.getPathInfo() request.getPathTranslated() request.getProtocol() // 获取客户端向服务端传送数据使用的协议名称 request.getQueryString() // 获取追加到Url后面的查询字符串 request.getRemoteAddr() /

request对象

匿名 (未验证) 提交于 2019-12-02 23:49:02
request.scheme 代表请求的方案,http或者https request.path 请求的路径,比如请求127.0.0.1/org/list,那这个值就是/org/list request.method 表示请求使用的http方法,GET或者POST请求 request.encoding 表示提交数据的编码方式 request.GET 获取GET请求 request.POST 获取post的请求,比如前端提交的用户密码,可以通过request.POST.get()来获取 另外:如果使用 POST 上传文件的话,文件信息将包含在 FILES 属性中 request.COOKIES 包含所有的cookie request.META request.META.get(“header key”) 用于获取header的信息 注意的是header key必须增加前缀HTTP,同时大写,例如你的key为username,那么应该写成:request.META.get("HTTP_USERNAME") 另外就是当你的header key中带有中横线,那么自动会被转成下划线,例如my-user的写成: request.META.get("HTTP_MY_USER") 一个标准的Python 字典,包含所有的HTTP 首部。具体的头部信息取决于客户端和服务器,下面是一些示例:

request和response对象如何解决中文乱码问题?

匿名 (未验证) 提交于 2019-12-02 23:43:01
出现中文乱码的问题,一般的原因编码和和解码不一致造成的。 1 /* 2 乱码:编码和解码不一致导致的 3 GET:你好 4 POST:?????? 5 tomcat版本:8.5及以上版本 6 GET请求方式,request对象使用的字符集默认为utf-8 7 POST请求方式,request对象使用的字符集默认为ISO8859-1 8 解决: 9 设置request对象的字符集为utf-8 10 request.setCharacterEncoding("utf-8"); 11 tomcat版本:8.5以下版本(了解) 12 没有设置request的字符集 13 GET:?????? 14 POST:?????? 15 request.setCharacterEncoding("utf-8"); 只针对post方式有效 16 GET:?????? 17 POST:你好 18 解决: 19 request对象默认字符集ISO8859-1 20 1.String类中的方法:可以把获取到的ISO8859-1编码的字符串转换为字节数组 21 byte[] getBytes(Charset charset) 使用指定的字符集把字符串转换为字节数组 22 2.String类的构造方法:把字节输出以UTF-8的方式解码为字符串 23 String(byte[] bytes, String

从0开始写JavaWeb框架系列(7)从0开始写SamrtFrameWork:核心控制器的编写

这一生的挚爱 提交于 2019-12-02 04:03:53
一、编写前端核心请求转发器( 基于Servlet3.0以上版本 ) 1.1、从HttpServletRequest对象中获取请求方法和请求路径,通过ControllerHelper#getHandler方法来获取Handler对象。 1.2、当拿到Handler对象之后,我们可以方便的获取Controller的Class类,进而通过BeanHelper.getBean方法来获取Controller实例对象( 为了后续通过传入实例对象来调用响应的方法 )。 1.3、接下来可以从HttpServletRequest对象中获取所有请求参数,并将其初始化到一个Param.java的对象中。 package org.smart4j.framework.bean; import java.util.Map; import org.smart4j.framework.util.CastUtil; /** * 请求参数对象 * @author Admin * */ public class Param { /** * 所有请求参数的key,Value */ private Map<String,Object> paramMap; public Param(Map<String, Object> paramMap) { this.paramMap = paramMap; } /** *

Request对象

为君一笑 提交于 2019-12-01 09:48:16
一、repuset对象和response对象的原理   1. request和response对象是有服务器创建的,我们可以使用   2. request对象是来获取请求消息,response对象是来设置响应消息 二、 request对象继承体系结构:     ServletRequest -- 接口 继承   HttpServletRequest -- 接口 实现 org.apache.catalina.connector.RequestFacade 类(tomcat) 三、 request功能:   1. 获取请求消息数据:      1. 获取请求行数据 :       1. 获取请求方法: String getMethod()        2. 获取虚拟目录: String getContextPath()       3. 获取Servlet路径: String getServletPath()       4. 获取get方式请求参数: String getQueryString()       5. 获取请求的URI: String getRequestURI()   StringBuffer getRequestURL():http://localhost/day14/demo1       6. 获取协议及版本号: String getProtocol()