当前位置: 首页 > news >正文

servlet-优化

 起初的设计模式:

在服务器端有很多的serlvet组件,用户会发送请求,而servlet又会访问DAO组件,DAO组件又去调用数据库DB,从数据库查询的数据再依次返回给Servlet,然后Servlet经过Thymeleaf等进行渲染响应给客户端。但这种基础的请求方式会显得服务器端繁琐,下列进行初步修改

优化设计1(就是多个fruit相关的servlet整合为一个)

第一次修改:

一个请求过来的时候,我们设想只有一个Servlet,对应的他会有一个service或者dopost,doget方法进行服务,(假设是service方法)在service内部根据你发过来的请求去调用不同的方法。

优化设计2(通过反射机制获取需要调用的方法执行)

前景引入

在这个FruitServlet里面如果有很多方法,那我们第一次修改的switch-case会很多

(如果要查看某行代码就会显得很难,补充:ctrl+f可以查看关键字)

第二次修改

1.先获取当前类的所有方法

2.再利用for循环获取方法名称

3.找到和operate同名的方法,那么通过反射技术调用它

优化设计3(dispatcherServlet引入)

前景引入

我们在优化设计时使用反射机制来简化代码,但有多个Servlet我们是不是每个Servlet都需要写一个反射

好处:不需要FruitServlet等再继续利用反射,优化代码

第三次修改

将所有的请求都交给DispatcherServlet,它根据用户请求的不同去对应不同的Servlet,然后再定位到不同Servlet里面的方法

思路

1.根据请求的url获取ServletPash,然后ServletPath去截取字符串,解析出一个名字

2.解析加载我们的配置文件,从配置文件中读取一个个bean,放到map里面去

3.通过刚才得到的ServletPath去map里面找到能处理的对应请求类。

第一步:通过servletPath获取hello

第二步:加载配置文件,字符串与类对应的map

2.1利用一个配置文件来实现hello对应的是HelloController

2.2在生命周期中调用init方法来实现

2.3init方法的作用说明

第三步:通过hello调用对应的HelloController

小结回顾

我们把之前的FruitServlet等当中的反射代码向前抽取到中央控制器(DispatcherServlet)当中去了,

这里我们假设发送一个请求,前面的fruit.do,我们这些Controller在内存里面形成一个容器beanMap,这个容器里面会有一个一个组件,FruitController其实就和fruit.do对应,配置文件说明了的,解析了配置文件,把它里面的一个一个bean封装成map对象,再我们获取fruit.do的时候就能找到对应的FruitController

相关文章:

  • 数据仓库是什么?数据仓库架构有哪些?
  • C++/Qt中QActionGroup类用法
  • 6.第六章:数据分类的技术体系
  • 形象解释 HTTP 的四种常见请求方式及其中的区别联系
  • DDD领域驱动与传统CRUD
  • Datawhale AI春训营——用AI帮助老人点餐
  • 前端跨端框架的开发以及IOS和安卓的开发流程和打包上架的详细流程
  • (done) 吴恩达版提示词工程 3. 迭代 (控制输出长度、提取特定细节、输出 HTML 格式)
  • Ubuntu下软件运行常见异常退出问题汇总分析
  • Qt本地化 - installTranslator不生效
  • HarmonyOs @hadss/hmrouter路由接入
  • 外观模式:简化复杂系统接口的设计模式
  • RS232转ProfibusDP网关:连接未来传感器的关键
  • 4.1 融合架构设计:LLM与Agent的协同工作模型
  • 2025上海车展:光峰科技全球首发“灵境”智能车载光学系统
  • 倚光科技:柱面透镜加工工艺详解,解锁光学新境界
  • 构建企业官方网站有哪些必备因素?
  • vue3--手写手机屏组件
  • java Springboot使用扣子Coze实现实时音频对话智能客服
  • dockercompose文件仓库
  • “归雁经济”能带来什么?川大商学院调研团队深入乡村与返乡青年人才交流
  • 印媒称印巴在克什米尔控制线沿线发生小规模交火,巴方暂未回应
  • 安徽铁塔再通报“会议室不雅行为”事件:涉事员工停职检查
  • 时隔七年,上合组织国家电影节再度在中国举办
  • 上海车展上的双向奔赴:跨国车企融入中国创新,联手“在中国,为全球”
  • 2025年一季度上海市生产总值