Servlet注解,简化配置

- 分析oa项目中的web.xml文件

  - 现在只是一个单标的CRUD,没有复杂的业务逻辑,很简单的一丢丢功能。web.xml文件中就有如此多的配置信息。如果采用这种方式,对于一个大的项目来说,这样的话web.xml文件会非常庞大,有可能最终会达到几十兆。
  - 在web.xml文件中进行servlet信息的配置,显然开发效率比较低,每一个都需要配置一下。
  - 而且在web.xml文件中的配置是很少被修改的,所以这种配置信息能不能直接写到java类当中呢?可以的。

- Servlet3.0版本之后,推出了各种Servlet基于注解式开发。优点是什么?

  - 开发效率高,不需要编写大量的配置信息。直接在java类上使用注解进行标注。
  - web.xml文件体积变小了。

- 并不是说注解有了之后,web.xml文件就不需要了:

  - 有一些需要变化的信息,还是要配置到web.xml文件中。一般都是 注解+配置文件 的开发模式。
  - 一些不会经常变化修改的配置建议使用注解。一些可能会被修改的建议写到配置文件中。

- 我们的第一个注解:

 

 jakarta.servlet.annotation.WebServlet

 - 在Servlet类上使用:@WebServlet,WebServlet注解中有哪些属性呢?

    - name属性:用来指定Servlet的名字。等同于:<servlet-name>
    - urlPatterns属性:用来指定Servlet的映射路径。可以指定多个字符串。<url-pattern>
    - loadOnStartUp属性:用来指定在服务器启动阶段是否加载该Servlet。等同于:<load-on-startup>
    - value属性:当注解的属性名是value的时候,使用注解的时候,value属性名是可以省略的。
    - 注意:不是必须将所有属性都写上,只需要提供需要的。(需要什么用什么。)
    - 注意:属性是一个数组,如果数组中只有一个元素,使用该注解的时候,属性值的大括号可以省略。

- 注解对象的使用格式:

  - @注解名称(属性名=属性值, 属性名=属性值, 属性名=属性值....)

## 使用模板方法设计模式优化oa项目

- 上面的注解解决了配置文件的问题。但是现在的oa项目仍然存在一个比较臃肿的问题。
  - 一个单标的CRUD,就写了6个Servlet。如果一个复杂的业务系统,这种开发方式,显然会导致类爆炸。(类的数量太大。)
  - 怎么解决这个类爆炸问题?可以使用模板方法设计模式。
- 怎么解决类爆炸问题?
  - 以前的设计是一个请求一个Servlet类。1000个请求对应1000个Servlet类。导致类爆炸。
  - 可以这样做:一个请求对应一个方法。一个业务对应一个Servlet类。
  - 处理部门相关业务的对应一个DeptServlet。处理用户相关业务的对应一个UserServlet。处理银行卡卡片业务对应一个CardServlet。

## 分析使用纯粹Servlet开发web应用的缺陷

- 在Servlet当中编写HTML/CSS/JavaScript等前端代码。存在什么问题?
  - java程序中编写前端代码,编写难度大。麻烦。
  - java程序中编写前端代码,显然程序的耦合度非常高。
  - java程序中编写前端代码,代码非常不美观。
  - java程序中编写前端代码,维护成本太高。(非常难于维护)
    - 修改小小的一个前端代码,只要有改动,就需要重新编译java代码,生成新的class文件,打一个新的war包,重新发布。
- 思考一下,如果是你的话,你准备怎么解决这个问题?
  - 思路很重要。使用什么样的思路去做、去解决这个问题
    - 上面的那个Servlet(Java程序)能不能不写了,让机器自动生成。我们程序员只需要写这个Servlet程序中的“前端的那段代码”,然后让机器将我们写的“前端代码”自动翻译生成“Servlet这种java程序”。然后机器再自动将“java”程序编译生成"class"文件。然后再使用JVM调用这个class中的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老衲只用阿道夫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值