Tomcat源码解读--代码走读之(四十八中的2-2)postParseRequest(五十)

  代码在CoyoteAdapter类中,这里面有4个参数org.apache.coyote.Request req,Request request,org.apache.coyote.Response res, Response response,其中reqresadapter.service的参数,requestresponse是之后将要调用方法的参数。

1、判断req.scheme().isNull()

(1)、如果为有值,则设置request.setSecure(req.scheme().equals("https"))

2)、否则req.scheme().setString(connector.getScheme());

其中connector.getScheme()httpconnector.getSecure()false

3、进行proxyNameproxyPort的校验和设置。

4、decodedURI.duplicate(req.requestURI()),复制src到这个对象,之后申请空间。

parsePathParameters(req,request),提取路径从请求参数。这个假设参数的形式/路径;名称=;name2 = value2 / etc。目前只有真正感兴趣的会话ID,将在此表格。其他参数可以安全地忽略掉。

5、URI decodingreq.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设置contextwrapper

11、对session ID做一些判断

12、Possible redirect

13、Filter trace method

 

猜你喜欢

转载自83519144.iteye.com/blog/1887020