自定义框架(4)

自此我们已经完成了我们自己的后端控制器,现在只需要在serviet中接收请求,然后派发给我们的后端控制器,

所以我由于用户发来的所有请求都由servlet中service方法接收,所以我们在servlet的service中将用户的请求经行具体的处理。

首先在service中实例化映射器和适配器

 

在service中我们使用request.getRequestURI()方法得到用户请求的全地址。此地址包含用户要项目名/资源名/

在使用request.getContextPath()方法得到项目名,

然后全路径使用replace()方法将项目名去掉,得到用户要访问的资源名

然后得到映射器里的两个map容器

先得到装有路径,和方法的map容器

使用map.keyset()方法将map中的key转成set集合。用一个字符串接收起来

循环此集合,判断集合中知否包含得到的资源名

也可以直接使用map.containskey()方法看map容器中是否包含得到资源名

如果set集合中没有这个资源名则返回一个404,没有此页面的网页。

如果set集合中含有资源名

那我们就可以将得到的资源名传给适配器,让适配器来完成资源名与方法的适配。

 在适配器中实例化映射器,因为我们需要使用到其中的map容器

 根据service传过来的资源名地址,我们使用资源名称在装有方法与路径的map容器中得到此路径对应的方法,

得到方法method后使用.getParameters()得到方法method的所有参数,得到一个参数的集合

接着使用request.getParameterMap()获取用户传跟在资源地址后面的键值对

得到一个map容器

接着我们就可以为调用方法准备参数了

首先我们创建一个集合将等会方法需要的参数放入此集合,集合长度为参数集合的长度

 接着我们循环方法参数的集合

 使用.getname()得到方法参数的名字

.gettype().getSimpleName()得到方法参数类型的类的简称

然后与一些常见的类型进行比较如果匹配成功就将此参数存到我们创建装方法参数的集合

猜你喜欢

转载自www.cnblogs.com/zxc-double-refuel/p/10864476.html