自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 156

原创 【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 290

原创 【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 8002

原创 【mybatis】【延迟加载】【mybatis的缓存机制】

延迟加载默认不打开延迟加载没有管理关联关系的对象,不会有代理对象 settings> setting name="lazyLoadingEnabled" value="true"/> setting name="aggressiveLazyLoading" value="false"/> sett

2018-01-28 13:28:36 353

原创 【mybatis】【配置文件+集成Spring】

简介于Hibernate不同,mybatis集成Spring,也保留了自己的配置文件myBatis的配置文件1.用设置配置的属性 比如:延迟加载的配置项 2.用给非domain设置别名 (domain类的别名在Spring配置文件中设置) 比如:给第三方二级缓存配置别名<!DOCTYPE configuration PUBLIC "-/

2018-01-27 21:58:40 372

原创 【mybatis】【映射文件】【动态sql(高级查询)】

映射文件1.大致结构1.根节点中命名空间=mapper接口全限名 2.子节点 二级缓存的启动 3.子节点 声明属性和列的对应 4.子节点 sql的语句<mapper namespace="UserMapper的全限名"> <!--使用缓存--> <cache/> <!-- 声明属性和列的对应 --> <resultMap/> <!-- sql标签 -->

2018-01-27 19:10:42 1591

原创 【mybatis】【mapper接口代替dao类】【映射文件的参数】

简介在操作对象的增删改时候,//第一个形参:表示要调用的sql语句//第二个形参:表示要传递才参数session.insert("映射文件的命名空间.sql的id值",new User());如此长度的字符串,不适合用.mapper接口代替dao类1.接口UserMapper创建一个接口接口中的方法签名==命名空间+sql标签的id接口中的返回 ==sql标签的返回类型 resultT

2018-01-27 14:15:48 2017

原创 【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 222

原创 【SpringMVC】【拦截器的使用】

applicationContext.xml的配置 mvc:interceptors> mvc:interceptor> mvc:mapping path="/user/*"/> bean class="common.interceptor.LoginInterceptor">

2018-01-23 21:36:04 178

原创 【SpringMVC】【文件上传和下载】

文件上传1.applicationContext.xml声明文件上传解析器id值是固定的 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸为1MB -->

2018-01-23 20:43:48 174

原创 【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 6505 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 4446

原创 【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 201

原创 【菜单管理】【应用到界面的菜单链】

分析每个菜单对象,有一个url属性.对应着连接.请求到action;根据请求的url,从数据得到菜单对象.在网页上输出菜单对象对应的菜单链.菜单对象的dao//添加根据url查询菜单的dao方法 public SystemMenu get(String url) { Session session = sessionFactory.getCurrentSession(

2018-01-18 12:34:06 557

原创 【菜单管理】【菜单的crud】

分析实现当前目录的功能. 响应时候,给页面传递一个菜单对象,表示当前列表的父菜单.菜单类中有一个属性为parent,代表父菜单对象提供了一个方法,返回自己+父菜单的集合.对集合遍历输出即可实现查看下级菜单功能. 菜单对象的高级查询中,添加parentId, 对应条件语是o.parent.id=XX,即根据父菜单id查子菜单在超链接中添加参数,为query.parentId.(当前行菜

2018-01-18 12:17:13 1449

原创 【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 272

原创 【freemarker】【代码生成器】

数据模型的类作用,是生成目标文件的数据模型.传入domain类,返回其数据模型的封装类构造器提供domain类的Class对象.propNames:属性List className:简单名的字符串(首字母大写)basePackage:基础包的字符串例: 传入一个类com.lwf.domain.Employee的Class对象,生成ci对象 * ci.basePacka

2018-01-15 15:13:47 199

原创 【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 437

原创 【js】【前台输入效验】【validate插件的使用】

validate的内建效验规则required:true        必输字段remote:”check.php”   使用ajax方法调用check.php验证输入值email:true         必须输入正确格式的电子邮件url:true         必须输入正确格式的网址date:true         必须输入正确格式的日期dat

2018-01-14 20:40:04 560

原创 【Sturts2】【信息传递】【store拦截器】

在Struts中,向jsp传递的信息有三种Action错误;addActionError(aMessage);Action信息; addActionMessage(aMessage);字段错误 ;字段错误常用于后台输入效验 this.addFieldError(fieldName, errorMessage); 参考后台输入效验Action信息和Action错误,是用于信息

2018-01-14 12:33:54 360

原创 【权限】【检查权限的拦截器】

环境准备员工已经登入.将员工对应的权限表达式集合存入session,(EXPS_IN_SESSION)检查权限拦截器放行条件:该Action不需要权限就可以访问 (访问的方法,没有被注解)该员工是超级管理员 该员工拥有此权限 (session中的权限表达式列表,有访问的方法对应的表达式)public class PermissionCheckIntercep

2018-01-11 19:06:49 391

原创 【权限】【处理登入信息】

简介权限系统处理登入信息:通过帐号密码,获得对应的员工对象,存入session从员工对象中得到该员工的权限表达式的集合,存入session.准备工作方法:得到权限表达式的集合的方法 creatEXPs(List<Role>)放在PermissionUtil类中 public static Set<String> creatEXPs(List<Role> roles){

2018-01-11 18:32:59 174

原创 【权限管理】【权限列表的移动】

背景在给角色配置权限时候,会涉及到权限列表的移动.注意点:如何传递未有的权限到jsp提交表单:如何将权限列表注入角色的属性.提交表单:如何对拥有的权限select列表的全部选择后再提交若使用paramsPrepareParamsStack拦截器,会注入两次权限列表,所以要在prepareSave方法中role.getPermissions().clear();传递

2018-01-10 17:45:19 680

原创 【权限管理】【权限的加载】

准备工作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 499

原创 【Strurts2】【编辑提交后的数据丢失】【prepare拦截器】

简介编辑界面提交后,一些没有被编辑的属性,会设为null而提交,导致该属性的数据丢失.(对象id,依然要用hidden标签来写出)prepare拦截器作用:在执行某方法前,会先执行该拦截器的方法;思路:修改操作执行顺序: 在执行修改Action方法前注入参数,获得id通过prepare拦截器的方法,得到该id对应的对象再次注入参数,将该对象修改过的属性覆盖,(没修改过

2018-01-08 10:45:29 169

原创 【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 152

原创 【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 344

原创 【Struts2】【后台输入效验】【validation拦截器】

原理:后台输入效验,是在Action类已经得到参数后,在使用参数前,判断参数是否符合业务要求,不符合,跳转到别的逻辑视图 注意点:判断时候要判断是否为空,防止空指针异常输入效验的拦截器validation拦截器: 将错误原因存入fieldErrors中 workflow拦截器 判断fieldErrors是否有错误信息,若有,就return “input”;(默认逻辑视

2018-01-05 11:30:50 739

原创 【Struts】【登入拦截器】

拦截器,会对所有的action进行拦截,然后根据业务逻辑,对一些action放行.登入拦截器,不需要拦截的action:请求到登入界面的action : 逻辑视图 请求转发 login.jsp;处理登入信息的action: 逻辑视图 重定向 到主界面的action(重点)拦截器类实现接口AbstractInterceptor,并覆盖方法通过全局字段的setter方

2018-01-05 10:04:33 161

原创 【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 782

原创 【Struts2】【Action类】【获得req与resp对象】

通过servletActionContext类获取 HttpServletRequest req= ServletActionContext.getRequest(); HttpServletResponse resp = ServletActionContext.getResponse();通过实现感知接口来获取ServletRequestAware:req的感知接口

2018-01-04 19:30:02 250

原创 【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 297

原创 【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 149

原创 【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 178

原创 【Hibernate】【乐观锁,悲观锁】

事务并发的五类问题第一类丢失更新:两个事务同时更新一个数据,A提交,B回滚,数据回滚第二类 丢失更新:两个数据同时关系一个数据,A晚提交,B早提交,B无效脏读:一个事务内,读取了事务B未提交的数据.(结果事务B回滚,该事务就用了脏数据)虚读:一个事务内,前后读取不一致,(期间有人增加过数据)不可重复读:一个事务内两次读取同一条数据,返回结果不相同.(期间有人修改过该数据)MySQL的隔离

2018-01-03 13:12:22 159

原创 【Hibernate】【一,二,三级缓存】

一级缓存一级缓存生命周期跟一个session的生命周期相同,最多一个请求一级缓存就是一个Map对象.作用:便于对对象的管理用session查询的对象,其实都是一级缓存的数据原理:用seession取对象A:生成key==A类全限名+#A.id值从一级缓存的map中找该key.若没有找到,从数据中查找,并以查找到的对象为value,存入map.若有找到,直接返回一级缓存中的对象,不再发

2018-01-03 11:21:29 3434

原创 【Hibernate】【对象四大状态】

在Hibernate,会有编码顺序和SQL语句顺序不一致情况,要从对象状态角度思考;session的方法,导致对象状态的改变,从而才发送SQL临时状态无id,数据库中没有对应的值new 出一个对象后 删除状态的事务提交后 持久化状态存于Hibernate的一级缓存中,数据库有对应的值,被Hibernate管理save,get,load,query.list,update 执行这些方法后,操

2018-01-03 10:54:23 137

原创 【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 140

原创 【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 354

原创 【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 100

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除