听说你JavaWeb学的不好?(三十二)

73 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情

  • 转发和重定向应该如何选择?什么时候使用转发,什么时候使用重定向?

    • 如果在上一个Servlet当中向request域当中绑定了数据,希望从下一个Servlet当中把request域里面的数据取出来,使用转发机制。
    • 剩下所有的请求均使用重定向。(重定向使用较多。)
  • 跳转的下一个资源有没有要求呢?必须是一个Servlet吗?

    • 不一定,跳转的资源只要是服务器内部合法的资源即可。包括:Servlet、JSP、HTML.....
  • 转发会存在浏览器的刷新问题(因为转发的话浏览器上方的url没有改变,浏览器刷新就会再向原来的url发送一次请求)

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的名字。等同于:
      • urlPatterns属性:用来指定Servlet的映射路径。可以指定多个字符串,任何一个映射路径都能到相应的servlet。
      • loadOnStartUp属性:用来指定在服务器启动阶段是否加载该Servlet。等同于:
      • value属性:用途和urlPatterns一样
  • 注解对象的使用格式:

    • @注解名称(属性名=属性值, 属性名=属性值, 属性名=属性值....)
    • 注意:如果属性是一个数组,数组中只有一个元素,使用该注解的时候,属性值的大括号可以省略
    • 注意:不是必须将所有属性都写上,需要什么写什么
    • 注意:当注解的属性名是value的时候,使用注解的时候,value属性名和等于号是可以省略的。