自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 <看透SpringMVC源码分析>---第六章 Servlet

Servlet是Server + Applet的缩写,表示一个服务器应用.Servlet其实就是一套规范,我们按照这套规范写的代码就可以直接在Java的服务器上面运行.如下图所示的是Servlet3.1中Servlet的结构图一,Servlet接口public interface Servlet { /* init方法在容器启动时被容器调用(注:load-on-startup可以指定S

2018-02-08 14:11:42 194

原创 MySQL(十)---流程控制结构

(一)分支结构特点:1、if函数功能:实现简单双分支语法:if(条件,值1,值2)位置:可以作为表达式放在任何位置2、case结构功能:实现多分支语法1:case 表达式或字段when 值1 then 语句1;when 值2 then 语句2;..else 语句n;end [case];语法2:case when 条件

2018-01-31 11:32:20 298

原创 MySQL(九)---函数

一、创建create function 函数名(参数名 参数类型) returns  返回类型begin    函数体end注意:函数体中肯定需要有return语句二、调用select 函数名(实参列表);三、查看show create function 函数名;四、删除drop function 函数名;

2018-01-31 11:30:01 238

原创 MySQL(八)--存储过程

一、创建 create procedure 存储过程名(参数模式 参数名 参数类型)begin        存储过程体end注意:1.参数模式:in、out、inout,其中in可以省略2.存储过程体的每一条sql语句都需要用分号结尾二、调用call 存储过程名(实参列表)举例:调用in模式的参数:call sp1(‘值’);调用out模式的参

2018-01-31 11:29:06 230

原创 MySQL(七)---变量

一、全局变量作用域:针对于所有会话(连接)有效,但不能跨重启    查看所有全局变量    SHOW GLOBAL VARIABLES;    查看满足条件的部分系统变量    SHOW GLOBAL VARIABLES LIKE '%char%';    查看指定的系统变量的值    SELECT @@global.autocommit;    为某个系统

2018-01-31 11:27:01 188

原创 MySQL(六)---视图

一、含义mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。好处:1、简化sql语句2、提高了sql的重用性3、保护基表的数据,提高了安全性二、创建create view 视图名as查询语句;三、修改方式一:create or replace view 视图名as查询语句;方式二:alte

2018-01-31 11:22:49 270

原创 MySql(四)---DDL语言

DDL(Data Define Languge):数据定义语言(一)库的管理一、创建库create database 【if not exists】 库名【 character set 字符集名】;二、修改库alter database 库名 character set 字符集名;三、删除库drop database 【if exists】 库名;(二)表的管理

2018-01-30 11:27:34 151

原创 MySQL(三)---DML语言

DML(Data Manipulate Language):数据操作语言 (一)插入 一、方式一 语法: insert into 表名(字段名,…) values(值,…); 特点: 1、要求值的类型和字段的类型要一致或兼容 2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致 但必须保证值和字段一一对应 3、假如表中有可以为null的字段,注意可以通过以下两种方式插入nul

2018-01-21 15:37:21 168

原创 Spring(六)---面向切面编程(2)

(五)在XML中声明切面 Spring的AOP配置原素能够以非侵入性的方式声明切面 AOP配置元素 用途 定义AOP通知器 定义后置通知 定义AOP返回通知 定义AOP异常通知 定义AOP环绕通知 定义一个切面 启用@AspectJ注解驱动的切面 定义AOP前置通知

2017-12-28 15:37:07 172

原创 MySQL(二)---DQL语言

DQL(Data Query Language):数据查询语言 (一)基础查询 一、语法 select 查询列表 from 表名; 二、特点 1、查询列表可以是字段、常量、表达式、函数,也可以是多个 2、查询结果是一个虚拟表三、示例 1、查询单个字段 select 字段名 from 表名; 2、查询多个字段 select 字段名,字段名 from 表名; 3、查询所有字

2017-12-27 09:41:03 609

原创 MySQL基础(一)---概述

(一)概述: 1、DB (database):数据库,存储数据的容器; 2、DBMS(Database Management System):数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB,常见的数据库管理系统:MySQL 、Oracle 、DB2 、SqlServer等; 3、SQL( Structure Query Language):结构化查询语言,用于和数据库通信的语

2017-12-27 09:23:14 183

原创 Spring(五)---面向切面的编程(1)

(一)什么是AOP? AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次

2017-12-22 16:59:39 448

原创 Spring(四)---高级装配(2)

(四)运行时值的注入 (1)注入外部的值 在Spring中,处理外部值的最简单的方式就是声明属性源并通过Spring的Environment来检索属性 —->深入了解Spring的Environment getProperty()的四个重载的形式: 例//getProperty(string key)Enviroment env;env.getProperty(disc.tit

2017-12-21 18:12:22 353

原创 Spring(三)---Spring的高级装配(1)

(一)Spring Profile 背景:在软件开发过程中,最大的挑战是从一个环境迁移到另一个环境中,某些环境相关的做法可能并不适合迁移到生产环境中,甚至迁移过去也无法正常工作.如数据库配置,加密算法以及与外部系统的集成是跨环境部署时会发生变化的几个典型例子. 例: 由于我们平时在开发中,通常会出现在开发的时候使用一个开发数据库,测试的时候使用一个测试的数据库,而实际部署的时候需要一个数据库。

2017-12-21 16:42:20 208

原创 Spring(二)---装配Bean

(一)Spring容器 (1)概述 在基于Spring的应用中,应用对象生存于Spring容器(container)中,Spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期,从生存到死亡.容器是Spring框架的核心.Spring容器使用DI(即IOC)管理构成应用的组件,它会创建相互协作的组件之间的关联. (2)Spring容器的种类 Spring容

2017-12-14 11:30:20 199

原创 Spring(一)---Spring概述

(一)Spring是什么? · Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. · 具体描述 Spring:轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API;依赖注入(DI — dependency injection、IOC);面向

2017-12-11 13:42:58 218

原创 Struts2(十五)---验证码

第一步:生成验证码图片以及随机产生四位字母import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import java.aw

2017-12-08 17:53:18 168

原创 Hibernate(九)---批量处理

· 批量处理数据是指在一个事务中处理大量数据. · 在应用层进行批量操作, 主要有以下方式:通过 Session通过 HQL通过 StatelessSession通过 JDBC API( 效率最高, 速度最快)(一)通过 Session 来进行批量操作 · Session 的 save() 及 update() 方法都会把处理的对象存放在自己的缓存中. 如果通过一个 Session 对

2017-12-08 14:47:32 290

原创 Hibernate(八)---管理Session

· Hibernate 自身提供了三种管理 Session 对象的方法Session 对象的生命周期与本地线程绑定Session 对象的生命周期与 JTA 事务绑定Hibernate 委托程序管理 Session 对象的生命周期· 在 Hibernate 的配置文件中, hibernate.current_session_context_class 属性用于指定 Session 管理方式,

2017-12-08 14:35:45 166

原创 Hibernate(七)---二级缓存

(一)Hibernate缓存概述 · 缓存(Cache): 计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝。缓存的物理介质通常是内存。 · Hibernate中提供了两个级别的缓存 第一级别的缓存是 Session 级别的缓存,它是属于事

2017-12-08 14:22:44 136

原创 Hibernate(六)---检索方式

(一)HQL检索方式 (1)HQL概述 · HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. 它有如下功能:在查询语句中设定各种查询条件支持投影查询, 即仅检索出对象的部分属性支持分页查询支持连接查询支持分组查询, 允许使用 HAVIN

2017-12-08 11:18:57 241

原创 Hibernate(五)---检索策略

(一)类级别的检索策略 · 类级别可选的检索策略包括立即检索和延迟检索, 默认为延迟检索;立即检索: 立即加载检索方法指定的对象;延迟检索: 延迟加载检索方法指定的对象。在使用具体的属性时,再进行加载· 类级别的检索策略可以通过 <class> 元素的 lazy 属性进行设置; · 无论 <class> 元素的 lazy 属性是 true 还是 false, Session 的 get()

2017-12-06 20:35:39 208

原创 Hibernate(四)---映射关系

(一)映射组成关系 · Hibernate把持久化类的属性分为两种:值(value)类型:没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类的对象的生命周期.实体(entity)类型: 有 OID, 可以被单独持久化, 有独立的生命周期. · Hibernate 使用 <component> 元素来映射组成关系, 该元素表名 pay 属性是 Worker 类一个组成部分

2017-12-05 22:21:10 321

原创 Hibernate(三)---通过Session操纵持久化对象

(一)Session概述 · Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数据库中的相关记录对应. · 站在持久化的角度, Hibernate 把对象分为 4 种状态: 持久化状态, 临时状态, 游离状态, 删除状态. Session 的特定方法能使对象从一个状态转换到另一个状态. (二)操作Session缓存 (1)flush缓存 flush: 使数据表中

2017-12-05 17:05:58 237

原创 Hibernate(二)---Hibernte的开发步骤

①创建持久化Java类 · 提供一个无参的构造器:使Hibernate可以使用Constructor.newInstance() 来实例化持久化类。 · 提供一个标识属性(identifier property): 通常映射为数据库表的主键字段. 如果没有该属性,一些功能将不起作用,如:Session.saveOrUpdate()。 · 为类的持久化类字段声明访问方法(get/set): Hi

2017-11-30 17:17:43 395

原创 Hibernate(一)---Hibernate简介

(一)Hibernate概述 Hibernate是一个Java领域的持久化的ORM框架; (1)对象的持久化 · 狭义的理解:“持久化”仅仅把对象永久保存到数据库中; · 广义的理解: “持久化”包括和数据库相关的各种操作: ~ 保存:把对象永久保存到数据库中。 ~更新:更新数据库中对象(记录)的状态。 ~ 删除:从数据库中删除一个对象。 ~ 查询:

2017-11-30 13:25:20 190

原创 Struts2(十四)---文件的上传与下载

(一)文件的上传 (1)表单的准备 ~须把HTML表单的entype属性设置为multipart/form-data. ~须把HTML表单的method属性设置为post. ~须添加<input type="file">字段. (2)Struts2对文件上传的支持 · 在Struts应用程序里,FileUpload拦截器和Commons FileUpload组件可以完成文件的上传. ·

2017-11-28 17:47:12 231

原创 Strus2(十三)---输入验证

(1)struts2的输入验证 —基于Xwork Validation Framework的声明式验证,需要声明的内容包括 ~~对哪个Action或Model的哪个字段进行验证; ~~使用什么验证规则; ~~如果验证失效,转向哪一个页面,显示是什么错误消息; —编程式验证 ~~可以使Action类实现Validateab

2017-11-23 17:49:01 344

原创 Struts2(十二)---运行流程

(一)运行流程图 (二)运行流程详解 ① client初始化一个指向Servlet容器(比如Tomcat)的请求;② 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其它框架的集成非常有帮助,比如:SiteMesh Plugin);注:从struts2.1.3后就不须要配置ActionCo

2017-11-23 17:19:48 141

原创 Struts2(十二)---消息处理与国际化

(1)如何配置国际化资源文件 I Action范围的国际化资源文件:在Action类文件中所在的路径建立名为ActionName_language_country.properties的文件. II 包范围资源文件:在包的根路径下建立名为Package_language_country.properties的属性文件,一旦建立处于该包下的所有Action都可以访问该资源文件.注意:包范围资源文

2017-11-23 16:43:01 209

原创 Struts2(十一)---类型转换

(1)概述 · 从一个HTML表单到一个Action对象,类型转换是从字符串到非字符串. · HTTP没有”类型”的概念,每一项表单输入只可能是一个字符串或者字符串数组.在服务端,必须把String转换为特定的数据类型. .在Struts2中把请求参数映射到action属性的工作由ParametersInterceptor负责,它是默认的defaultStack拦截器中的一员.P

2017-11-23 14:54:04 202

原创 Struts2(十)---拦截器

一,Struts2拦截器简述 · 拦截器(Interceptor)是Struts2的核心组成部分。 · Struts2很多功能都是构建在拦截器之上的,例如文件的上传和下载,国际化,数据类型的转换和数据校验等。 · Struts2拦截器在访问某个Action方法之前或之后实施拦截。 · Struts2拦截器是可插拔的,拦截器是AOP(面向切面编程

2017-11-23 11:28:51 233

原创 Struts2(九)---简述ActionProxy和ActionInvocation

· ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocation.invoke()方法 · ActionInvocation就是Action的调用者.ActionInvocation在Action的执行过程中,负责Inteceptor,A

2017-11-22 17:08:29 693

原创 Maven详述

(一)Maven简介 Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建 项目构建和依赖管理 . (二)何为构建 构建就是以我们编写的 Java 代码、框架配置文件、国际化等其他资源文件、JSP 页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程 . 可以从以下几个方

2017-11-14 20:45:42 225

原创 Struts2(八)---通用标签&表单标签

前言:若需要使用Struts2的标签,需要添加<%@ taglib uri="/struts-tags" prefix="s" %> 一:通用标签 (1)property标签:用来输出一个值栈属性的值 名字 类型 默认值 说明 default String 如果value值没有给定或为null,将显示该属性值 esxape boolean true

2017-11-09 16:10:17 459

原创 Struts2(七)---异常处理

· exception-mapping元素 : 配置当前action的声明式异常处理 · exception-mapping元素中有两个属性 –exception : 指定需要捕获的异常类型的全类名. –result : 指定一个响应结果,该结果将在捕获到指定异常时被执行,既可以来自当前action的声明,也可以来自global-results声明 例<action name="

2017-11-09 14:07:49 196

原创 Struts2(六)---OGNL

OGNL(Object-Graph Navigation Language:对象-图导航语言)访问到值栈(ValueStack)里的对象属性. (1)值栈中的属性值 ~~对于对象栈:对象栈中某一个对象的属性值. ~~Map栈:request,session,application的一个属性值或一个请求参数的值. 注:若希望访问值栈中Map栈中的数据,需要给OGNL表达式加上一个前

2017-11-08 17:20:23 196

原创 Struts2(五)---值栈

~ 值栈是存放action的堆栈. ~ ValueStack(值栈):贯穿整个Action的生命周期(每个Action类的对象实例都拥有一个ValueStack对象)相当于一个数据中转站,在其中保存当前Action对象和其他相关对象. ~ Struts框架把ValueStack对象保存在名为”Struts.ValueStack”的请求属性中. ~ 值栈分为两个逻辑部分 Map栈:实际

2017-11-08 10:30:09 177

原创 Struts2(五)---通配符映射

(一)概述与映射规则 * 一个web应用可能有成百上千个action声明,可以利用struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系. * 通配符映射规则 - 若找到多个规则,没有通配符的胜出. - 若指定的动作不存在,Struts将会尝试把这个URI与任何一个包含着通配符*的动作名进行匹配. - 被通配符匹配到的URI字符串的子

2017-11-07 15:10:03 230 1

原创 Struts2(四)请求的扩展名问题

①org.apache.struts2包下的default.properties中配置了struts2应用的一些常量; ②struts.action.extension定义了当前struts应用可以接受的请求的扩展名; ③可以在struts.xml文件中以常量配置的方式修改default.properties所配置的常量;<constant name="struts.action.extensi

2017-11-07 14:34:25 217

空空如也

空空如也

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

TA关注的人

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