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. Linux命令缩写的全称

    [目录|文件] ls : list(列出目录内容) pwd : print work directory(打印当前目录,现示当前工作目录的绝对路径) cd : change directory(改变目 ...

  2. mybatis generator配置,Mybatis自动生成文件配置,Mybatis自动生成实体Bean配置

    mybatis generator配置,Mybatis自动生成文件配置,Mybatis自动生成实体Bean配置 ============================== 蕃薯耀 2018年3月14 ...

  3. iOS - 白名单应用间相互跳转

    1. 应用间相互跳转简介 在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景.这就需要我们掌握iOS应用程序之间的相互跳转知识. 下面来看看我们在开发过程中遇到的应用 ...

  4. JS 省市县三级联动

    $(".area").change(function(ent,arg){ var $this = $(this), level = $(this).attr("id&qu ...

  5. linux制做RPM包

    制作rpm包 1.制作流程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好 ...

  6. 【大数据系列】hadoop单机模式安装

    一.添加用户和用户组 adduser hadoop 将hadoop用户添加进sudo用户组 sudo usermod -G sudo hadoop 或者 visudo 二.安装jdk 具体操作参考:c ...

  7. css布局 - 常规上中下分左右布局的一百种实现方法(更新中...)

    一. 上中下左固定 - fixed+margin 概括:如图,此种布局就是顶部.底部和左侧固定不动,只有中间右侧超出可滚动. html: <header>我是头部position: fix ...

  8. 使用 CSS MARK 改变 SVG 背景色

    CSS masks -webkit-mask 这个属性是相当强大的,详细的介绍请到这里查看,它非常值得深入研究. -webkit-mask 让为一个元素添加蒙板成为可能,从而你可以创建任意形状的花样. ...

  9. 原生js--鼠标事件

    鼠标事件对象几个重要的属性: clientX 窗口坐标,加上垂直滚动可以得到文档纵坐标 clientY 窗口坐标,加上水平滚动可以得到文档横坐标 altKey boolean值,点击时是否按下了alt ...

  10. Python安装模块出错(No module named setuptools)解决方法

    Python第三方模块中一般会自带setup.py文件,在Windows环境下,我们只需要在命令行中使用以下命令即可自动化安装 python setup.py install 安装的过程中有可能会出现 ...