深入分析javaweb
从最简单的开发环境搭建讲起,servlet,jsp,cookie,session,http基础详解,再到框架ssh,以及数据库,Ajax讲解等
小平果118
我是一匹奔腾的野马,需要你来征服。。。。。
展开
-
深入分析JavaWeb Item54 -- Spring中的AOP面向切面编程2
一、在Advice方法中获取目标方法的参数1、获取目标方法的信息访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点。JoinPoint里包含了如下几个常用的方法:Object[] getArgs:返回目标方法的参数Signature getSignature:返回目标方法的签名O原创 2016-01-15 20:47:33 · 4320 阅读 · 5 评论 -
深入分析JavaWeb Item53 -- Spring中的AOP面向切面编程1
一、AOP基本概念和Spring对AOP的支持1、AOP的基本概念AOP从运行的角度考虑程序的流程,提取业务处理过程的切面。AOP面向的是程序运行中的各个步骤,希望以更好的方式来组合业务逻辑的各个步骤。AOP框架并不与特定的代码耦合,AOP框架能处理程序执行中特定切入点,而不与具体某个类耦合(即在不污染某个类的情况下,处理这个类相关的切点)。下面是一些AOP的一些术语:切面(Aspect):业务流程原创 2016-01-15 20:20:05 · 3820 阅读 · 0 评论 -
深入分析JavaWeb Item52 -- Spring注解Annotation
一、注解注解Annotation,是一种类似注释的机制,在代码中添加注解可以在之后某时间使用这些信息。跟注释不同的是,注释是给我们看的,java虚拟机不会编译,注解也是不编译的,但是我们可以通过反射机制去读取注解中的信息。注解使用关键字@interface,继承java.lang.annotition.Annotition1、javaSE中的注解先举个例子来回顾一下在javaSE中注解是什么东东,关原创 2016-01-15 11:14:21 · 4786 阅读 · 1 评论 -
深入分析JavaWeb Item51 -- Spring依赖注入
一、依赖注入(DI)依赖注入听起来很高深的样子,其实白话就是:给属性赋值。一共有两种方法,第一是以构造器参数的形式,另外一种就是以setting方法的形式。1 构造器注入1 使用构造器注入使用xml的注入方式A. 通过参数的顺序<constructor-arg index="0"><value>张三</value></constructor-arg><constructor-arg index=原创 2016-01-13 13:43:25 · 9788 阅读 · 3 评论 -
深入分析JavaWeb Item49 -- Struts2中常用标签与主题
一、非UI标签1、property标签property标签用于输出指定值: * default:可选属性, 如果需要输出的属性值为null,则显示该属性指定的值 * escape:可选属性,指定是否格式化HTML代码。 * value: 可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值。2、set标签set标签用原创 2016-01-11 16:31:12 · 10474 阅读 · 2 评论 -
深入分析JavaWeb Item48 -- Struts2中OGNL表达式与ValueStack
一、OGNL表达式1、OGNL表达式介绍OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts2框架使用OGNL作为默认的表达式语言。OGNL相对其它表达式语言具有下面几大优势:1、支持对象方法调用,如xxx.doSomeSpecial(); 2、支持类静态的方法调用和值访问,表达式的格式: @[类全名(包括原创 2016-01-11 15:50:21 · 8988 阅读 · 0 评论 -
深入分析JavaWeb Item47 -- Struts2拦截器与文件上传下载
一、struts2中的拦截器(框架功能核心)1、过滤器VS拦截器过滤器VS拦截器功能是一回事。过滤器是Servlet规范中的技术,可以对请求和响应进行过滤。拦截器是Struts2框架中的技术,实现AOP(面向切面)的编程思想,是可插拔的, 可以对访问某个 Action 方法之前或之后实施拦截。拦截器栈(Interceptor Stack): 将拦截器按一定的顺序联结成一条链. 在访问被拦截的方法时,原创 2016-01-10 14:43:49 · 9442 阅读 · 2 评论 -
深入分析JavaWeb Item46 -- Struts2数据校验与国际化
1、用户输入数据的校验1、校验方式a:客户端校验。(防君子防不了小人)在页面中写js脚本。 这样做的好处是:输入错误的话提醒比较及时;减轻服务器的压力 b、服务器端校验。 数据安全 ,整个应用阻止非法数据的最后防线而在实际开发中通常选择:a+b 2、服务器端数据校验:1、编程式校验:自己Action中编写一个校验代码(缺点:验证规则都写在了代码中)前提:动作类继承ActionSuppor原创 2016-01-09 16:20:42 · 4407 阅读 · 0 评论 -
深入分析JavaWeb Item45 -- Struts2封装请求参数与类型转换
作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中,Struts2提供了非常强大的类型转换机制用于请求数据 到 model对象的封装。1、Struts2 提供三种数据封装的方式Action 本身作为model对象,通过成员setter封装创建独立model对象,页面通过ognl表达式封装使用ModelDriven接口,对请求数据进行封装1. 方式一:在动作类中成员变量给原创 2016-01-08 16:17:33 · 9544 阅读 · 0 评论 -
深入分析JavaWeb Item44 -- Struts2开发核心之动作类Action
一、Action动作类(一般用**Action结尾)struts2 的Action可以是POJO(Plain Old Java Object) 为了让用户开发的Action更加规范struts2提供了一个Action接口通过method属性指定Action执行方法没有指定method属性,默认执行execute方法<action name="addCustomer" class="xgp.stru原创 2016-01-06 11:15:35 · 7709 阅读 · 1 评论 -
深入分析JavaWeb Item43 -- Struts2开发入门
一、Struts2概述1、Struts2是什么?Struts2是一个M(模型—域–范围模型)V(View视图)C(控制器)框架(模型2)。框架都是一个半成品。提高开发效率。Struts1是一个MVC框架,非常流行。有很大的缺点。此时一个webwork的框架设计超前,名气不是很大。Struts1+webworkd=struts2。用的是struts1的名字,但是与sruts1没啥关系,struts2的原创 2016-01-05 12:38:41 · 7610 阅读 · 3 评论 -
深入分析JavaWeb Item42 -- JavaMail创建邮件和发送邮件
一、RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔。 邮件头包含的内容有:from字段 –用于指明发件人to字段 –用于指明收件人subject字段 –用于说明邮件主题cc字段 – 抄送,将邮件发送给收件人的同时抄送给另一个收件人,收件人可以看到邮件原创 2016-01-04 19:22:35 · 8262 阅读 · 5 评论 -
深入分析JavaWeb Item41 -- 邮件的发送与接收原理
一、 邮件开发涉及到的一些基本概念1.1、邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如现在Internet很多提供邮件服务的厂商:sina、sohu、163等等他们都有自己的邮件服务器。 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。 电子邮箱(E-Mail地址)的获得需要在邮件服原创 2016-01-04 19:09:16 · 2092 阅读 · 2 评论 -
深入分析JavaWeb Item40 -- 文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上原创 2015-12-30 21:01:54 · 3349 阅读 · 0 评论 -
深入分析JavaWeb Item39 -- 监听器(Listener)学习进阶
一、监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletReq原创 2015-12-30 13:35:21 · 44484 阅读 · 0 评论 -
深入分析JavaWeb Item38 -- 监听器(Listener)快速学习
一、监听器介绍1.1、监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。1.2、监听器案例——监听window窗口的事件监听器package原创 2015-12-30 11:33:29 · 5250 阅读 · 0 评论 -
深入分析JavaWeb Item37 -- 过滤器Filter典型應用
一、统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题package me.gacl.web.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.Filte原创 2015-12-30 11:16:32 · 1487 阅读 · 0 评论 -
深入分析JavaWeb Item36 -- 过滤器Filter高级应用
在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。一、Decorator设计模式1.1、Decorator设计模式介绍 当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强:编写子类,覆盖需增强的方法。原创 2015-12-28 20:03:16 · 2037 阅读 · 4 评论 -
深入分析JavaWeb Item35 -- 过滤器Filter学习
一、Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Servlet API中提供了一个Filter接口原创 2015-12-28 13:27:30 · 1782 阅读 · 0 评论 -
深入分析JavaWeb Item34 -- DBUtils框架学习
一、commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。commons-dbutilsAPI介绍:org.apache.commons.dbu原创 2015-12-28 13:08:51 · 1797 阅读 · 2 评论 -
深入分析JavaWeb Item33 -- 开发自己简易的JDBC框架
一、元数据介绍 元数据指的是”数据库“、“表“、”列“的定义信息。1.1、DataBaseMetaData元数据 Connection.getDatabaseMetaData()获得代表DatabaseMetaData元数据的DatabaseMetaData对象。 DataBaseMetaData对象的常用方法:getURL():返回一个String类对象,代表数据库的URL。getU原创 2015-12-23 22:02:36 · 9448 阅读 · 0 评论 -
深入分析JavaWeb Item32 -- 数据库连接池
一、应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。如下图所示: 二、使用数据库连接池优化程序性能2.1、数据库连接池的基本概念 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网原创 2015-12-23 13:50:54 · 1684 阅读 · 1 评论 -
深入分析JavaWeb Item31 -- JDBC(MySQL)事务管理
一、事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 例如:A——B转帐,对应于如下两条sql语句 update from account set money=money+100 where name='B';update from account set money=money-100 where name='A';二、MySQL数据库原创 2015-12-20 20:44:07 · 2046 阅读 · 0 评论 -
深入分析JavaWeb Item30 -- 使用JDBC进行批处理
在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。 JDBC实现批处理有两种方式:statement和preparedstatement一、使用Statement完成批处理 1、使用Statement对象添加要批量执行SQL语句,如下: Statement.addBatch(sql1); Stat原创 2015-12-20 10:41:10 · 1541 阅读 · 0 评论 -
深入分析JavaWeb Item29 -- 使用JDBC处理大数据(MySql + Oracle)
一、基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像、声音、二进制文等。 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的。 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为: TINYT原创 2015-12-20 10:32:05 · 1979 阅读 · 0 评论 -
深入分析JavaWeb Item28 -- 使用JDBC对数据库进行CRUD
一、statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。 Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)。 Statement.原创 2015-12-20 10:15:33 · 1500 阅读 · 0 评论 -
深入分析JavaWeb Item27 -- JDBC学习入门
一、JDBC相关概念介绍1.1、数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡,同样道理,我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道,如下所示: 1.2、JDBC介绍 SUN公司为了简化、统一对数原创 2015-12-20 09:44:58 · 1582 阅读 · 0 评论 -
深入分析JavaWeb Item26 -- MySQL 学习笔记
关系化数据模型?常见关系化数据库有哪些? Microsoft SQL Server : 微软公司产品,中等规模数据库 收费产品,运行在windows平台上 — .net平台+SQLServer进行开发 Oracle :甲骨文公司产品,大型商业数据层,收费 运行在任何操作系统上 windows linux — Oracle收购sun(Java) —- Java + Oracle MySQL原创 2015-12-18 16:46:27 · 1267 阅读 · 0 评论 -
深入分析JavaWeb Item25 -- 自定义标签开发案例和打包自定义标签库
一、开发标签库案例1.1、开发防盗链标签 1、编写标签处理器类:RefererTag.javapackage me.gacl.web.simpletag;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;im原创 2015-12-17 10:05:45 · 1556 阅读 · 0 评论 -
深入分析JavaWeb Item24 -- jsp2.X自定义标签开发进阶
一、简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。 实现SimpleTag接口的标签通常称为简单标签。简单标签共定义了5个方法:setJspContext方法setParent和getParen原创 2015-12-16 22:13:33 · 1783 阅读 · 0 评论 -
深入分析JavaWeb Item23 -- jsp自定义标签开发入门
一、自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码。二、自定义标签开发和使用2.1、自定义标签开发步骤 1、编写一个实现Tag接口的Java类(标签处理器类)要编写一个自定义标签,首先要实现一个Tag接口的类。但是Jsp内部已经有实现该接口的类,我们先自己实现一个。package me.gacl.web.tag;import java.io.IOException;impo原创 2015-12-16 20:49:07 · 1724 阅读 · 0 评论 -
深入分析JavaWeb Item22 -- 国际化(i18n)
一、国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。 国际化(internationalization)又称为 i18n(读法为i 18 n,据说是因为internationalization(国际化)这个单词从i到n之间有18个英文字母,i18n的名字由此而来)二、合格的国际原创 2015-12-16 11:21:00 · 2172 阅读 · 0 评论 -
深入分析JavaWeb Item21 -- JSTL核心标签库
一、JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的。使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码。1.1 使用方法外包项目,jsp内部不允许定义脚本元素 <%%> —– 必须用标签库和表达式语言 实现<%%> 代码效果 使用jstl步骤 1、去官网上下载jstl的jar 1.0 1.1 1.2 1.1和1.2 基原创 2015-12-15 21:09:28 · 3034 阅读 · 0 评论 -
深入分析JavaWeb Item20 -- EL表达式和EL函数库
一、EL表达式简介 EL 全名为Expression Language。EL主要作用: 1、获取数据 EL表达式主要用于替换JSP页面中的脚本表达式<%= %>,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)2、执行运算 利用EL表达式可以在JSP页面中执行一些基本的原创 2015-12-15 13:15:02 · 1443 阅读 · 0 评论 -
深入分析JavaWeb Item19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
一、Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。 这里以一个最常用的用户登录注册程序来讲解Servle原创 2015-12-15 12:42:27 · 3590 阅读 · 6 评论 -
深入分析JavaWeb Item18 -- JavaWeb的两种常用开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式。一、JSP+JavaBean开发模式1.1、jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图所示 在jsp+javabean架构中,JSP负责控制逻辑、表现逻辑、业务对象(javabean)的调用。 J原创 2015-12-14 19:01:53 · 3873 阅读 · 0 评论 -
深入分析JavaWeb Item17 -- JavaBean组件
一、什么是JavaBean JavaBean是一个遵循特定写法的Java类,使用它的好处就是解决代码的重复编写,减少代码冗余,功能区分明确,提高代码的维护性!一次编写,到处运行!它通常具有如下特点:javabean(java类)的设计原则:公有类无参构造方法属性私有getter和setter方法(私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规原创 2015-12-13 22:05:52 · 1077 阅读 · 1 评论 -
深入分析JavaWeb Item16 -- jsp 四大域(属性)范围
jsp里面有四大域,作用域从小到大分别是page域,request域,session域,application(servletContext)域,域也可以称为属性范围。所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围。一、JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种:page域——当前页:一个属性只能在一个页面中取得,跳转到其他页面无法原创 2015-12-10 21:06:30 · 2003 阅读 · 1 评论 -
深入分析JavaWeb Item15 -- jsp标签
一、JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。二、JSP常用标签 jsp的常用标签有以下三个<jsp:include>标签 <jsp:forward>标签 <jsp:param>标签2.1、<jsp:include>标签 <jsp:include>标原创 2015-12-10 20:32:08 · 1606 阅读 · 0 评论 -
深入分析JavaWeb Item14 -- jsp九大内置对象
一、JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用。 由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而原创 2015-12-10 19:55:06 · 10570 阅读 · 0 评论