Tomcat源码解读--代码走读之(四十八中的2-2)postParseRequest(五十)
代码在CoyoteAdapter类中,这里面有4个参数org.apache.coyote.Request req,Request request,org.apache.coyote.Response res, Response response,其中req和res是adapter.service的参数,request和response是之后将要调用方法的参数。1、判断req.scheme().isNull(),
(1)、如果为有值,则设置request.setSecure(req.scheme().equals("https"))。
(2)、否则req.scheme().setString(connector.getScheme());
其中connector.getScheme()为http,connector.getSecure()为false。
3、进行proxyName和proxyPort的校验和设置。
4、decodedURI.duplicate(req.requestURI()),复制src到这个对象,之后申请空间。
parsePathParameters(req,request),提取路径从请求参数。这个假设参数的形式/路径;名称=值;name2 = value2 / etc。目前只有真正感兴趣的会话ID,将在此表格。其他参数可以安全地忽略掉。
5、URI decoding,req.getURLDecoder().convert(decodedURI, false)
6、convertURI(decodedURI, request),复制给request。
7、Set the remote principal
8、Set the authorization type
9、Request mapping,主要是设置MappingData对象,如下图这些参数
10、request设置context和wrapper
11、对session ID做一些判断
12、Possible redirect
13、Filter trace method
页:
[1]