- 博客(73)
- 收藏
- 关注

原创 【Struts2】【配置文件struts.xml】
开头<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">实体struts> constant name="struts
2018-01-04 10:56:29
178

原创 【Spring】【环境搭建】【applicationContext.xml文件的部署+web.xml部署】
applicationContext.xml文件的部署1.声明命名空间tx+beans+context+aop"http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.spring
2017-12-29 11:09:22
329
原创 【mybatis】【对象属性关系的映射】
many2one案例:员工中有部门属性.1.查询完员工后,再发查询部门的sql.在员工的映射文件中,添加属性关系的映射.<resultMap type="User" id="user_mapping"> <association property="dept" column="dept_id" select="com.lwf.mybatis.hallo.DeptmentMa
2018-01-28 21:06:26
8086
原创 【mybatis】【延迟加载】【mybatis的缓存机制】
延迟加载默认不打开延迟加载没有管理关联关系的对象,不会有代理对象 settings> setting name="lazyLoadingEnabled" value="true"/> setting name="aggressiveLazyLoading" value="false"/> sett
2018-01-28 13:28:36
378
原创 【mybatis】【配置文件+集成Spring】
简介于Hibernate不同,mybatis集成Spring,也保留了自己的配置文件myBatis的配置文件1.用设置配置的属性 比如:延迟加载的配置项 2.用给非domain设置别名 (domain类的别名在Spring配置文件中设置) 比如:给第三方二级缓存配置别名<!DOCTYPE configuration PUBLIC "-/
2018-01-27 21:58:40
411
原创 【mybatis】【映射文件】【动态sql(高级查询)】
映射文件1.大致结构1.根节点中命名空间=mapper接口全限名 2.子节点 二级缓存的启动 3.子节点 声明属性和列的对应 4.子节点 sql的语句<mapper namespace="UserMapper的全限名"> <!--使用缓存--> <cache/> <!-- 声明属性和列的对应 --> <resultMap/> <!-- sql标签 -->
2018-01-27 19:10:42
1638
原创 【mybatis】【mapper接口代替dao类】【映射文件的参数】
简介在操作对象的增删改时候,//第一个形参:表示要调用的sql语句//第二个形参:表示要传递才参数session.insert("映射文件的命名空间.sql的id值",new User());如此长度的字符串,不适合用.mapper接口代替dao类1.接口UserMapper创建一个接口接口中的方法签名==命名空间+sql标签的id接口中的返回 ==sql标签的返回类型 resultT
2018-01-27 14:15:48
2085
原创 【mybatis】【第一个Helloworld】【控制台显示sql】
使用的包domain类public class User implements Serializable{ private Long id; private String name; private Integer age =(int)(Math.random()*20); private Date birthday
2018-01-27 13:45:40
251
原创 【SpringMVC】【拦截器的使用】
applicationContext.xml的配置 mvc:interceptors> mvc:interceptor> mvc:mapping path="/user/*"/> bean class="common.interceptor.LoginInterceptor">
2018-01-23 21:36:04
205
原创 【SpringMVC】【文件上传和下载】
文件上传1.applicationContext.xml声明文件上传解析器id值是固定的 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸为1MB -->
2018-01-23 20:43:48
201
原创 【SpringMVC】【请求转发和重定向】
视图解析器 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/"/> <property name="suffix" value=".jsp"/> </b
2018-01-23 17:15:01
6593
1
原创 【SpringMVC】【接收前台参数】【向前台传递参数】
接收前台参数jsp中,传递的参数为:username=Armo.age=18. 姓名:<input type="text" name="username" value="Armo"> 年龄:<input type="text" name="age" value="18">方式1:用req手动提取 @RequestMapping("/method1") public
2018-01-23 13:42:23
4505
原创 【SpringMVC】【web和ApplicationContext.xml文件的配置】
使用的包web.xml启动服务器时候,启动Spring容器utf-8配置<web-app><!-- 配置前端控制器 --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</s
2018-01-23 11:18:18
235
原创 【菜单管理】【应用到界面的菜单链】
分析每个菜单对象,有一个url属性.对应着连接.请求到action;根据请求的url,从数据得到菜单对象.在网页上输出菜单对象对应的菜单链.菜单对象的dao//添加根据url查询菜单的dao方法 public SystemMenu get(String url) { Session session = sessionFactory.getCurrentSession(
2018-01-18 12:34:06
603
原创 【菜单管理】【菜单的crud】
分析实现当前目录的功能. 响应时候,给页面传递一个菜单对象,表示当前列表的父菜单.菜单类中有一个属性为parent,代表父菜单对象提供了一个方法,返回自己+父菜单的集合.对集合遍历输出即可实现查看下级菜单功能. 菜单对象的高级查询中,添加parentId, 对应条件语是o.parent.id=XX,即根据父菜单id查子菜单在超链接中添加参数,为query.parentId.(当前行菜
2018-01-18 12:17:13
1499
原创 【freemarker】【代码生器的模版】
目录一个domain类,需要的其他代码文件: 创建的8个文件DAO接口DAO实现类映射文件Service接口Service 实现类Action类list.jspinput.jsp添加的3个beandao的beanservice的beanaction的bean共需要11个模版 模版中的数据假设传递的domain类为 com.lwf.domain.Employee${cl
2018-01-15 22:05:04
303
原创 【freemarker】【代码生成器】
数据模型的类作用,是生成目标文件的数据模型.传入domain类,返回其数据模型的封装类构造器提供domain类的Class对象.propNames:属性List className:简单名的字符串(首字母大写)basePackage:基础包的字符串例: 传入一个类com.lwf.domain.Employee的Class对象,生成ci对象 * ci.basePacka
2018-01-15 15:13:47
241
原创 【freemarker】【代码生成器的halloWorld】【数据模型的规则】
环境准备导入包 freemarker.jar (struts2自带)代码生成器的halloWorld案例:每个IXXXDAO都要继承于泛型dao接口,比如package com.lwf.dao; //包所在目录import com.lwf.domain.Permission; //引用的domain包public interface IPermissionD
2018-01-15 12:35:50
472
原创 【js】【前台输入效验】【validate插件的使用】
validate的内建效验规则required:true 必输字段remote:”check.php” 使用ajax方法调用check.php验证输入值email:true 必须输入正确格式的电子邮件url:true 必须输入正确格式的网址date:true 必须输入正确格式的日期dat
2018-01-14 20:40:04
631
原创 【Sturts2】【信息传递】【store拦截器】
在Struts中,向jsp传递的信息有三种Action错误;addActionError(aMessage);Action信息; addActionMessage(aMessage);字段错误 ;字段错误常用于后台输入效验 this.addFieldError(fieldName, errorMessage); 参考后台输入效验Action信息和Action错误,是用于信息
2018-01-14 12:33:54
416
原创 【权限】【检查权限的拦截器】
环境准备员工已经登入.将员工对应的权限表达式集合存入session,(EXPS_IN_SESSION)检查权限拦截器放行条件:该Action不需要权限就可以访问 (访问的方法,没有被注解)该员工是超级管理员 该员工拥有此权限 (session中的权限表达式列表,有访问的方法对应的表达式)public class PermissionCheckIntercep
2018-01-11 19:06:49
428
原创 【权限】【处理登入信息】
简介权限系统处理登入信息:通过帐号密码,获得对应的员工对象,存入session从员工对象中得到该员工的权限表达式的集合,存入session.准备工作方法:得到权限表达式的集合的方法 creatEXPs(List<Role>)放在PermissionUtil类中 public static Set<String> creatEXPs(List<Role> roles){
2018-01-11 18:32:59
209
原创 【权限管理】【权限列表的移动】
背景在给角色配置权限时候,会涉及到权限列表的移动.注意点:如何传递未有的权限到jsp提交表单:如何将权限列表注入角色的属性.提交表单:如何对拥有的权限select列表的全部选择后再提交若使用paramsPrepareParamsStack拦截器,会注入两次权限列表,所以要在prepareSave方法中role.getPermissions().clear();传递
2018-01-10 17:45:19
740
原创 【权限管理】【权限的加载】
准备工作1.权限的类public class Permission{ private Long id; private String name; private String expression;}2.权限的的映射"domain"> class name="Permission" table="permission"> i
2018-01-09 22:21:32
542
原创 【Strurts2】【编辑提交后的数据丢失】【prepare拦截器】
简介编辑界面提交后,一些没有被编辑的属性,会设为null而提交,导致该属性的数据丢失.(对象id,依然要用hidden标签来写出)prepare拦截器作用:在执行某方法前,会先执行该拦截器的方法;思路:修改操作执行顺序: 在执行修改Action方法前注入参数,获得id通过prepare拦截器的方法,得到该id对应的对象再次注入参数,将该对象修改过的属性覆盖,(没修改过
2018-01-08 10:45:29
194
原创 【Struts2】【Struts2的OGNL表达式】
简介el表达式${属性}取值顺序:request>>Context>>Root标签下的action,直接使用action名即可,不需要上下文路径和命名空间.表单具有自动回写功能.1.通用标签1. 判断执行体request.setAttribute("num", 100); %>s:if test="#request.num>50">大于50s:if>
2018-01-05 20:49:27
197
原创 【Struts2】【文件的上传和下载】【fileUpload拦截器】
文件上传1.jsp的设置enctype=”multipart/form-data” 上传必备method=”post”使用s:form action="/Upload" method="post" enctype="multipart/form-data" theme="simple"> 选择图片:s:file name="myPicture" />br/>s:
2018-01-05 13:45:01
403
原创 【Struts2】【后台输入效验】【validation拦截器】
原理:后台输入效验,是在Action类已经得到参数后,在使用参数前,判断参数是否符合业务要求,不符合,跳转到别的逻辑视图 注意点:判断时候要判断是否为空,防止空指针异常输入效验的拦截器validation拦截器: 将错误原因存入fieldErrors中 workflow拦截器 判断fieldErrors是否有错误信息,若有,就return “input”;(默认逻辑视
2018-01-05 11:30:50
818
原创 【Struts】【登入拦截器】
拦截器,会对所有的action进行拦截,然后根据业务逻辑,对一些action放行.登入拦截器,不需要拦截的action:请求到登入界面的action : 逻辑视图 请求转发 login.jsp;处理登入信息的action: 逻辑视图 重定向 到主界面的action(重点)拦截器类实现接口AbstractInterceptor,并覆盖方法通过全局字段的setter方
2018-01-05 10:04:33
240
原创 【Struts2】【Action类】【值栈=Context+Root】
值栈每一次请求都会创建一个值栈对象,用于封装请求的所有数据. 值栈分为两个部分Context+rootJSP中查看值栈 <%@taglib prefix="s" uri="/struts-tags"%> <s:debug/>Action类中获取值栈 3个方式(了解)//通过req获取值栈HttpServletRequest req= ServletActionContext.g
2018-01-04 19:59:32
848
原创 【Struts2】【Action类】【获得req与resp对象】
通过servletActionContext类获取 HttpServletRequest req= ServletActionContext.getRequest(); HttpServletResponse resp = ServletActionContext.getResponse();通过实现感知接口来获取ServletRequestAware:req的感知接口
2018-01-04 19:30:02
282
原创 【Struct2】【Action类】【自动获取请求参数】
1.获取请求参数(字段)对每个参数设置setter方法,由拦截器使参数注入jsp穿来空字符串或空格,接收的参数为nulljsp中<s:form action="/myMaven/Employee"> 帐号<s:textfield name="username"/><br> 密码<s:password name="password"/><br> <s:submit v
2018-01-04 18:32:31
319
原创 【Strust2】【package,action,result】
布局struts> package> global-results> result name="error">XXXresult> result name="login">XXXresult> global-results> global-
2018-01-04 13:46:51
219
原创 【Struts2】【常量配置】
常量配置的文件修改常量配置方式一 在struts.xml文件中修改<struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <constant name="struts.cus
2018-01-04 09:47:01
212
原创 【Hibernate】【乐观锁,悲观锁】
事务并发的五类问题第一类丢失更新:两个事务同时更新一个数据,A提交,B回滚,数据回滚第二类 丢失更新:两个数据同时关系一个数据,A晚提交,B早提交,B无效脏读:一个事务内,读取了事务B未提交的数据.(结果事务B回滚,该事务就用了脏数据)虚读:一个事务内,前后读取不一致,(期间有人增加过数据)不可重复读:一个事务内两次读取同一条数据,返回结果不相同.(期间有人修改过该数据)MySQL的隔离
2018-01-03 13:12:22
200
原创 【Hibernate】【一,二,三级缓存】
一级缓存一级缓存生命周期跟一个session的生命周期相同,最多一个请求一级缓存就是一个Map对象.作用:便于对对象的管理用session查询的对象,其实都是一级缓存的数据原理:用seession取对象A:生成key==A类全限名+#A.id值从一级缓存的map中找该key.若没有找到,从数据中查找,并以查找到的对象为value,存入map.若有找到,直接返回一级缓存中的对象,不再发
2018-01-03 11:21:29
3490
原创 【Hibernate】【对象四大状态】
在Hibernate,会有编码顺序和SQL语句顺序不一致情况,要从对象状态角度思考;session的方法,导致对象状态的改变,从而才发送SQL临时状态无id,数据库中没有对应的值new 出一个对象后 删除状态的事务提交后 持久化状态存于Hibernate的一级缓存中,数据库有对应的值,被Hibernate管理save,get,load,query.list,update 执行这些方法后,操
2018-01-03 10:54:23
170
原创 【Hibernate】【映射文件】【关系映射】
关系映射:即需要映射的属性,是一个实例对象.如员工的部门属性.单向多对一(常用)MySQL的表格 员工类中的属性 private Department dept;//dept_id属性的映射 由员工管理,在员工的映射文件设置<many-to-one name="dept" column="dept_id"/>案例1有一个员工A属于部门B,两者都没有存入数据库 情况1:sessio
2018-01-02 15:04:19
174
原创 【Hibernate】【映射文件】【主键+普通属性+枚举属性的映射】
开头<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC '-//Hibernate/Hibernate Mapping DTD 3.0//EN' 'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'>实体<hibe
2018-01-02 10:53:01
390
原创 【Hibernate】【配置文件】【基于Spring】
模版<!-- sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <!--1.注入连接池bean--> <property name="dataSource" ref="dataSource
2018-01-02 09:54:26
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人