XML官方文档:https://www.w3school.com.cn/xml/index.asp1.为什么需要xml?需求1:两个程序间进行数据通信?需求2:给一台服务器,做一个配置文件,当服务器程序启动时,去读取它应当监听的端口号、还有连接数据库的用户名和密码spring中的IOC配置文件beans.xml,mybatis的xxxMapper.xml文件,tomcat的server.xml,web.xml文件xml能存储复杂的数据关系 xml技术用于解决什么问题?解决程序间数据传输的问题:比如qq之间的数据传送,用xml格式来传输数据,具有良好的可读性,可维护性以前两个程序间的通信用xm
XML官方文档:https://www.w3school.com.cn/xml/index.asp1.为什么需要xml?需求1:两个程序间进行数据通信?需求2:给一台服务器,做一个配置文件,当服务器程序启动时,去读取它应当监听的端口号、还有连接数据库的用户名和密码spring中的IOC配置文件beans.xml,mybatis的xxxMapper.xml文件,tomcat的server.xml,web.xml文件xml能存储复杂的数据关系 xml技术用于解决什么问题?解决程序间数据传输的问题:比如qq之间的数据传送,用xml格式来传输数据,具有良好的可读性,可维护性以前两个程序间的通信用xm
Servlet01官方api文档:https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.htmlServlet和Tomcat的关系:一句话,Tomcat支持ServletServlet是跟Tomcat关联在一起的,换而言之,Tomcat是哪个版本,就对应哪个版本的Servlet1.为什么需要Servlet?需求:请用你现有的html,css,javascript,开发网站,比如可以让用户留言/购物/支付,你能搞定吗?这就需要引入我们的动态网页(能和用户交互)技术===>Servlet我们对之前的JavaWeb技术体系图进一步地细化:
Servlet01官方api文档:https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.htmlServlet和Tomcat的关系:一句话,Tomcat支持ServletServlet是跟Tomcat关联在一起的,换而言之,Tomcat是哪个版本,就对应哪个版本的Servlet1.为什么需要Servlet?需求:请用你现有的html,css,javascript,开发网站,比如可以让用户留言/购物/支付,你能搞定吗?这就需要引入我们的动态网页(能和用户交互)技术===>Servlet我们对之前的JavaWeb技术体系图进一步地细化:
JDBC和连接池011.JDBC概述基本介绍JDBC为访问不同的数据库提供了同一的接口,为使用者屏蔽了细节问题Java程序员使用JDBC,可以连接任何提供了jdbc驱动程序的数据库系统,从而完成对数据库的各种操作jdbc原理图JDBC是java提供的一套用于数据库操作的接口API,Java程序员只需要面向这套接口编程即可。不同的数据库厂商需要针对这套接口,提供不同的实现。jdbc模拟实现模拟JDBC驱动:packagejdbc.myjdbc;/***我们规定的jdbc接口(方法)规范*/publicinterfaceJdbcInterface{//连接publicObjectgetConnec
JDBC和连接池011.JDBC概述基本介绍JDBC为访问不同的数据库提供了同一的接口,为使用者屏蔽了细节问题Java程序员使用JDBC,可以连接任何提供了jdbc驱动程序的数据库系统,从而完成对数据库的各种操作jdbc原理图JDBC是java提供的一套用于数据库操作的接口API,Java程序员只需要面向这套接口编程即可。不同的数据库厂商需要针对这套接口,提供不同的实现。jdbc模拟实现模拟JDBC驱动:packagejdbc.myjdbc;/***我们规定的jdbc接口(方法)规范*/publicinterfaceJdbcInterface{//连接publicObjectgetConnec
一、根本原因「CPU、内存、磁盘之间的速度差异」为了能同时执行多个任务,CPU发展出时间片轮转、多核等CPU要从内存中读数据太慢了,所以给自己设置了缓存CPU读磁盘更慢了,所以可以让该线程阻塞二、直接原因缓存导致的可见性问题CPU把要处理的数据加载到自己的缓存中,处理完了放回自己的缓存。另一个CPU同样的处理,就导致可能看不到上一个CPU处理的结果。线程切换带来的原子性问题程序中的一行代码往往不是一条CPU指令。线程切换的时候,可能会在一个代码执行的中间地方切换。编译优化带来的有序性问题优化会为了更高效的利用CPU缓存,将代码指令重排。这个重排的过程会导致看似没问题的代码,多线程出现逻辑问题。
一、根本原因「CPU、内存、磁盘之间的速度差异」为了能同时执行多个任务,CPU发展出时间片轮转、多核等CPU要从内存中读数据太慢了,所以给自己设置了缓存CPU读磁盘更慢了,所以可以让该线程阻塞二、直接原因缓存导致的可见性问题CPU把要处理的数据加载到自己的缓存中,处理完了放回自己的缓存。另一个CPU同样的处理,就导致可能看不到上一个CPU处理的结果。线程切换带来的原子性问题程序中的一行代码往往不是一条CPU指令。线程切换的时候,可能会在一个代码执行的中间地方切换。编译优化带来的有序性问题优化会为了更高效的利用CPU缓存,将代码指令重排。这个重排的过程会导致看似没问题的代码,多线程出现逻辑问题。
Filter过滤器011.Filter过滤器说明为什么需要过滤器?先来看一个例子:我们在登录网站页面时,需要先进行登录验证。用户访问的正常的流程应该是:用户先通过登录页面进行验证,然后才可以访问各种页面。为了防止用户绕过登录验证,我们需要在每个页面进行验证,获取session,验证用户是否登录过。但是上述的方法又会产生下面的问题:使用传统方法,每个页面都要进行登录验证这将会造成代码的冗余,而且功能是重复的,比较麻烦,维护起来也不方便这时候就需要filter过滤器,它可以统一进行验证,比如权限,身份的验证,还可以进行日志记录,事务管理等...过滤器介绍Filter过滤器是JavaWeb的三大组件
Filter过滤器011.Filter过滤器说明为什么需要过滤器?先来看一个例子:我们在登录网站页面时,需要先进行登录验证。用户访问的正常的流程应该是:用户先通过登录页面进行验证,然后才可以访问各种页面。为了防止用户绕过登录验证,我们需要在每个页面进行验证,获取session,验证用户是否登录过。但是上述的方法又会产生下面的问题:使用传统方法,每个页面都要进行登录验证这将会造成代码的冗余,而且功能是重复的,比较麻烦,维护起来也不方便这时候就需要filter过滤器,它可以统一进行验证,比如权限,身份的验证,还可以进行日志记录,事务管理等...过滤器介绍Filter过滤器是JavaWeb的三大组件