五郎. 发表于 2017-2-10 12:50:13

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]
查看完整版本: Tomcat源码解读--代码走读之(四十八中的2-2)postParseRequest(五十)