第三十九天 Java基础学习(三十三)

这篇具有很好参考价值的文章主要介绍了第三十九天 Java基础学习(三十三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Servlet

Java类。由Servlet容器(Tomcat)进行编译->.class ->运行 产生响应结果返回给客户端浏览器。

生命周期:(方法调用流程)

init:初始化方法。在第一次访问servlet时被调用一次。

service:完成servlet所做功能。每次访问servlet时都会被调用。

doGet0:只有get请求。才能访问。

doPost0:只有post请求。才能访问。

destory:销毁。tomcat内存不足、很长时间没有使用、tomcat关闭时。

•四大作用域:

page:当前页面。当前页面不需要通过作用域传值。都是通过全局变量进行传递值,很少使用。

request:请求域。在一次请求中能传递值。一次请求中可以发生多次转发(服务器内部跳转,不会重新发起请求,所以还是一个请求),无论是从一个servlet方法

转发到另外一个servlet中,还是从servlet转发到jsp中,还是从jsp转发到jsp中,因为这个对象没有变,所以这个对象中设置的属性值(作用域值)是一直可以获取的

session:会话。只要浏览器没有关闭(浏览器没有关闭,cookie就不失效,服务器session对象就不会销毁)、没有超出默认时间、tomcat关闭。application:只要不关闭tomcat一直能用。当tomcat启动时,会给每个项目都创建一个application对象。

•如何给作用域设置值和获取值和移除值得API

setAttribute(key,value);

getAttribute(key)

removeAttribute(key);移除值。

●JSP

九大内置对象:当tomcat在解析jsp时会自动创建的9个对象。在jsp文件中可以通过固定的9个对象名直接调用这九个对象。page:当前页面对象。

request:请求对象。

getParameter("name")返回值String。获取请求参数。

session:会话对象。

         invilalidate0;销毁session对象。

        setMaxlnactivelnterval0;设置session最大存活时间。如果没有设置,默认为tomcat中配置的最大存活时间。

application:应用程序对象。

response:响应对象。

response:sendRedirect0;重定向。

response.addCookie0;把cookie对象设置到响应中。

out:输出对象。

       out.println0;

exception:异常对象。

config:配置对象。

 文章来源地址https://www.toymoban.com/news/detail-556674.html

●Spring Framework

IOC/DI:1OC控制反转。需要由程序员手动实例化对象的过程转交给SPring进行管理。只有这些对象都交给Spring进行管理了(放在Spring容器中(Container)),容器内部所有依赖的对象可以进行注入(DI)

●spring注入的几种方式

1.set注入(设置注入)

2.构造注入

3.工厂注入(实例工厂、静态工厂)

•<bean>标签的scope属性可取值及默认值

       singleton:单例。

       prototype:多例。

AOP:面向切面编程。

切点:方法。

切面:由多个切点形成切面。

对方法进行扩展。

通知(Advice)的分类:

前置通知。在切点之前执行事情。

后置通知。后面执行的事情。

环绕通知。把前置和后置合并。

●声明式事务:只需要通过简单的声明,告诉Spring哪些方法需要进行事务管理,所有事务相关代码都不需要由程序员进行编写。实现了只声明方法就可以实现事务管理的机制。

编程式事务:需要由程序员编写事务的开启、提交、回滚代码。

•如何判断是否需要进行回滚?

判断方法是否出现异常。只要有声明式事务的方法里面绝对不会进行异常处理 (try..catch)

isolation:(隔离级别),只有在多线程编程中(高并发)才能出现的情况。当出现多人同时访问数据库某个表或行数据时如何保证数据的安全性。

     脏读、不可重复读、幻读。

ISOLATION_DEFAULT     使用后端数据库默认的隔离级别。

ISOLATION READ UNCOMMITTED    允许读取尚未提交的更改。可能导致脏读、幻影读或不可重复读。

ISOLATION READ COMMITTED      允许从已经提交的并发事务读取。可防止脏读,但幻影读和不可重复读仍可能会发生。

ISOLATION REPEATABLE READ        对相同字段的多次读取的结果是一致的,除非数据被当前事务本身改变。可防止脏读和不可重复读,但幻影读仍可能发生。

ISOLATION SERIALIZABLE        完全服从ACID的隔离级别,确保不发生脏读、不可重复读和幻影读。这在所有隔离级别中也是最慢的,因为它通常是通过完全锁定当前事务所涉及的数据表来完成的。

propagation(传播行为):出现在当一个方法调用另一个方法的场景中。(这些方法必须出现多个DML操作)

   PROPAGATION_REQUIRES      表示当前方法必须在一个事务中运行。如果一个现有事务正在进行中,该方法将在那个事务中运行,否则就要开始一个新事务。

PROPAGATION SUPPORTS       表示当前方法不需要事务性上下文,但是如果有一个事务已经在运行的话,它也可以在这个事务里运行。

PROPAGATION MANDATORY        表示该方法必须运行在一个事务中。如果当前没有事务正在发生,将抛出一个异常。

PROPAGATION REQUIRES NEW    表示当前方法不需要事务性上下文,但是如果有一个事务已经在运行的话,它也可以在这个事务里运行。 

PROPAGATION NOT SUPPORTED      表示当前方法必须在它自己的事务里运行。一个新的事务将被启动,而且如果有一个现有事务在运行的话,则将在这个方法运行期间被挂起。

PROPAGATION NEVER        表示当前的方法不应该在一个事务中运行。如果一个事务正在进行,则会抛出一个异常。

PROPAGATION NESTED      表示如果当前正有一个事务在进行中,则该方法应当运行在一个嵌套式事务中。被嵌套的事务可以独立于封装事务进行提交或回滚。如果封装事务不存在,行为就像PROPAGATION_REQUIRES一样。

●Spring MVC

•@Controller

      @RestController相当于所有类中方法都有@ResponseBody

•@RequestMapping

      @ResponseBody根据项目中导入的Jackson依赖,把方法返回值转换为json或xml等。

•@CrossOrigin跨域。在响应头中添加允许跨域参数。Access-Control-Allow-Origin*

       浏览器同源策略。通过domain(域)域名或ip或端口

•@PathVariable Restful请求时获取参数的注解。

       请求中出现/xxxx/mmm/nnn时如果需要获取nnn的值

      @RequestMapping("/xxx/mmm/(name")

       public String demo(@PathVariable String name=)

•@RequestParam 请求参数

        public String demo(@RequestParam("name") String name123)

       public String demo(@RequestParam(defaultValue="默认值")String name123)

       public String demo(@RequestParam(require=boolean) String name123)是否必须有此参数。如果不满足报异常。

•@RequestBody把请求体中数据转换为对象。常用在通过请求体传递Map或实体类等参数值。

     注意get方式没有请求体,常用post时才能有请求体数据。一个post请求只能有一个请求体数据。

•@RequestHeader("请求头参数名”)获取请求头参数

●Maven

•本地仓库,中央仓库。

•优先通过坐标(Artifact Id、group id,version)去本地仓库找,如果找不到,去中央仓库。

•基于pom模型。项目相当于一个对象。项目和项目之间的关系

     依赖(dependency)关系

       继承(extends)继承的是父项目的pom.xml

•项目类型:

    jar:java可执行文件。可以是一个独立web项目,也可以就是工具包。

    war:web jar。web项目。打包成war可以直接放入到tomcat中进行运行。

     pom:聚合项目中的父项目。

●EasyUI:前端框架,适用做后台项目或管理类型项目。

●RBAC:在做权限时数据库设计的方案。基于角色的权限控制。核心:有角色表。

●Spring Boot支持的配置文件类型

支持的配置文件类型,properties、.yml、yaml其中常用的就是.properties和.yml功能是等效的。区别在于文件内容的格式。

•properties文件格式 key=value

•yml 文件格式

注意:value和c:中间必须有个空格。

当value为特殊字符时(、*)时必须被单引号包含 `:´,`*´

虽然yml文件格式看起来是带有缩进的形式,但是被编译后还是properties文件格式。

优点:

key写起来更加简洁。

缺点:

格式必须严格对齐。缩进是经常出错的地方。

 

到了这里,关于第三十九天 Java基础学习(三十三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaSE】Java基础语法(三十三):File 一文详解

    File类介绍 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也 可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的 File类的构造方法

    2024年02月06日
    浏览(47)
  • 【Linux】第三十三站:日志

    我们运行代码的时候,我们希望有各种各样的运行时候的一些信息。这也就是日志 它一半有日志时间,日志的等级,日志的内容,文件的名称和行号。 对于日志等级一半有如下的 Info : 常规消息 Warning : 报警信息 Error : 比较严重了,可能需要立即处理 Fatal : 致命的 Debug : 调试

    2024年01月22日
    浏览(36)
  • 学C的第三十三天【C语言文件操作】

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 学C的第三十二天【动态内存管理】_高高的胖子的博客-CSDN博客  =====================================

    2024年02月13日
    浏览(28)
  • 【从零开始学习JAVA | 第三十篇】方法引用

    目录 前言: 方法引用: 方法引用基本概念: 方法可以被引用的条件: 方法引用的种类: 方法引用的优点: 总结: 方法引用作为一个重要的知识点,虽然他使用起来很复杂,而且会降低代码的可读性,但是如果用好了方法引用,我们也会获得不错的效率,因此我们在今天

    2024年02月15日
    浏览(26)
  • 第三十三章:RPA与自然语言处理的安全保障

    RPA(Robotic Process Automation)和自然语言处理(NLP)是两种不同的技术领域,但它们在现实生活中的应用中有很多相互关联和相互影响的地方。在这篇文章中,我们将讨论RPA与自然语言处理的安全保障,以及如何在实际应用中保障数据安全和系统安全。 自然语言处理(NLP)是一种通过计

    2024年02月22日
    浏览(37)
  • 【从零开始学习JAVA | 第三十一篇】异常体系介绍

            本文我们将为大家介绍一下异常的整个体系,而我们学习异常,不是为了敲代码的时候不出异常,而是为了能够熟练的处理异常,如何解决代码中的异常。  我们就以这张图作为线索来详细介绍一下Java中的异常: 在Java中, Exception(异常)是一种表示非致命错误或异

    2024年02月15日
    浏览(53)
  • 【从零开始学习JAVA | 第三十七篇】初识多线程

    目录 前言: ​编辑 引入: 多线程:         什么是多线程:         多线程的意义:         多线程的应用场景: 总结:                 本章节我们将开始学习多线程,多线程是一个很重要的知识点,他在我们实际开发中应用广泛并且基础,可以说掌握多线程编写程

    2024年02月14日
    浏览(28)
  • 【从零开始学习JAVA | 第三十八篇】应用多线程

    目录 前言: 多线程的实现方式: Thread常见的成员方法: 总结:            多线程的引入不仅仅是提高计算机处理能力的技术手段,更是适应当前时代对效率和性能要求的必然选择。在本文中,我们将深入探讨多线程的应用和实践,帮助读者更好地理解和应用多线程技术,

    2024年02月13日
    浏览(41)
  • 【Java基础教程】(三十三)常用类库篇 · 第三讲:可变字符串支持类——解析 StringBuffer与 StringBuilder类~

    在Java 中,字符串使用 String 类进行表示,但是 String 类所表示的字符串有一个最大的问题:“字符串常量一旦声明则不可改变,而字符串对象可以改变,但是 改变的是其内存地址的指向”。所以 String 类不适合于被频繁修改的字符串操作, 所以在这种情况下,往往可以使用

    2024年02月15日
    浏览(28)
  • 【从零开始学习JAVA | 第三十五篇】IO流综合练习

    目录 前言: 1.拷贝文件(含子文件) 思路: 2.文件加密 思路: 3.修改文件中的数据: 思路: 总结:         在前面我们为大家介绍了FILE类和IO类。这篇文章我们来练习一些综合使用的例子以此来巩固我们自己的所学知识。 建立一个读文件的流来读取文件,一个写文件的流

    2024年02月14日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包