zoukankan      html  css  js  c++  java
  • 数据库和struts2的拦截器

    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会默认使用该方法

  • 相关阅读:
    HDU 4819 Mosaic --二维线段树(树套树)
    Codeforces Round #274 Div.1 C Riding in a Lift --DP
    ZOJ 3829 Known Notation --贪心+找规律
    JAVA成员变量和静态变量的区别
    spring注解
    js中double类型的数据加减的时候出错
    js在页面间传值的方法记录
    将表中数据转换成java entity实例
    最近都写APP的接口,有苦说不出啊.
    写于2018年第一场雪----记我的第一年工作
  • 原文地址:https://www.cnblogs.com/demo-deng/p/8133881.html
Copyright © 2011-2022 走看看