1.READ UNCOMMITTED:脏读、不可重复读、虚读都有可能发生
2.READ COMMITTED:防止脏读的发生,不可重复读,虚读都有可能发生
3.REPEATABLE READ:防止脏读,不可重复读的发生,虚读可能发生
4.REALIZABLE:防止脏读,不可重复读,虚读的发生
事务级别越高,安全性越高,效率越低
设置事务的隔离级别:SET transaction isolation levle + 四个隔离级别之一
数据库的分页操作
LIMIT M,N
M:表示查询的开始索引,第一页的索引为0
N:表示每次查询的记录条数

第一页:SELECT * FROM student LIMIT 0,10;
第二页:SELECT * FROM student LIMIT 10,10;
第n页:SELECT * FROM student LIMIT (n-1)*10,10;

总页数:
总页数=总记录条数%10==0?总记录条数/10:总记录条数/10+1
脏数据:一个线程中的事务读取了另一个线程中未提交的事务
事务:在计算机术语中,访问数据库中数据项的一个程序单元(unit),通常包含对数据库读或者写的一系列操作
目的:1.为数据库在失败状态下恢复到正常状态下的方法,同时提供了数据库在一场状态下仍能够保持一致性的方法
2.当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,防止彼此的操作相互干扰
事务被提交到数据库系统中,要么全部执行,要么全部不执行,事务中有失败的操作,则事务中所有的操作都要回滚,回到事务前的状态。
该事务同其他事务的执行没有影响,就好象是各自独立执行一样。
事务的原子性、一致性、隔离性、持久性,就是ACID特性
比如事务:A对B转账的操作包括6个过程
1.查询A账户的余额(500);
2.从A账号支出数目(500-100);
3.把结果回写道A账号中(400);
4.查询B账号的余额(500);
5.往B账号中加入数目(500+100);
6.把结果写道B账号中(600);
拦截器:java拦截器动态拦截Action对象,在Action的前后执行一段代码,Struts通过查找配置文件,通过配置文件实例化要拦截
的对象,让后串成一个list,之后一个一个的调用列表中的拦截器
过滤器:取你所想取
拦截器:拒你所想拒
拦截器站:多个拦截器的组合
<--!注册拦截器-->
<interceptors>
<interceptor name="timer" class="com.deng.interceptor.MyInterceptor">
</interceptors>
<action name="getTime" class="com.deng.action.MyAction">
<result>/1.jsp</result>
<interceptor-ref name="timer"/>
</action>
validation:调用验证框架进行数据验证
fileupload:对文件上传提供支持,将文件和元数据设置到对应的action属性
在Struts-default.xml中定义一个defaultStack拦截器站,并且设置为默认拦截器,那么在定义包的过程中继承Struts-default,才能够使用默认的
defaultStack拦截器,如果在包中指定特定的拦截器,则defaultStack拦截器将不起作用。
在web应用中引入拦截器机制,可以实现对action通用操作的可插拔管理,这种可插拔管理是建立在配置struts.xml的基础上实现的
拦截器的语法格式:
<interceptors>
<interceptor name="拦截器的名字" class="拦截器的类名"/>
</interceptors>
拦截器站的语法格式:
<interceptors>
<interceptors-stack name="拦截器站的名字">
<interceptor-ref name="拦截器的名字"/>
</interceptors>
</interceptors>
在struts.xml配置文件中,原先已经配置了action信息,加入拦截器后,在action之内将需要的拦截器写入即可
<s:form action="doxxx.action" method="post">
<s:textfield name="name" label="the person" />
<s:textfield name="content" label="the content" />
<s:checkbox name="check" label="I have read the paper" />
<s:submit type="button" />
</s:form>
// 获取属性值,name属性,可以将其值显示在网页上
<s:property value="name">
// 引入struts标签库
<%@ taglib prefix="s" uri="/struts.tags"%>
获取session对象的方法
1)从实际的request中获取
HTTPSession session = ServletActionContext.getRequest().getSession()
2)间接使用struts中的map获得,担不是真实的session
ActionContext ac = ActionContext.getContext();
Map m = ac.getSession();
ActionSupport的execute方法是在action没有指定方法时,struts2会默认使用该方法

数据库和struts2的拦截器的更多相关文章

  1. Struts2【拦截器】就是这么简单

    什么是拦截器 拦截器Interceptor.....拦截器是Struts的概念,它与过滤器是类似的...可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Str ...

  2. struts2 paramsPrepareParamsStack拦截器简化代码(源码分析)

    目录 一.在讲 paramsPrepareParamsStack 之前,先看一个增删改查的例子. 1. Dao.java准备数据和提供增删改查 2. Employee.java 为model 3. E ...

  3. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  4. struts2总结六: Struts2的拦截器

    一.Struts2的系统结构图

  5. Struts2使用拦截器完成权限控制示例

    http://aumy2008.iteye.com/blog/146952 Struts2使用拦截器完成权限控制示例 示例需求:    要求用户登录,且必须为指定用户名才可以查看系统中某个视图资源:否 ...

  6. Struts2自定义拦截器Interceptor以及拦截器登录实例

    1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor ...

  7. struts2之拦截器

    1. 为什么需要拦截器 早期MVC框架将一些通用操作写死在核心控制器中,致使框架灵活性不足.可扩展性降低, Struts 2将核心功能放到多个拦截器中实现,拦截器可自由选择和组合,增强了灵活性,有利于 ...

  8. 【struts2】拦截器基础

    1)拦截器是什么? 拦截器(Interceptor)是Struts2最强大的特性之一,它是一种可以让你在Action执行之前和Result执行之后进行一些功能处理的机制.来回顾一下官方给出的Strut ...

  9. JavaWeb框架_Struts2_(三)---->Struts2的拦截器

    2. Struts2的拦截器(使用拦截器实现权限控制) 2.1 拦截器的概述 拦截器是Struts2的核心组成部分,它可以动态的拦截Action调用的对象,类似与Servlet中的过滤器.Struts ...

随机推荐

  1. js实现webSocket客户端

    var ws = new WebSocket("ws://localhost:8080/msg"); //readyState属性返回实例对象的当前状态,共有四种. //CONNE ...

  2. SpringMVC -- 梗概--源码--壹--跳转

    1.配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=&qu ...

  3. jackson 转换 enum 类型

    REST API 接口要求 requster json 的 lifeCycle 域只能填 YOUNG, OLD,对于其他的 lifeCycle,都要给 requester 返回 bad request ...

  4. flexbox父盒子align-items属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. vue-resource和vue-axios的简单使用方法

    两者其实差别不大,都是基于es6的Promise对象实现的方法 vue-resource: main.js => import Vue from 'vue'; import VueResourc ...

  6. 在oracle配置mysql数据库的dblink

    本文介绍如何在oracle配置mysql数据库的dblink:虽然dblink使用很占资源:俗称“性能杀手”.但有些场景不得不使用它.例如公司使用数据库是oracle:可能其他部门或者CP合作公司使用 ...

  7. mysql的联表删除

    联表删除: 1.从数据表t1 中把那些id值在数据表t2 里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id    或DELETE  FROM t1 ...

  8. Create maintenance backup plan in SQL Server 2008 R2 using the wizard

    You will need to identify how you want your maintenance plan to be setup. In this example the mainte ...

  9. javaweb项目中表单生成的验证码以及校验

    首先先来看一下项目的结构吧,有两个servlet,一个是进行验证码的生成以及存储的,一个是进行校验的,还有一个jsp页面是用来实现form表单的书写和展示: 我们只需要看这三个就行了,其他的自动忽略: ...

  10. 浅析JavaBean

    一.概述 JavaBean组件本质上是一个Java类,只是这个类的编码要遵循一些约定.用户可以使用JavaBean将功能.处理.值.数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的 ...