JavaWeb小白成長日記

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36769704/article/details/84798039

在JavaWeb中最先接触到的应该是Servlet。一个Web应用可以创建多个Servlet。提到Servlet就说一下ServletContext,它在整个Web应用中只有一个,代表整个Web应用。它的生命周期在服务区开启时创建,服务器关闭时销毁。Filter的生命周期亦是如此。

Session的生命周期

在服务器第一次执行request.getSession()的时候创建该Session。

Session的销毁3种方式:

         第一种:服务器非正常关闭

         第二种:Session过期(默认是30分钟,自己可更改。这30分钟是指30分钟内不操作服务器资源开始计时(如:进入一个网站,停留了29分钟之后刷新一 下那么这个30分钟就会重新开始计时))

可在web.xml中配置:

<session-config>

<seesion-timeout>30</seesion-timeout>

</session-config>

          第三种:手动销毁    Session.invalidate()

一个客户端只有一个Session区域(在一次会话中任何资源公用一个session对象)--------一次会话是指打开浏览器到关闭浏览器期间,seesion是将数据存贮到服务器(安全,but增加服务器压力),cookie是将数据存储到本地(减少服务器压力,but不安全)。---cookie只能存贮非中文字符串

再说一下四大作用域and范围

PageContext     :     当前的Page页面

Request            :      一次请求

Session             :     一次会话

Application         :    整个Web应用

JDBC数据库:

           在使用QueryRunner时,如果是query的话要根据业务需求去new Bean...... 。如果是updata的话就不用new了,因为它返回的受影响的条目数,不能返回对象或集合。

EL表达式:从四大域中取数据(一次从 四个域中取数据,按照4个域的访问顺序从小到大)

事务的特性:A(原子性)C(一致性)I(隔离性)D(持久性)

问题:

    1、脏读----事务A读到了事务B的未提交数据

     2、不可重复读:一个事务中两次读取的数据不一致

     3、虚读/幻读:一个事务中两次读取的数据量不一样

解决并发用事务的隔离级别:

Read uncommitted:读取尚未提交的数据 :哪个问题都不能解决

Read committed:读取已经提交的数据 :可以解决脏读 ---- oracle默认的

repeatable read:重读读取:可以解决脏读 和 不可重复读 ---mysql默认的

serializable串行化:可以解决 脏读 不可重复读 和 虚读---相当于锁表

隔离级别的性能:

read uncommitted>read committed>repeatable read>serialazable

安全性:

read uncommitted<read committed<repeatable read<serialazable

jstl中两种最常用循环方式:

                                          1)  <c:foreach items=”” var=””></c:foreach>

                                          2)<c:foreach begin=”” end=”” var=””></c:foreach>

Ajax----主要作用:异步更新数据(不刷新页面只更新页面的数据)

同步:客户端向服务端发送请求时,在等待服务器端响应的这段时间,不能操作其他的只能等待,客户端是处于卡死的状态

异步:客户端向服务端发送请求时,在等待服务端响应的这段时间内,不受任何限制。(比如:浏览网页,在网速较慢的情况下,点一下某个新闻,进度条在走,这时候你可以往下边翻看其他内容,等刚才点的那条新闻响应完毕,浏览器会自动跳页)

Ajax运行原理:

     当页面发起请求时,会将请求发送给浏览器内置的ajax引擎,(浏览器内置引擎包括:html解析引擎,css解析引擎,js解析引擎,在开发者工具中查看的html代码就是上传到html引擎内存中的代码,<不是源代码>) ,ajax引擎会帮助你把请求发送给服务端,在这段时间内,客户端可以进行操作,直到服务器端将数据返回给ajax引擎后,会触发你设置的事件(自己写的js代码)从而执行自定义的js逻辑代码完成某种页面功能。

钝化状态:就是将session中的数据持久化到磁盘上(服务器正常关闭就“钝”)----钝化默认是一分钟无操作就钝化,而session是30分钟无操作就销毁

活化状态:就是再将存到磁盘上的数据拿到session中(服务器正常开启就“活”)

邮件协议smtp服务器值能发送给smtp服务器  ----发邮件(163的smtp服务器发送给腾讯的smtp服务器,然后腾讯的smtp服务器将邮件存到一个公共的区域内,然后腾讯的pop3,向这个公共区域内取邮件)

Filter:是对客户端访问资源的过滤,符合条件的放行,不符合条件的返回(可以用转发或重定向),并且可以对目标资源访问前后进行逻辑处理,访问目标资源时先走的Filter然后再走servlet ,在doFilter方法中判断是否放行,在正常访问目标文件时,中间可能有多个Filter进行过滤(过滤器链),只要有一个不放行,都到达不了目标资源。也有些资源不用Filter过滤。doFilter()是Filter的核心方法。

FIlter的作用:1、对公共代码的抽取

                       2、对response 和 request 中的方法增强(装饰 者模式)

                       3、进行权限控制

在Filter内部想要使用cookie向客户端存数据,需要把doFilter的request和response参数强制转换成 HttpServletRequest 和 HttpServletResponse 。

url-pattern配置时

1、完全匹配  /sertvle1

2、目录匹配  /aaa/bbb/* ----最多的

3、/user/*:访问前台的资源进入此过滤器

4、/admin/*:访问后台的资源时执行此过滤器

扩展名匹配  *.abc  *.jsp

注意:url-pattern可以使用servlet-name替代,也可以混用

最后作为了解:Dispatcher:访问的方式

REQUEST:默认值,代表直接访问某个资源时执行filter

FORWARD:转发时才执行filter

INCLUDE: 包含资源时执行filter

ERROR:发生错误时 进行跳转是执行filter

 

:配置Filter的 mapping的先后顺序决定了Filter的执行顺序

:事务的并发问题由隔离性引起

:使用BeanUtils封装数据时,form表单各项的name值必须要与实体类的属性值相同。

:Pid:如果是字符类型的话,就用UUID.randomUUID().toString(); 产生随机字符串

:<a href=”javascript:void(0);” onClick=”fun()”>  javascript:void(0)  这句代码就代表了href什么都不干</a>(经常用)

Jquery的方法和js方法的区别就是把前缀“on”去掉了。功能还是一样的

Html的absolute的是相对与父标签使用的。在子标签中使用absolute,须在父标签中使用relative

:如果使用limit时有where 那么limit位置一定是在最后。

输入流表示从一个源读取数据,输出流表示向一个目标写数据

Request 和Response的对象是Tomcat引擎创建的

 

猜你喜欢

转载自blog.csdn.net/qq_36769704/article/details/84798039
今日推荐