- 博客(115)
- 资源 (3)
- 收藏
- 关注
原创 (一)传统数据层开发问题分析
1.分析纯粹的数据层的开发问题2.项目中的合理数据层设计具体内容 Hibernate中文翻译为"冬眠",在开发商Hibernate的主要功能是进行数据层的操作实现.1.传统开发的弊病 在任何一个项目的开发之中,一定需要存在四个层, 显示层: |-动态语言:jsp;如果要想合理的实...
2018-06-13 11:17:15
286
原创 (二十七)在Struts2.x里面实现Annotation配置
在2005年之前,所有的开发框架几乎都由一个特点,除了框架本身的代码需要编写之外,还需要编写大量的XML文件,并且利用这些文件决定项目的执行,想法很好,但是在实际的使用中会发现并不怎么好,一旦项目开发很大,那么对于整个项目的控制文件就非常难以维护了.从2005年之后(正是在这一年Apache收购;1WebWork),所以现在跨度比较大的框架都开始进行一些结构的修改,Sturts2....
2018-06-12 16:40:08
175
原创 (二十六)JFreeChart与Struts2.x
在很多的系统之中,数据的统计结果报表是经常会出现的功能,但是在现在的开发之中们大部分都会基于HTML5的Canvas绘图功能完成,如果是直接绘图,那么基本上都很麻烦,所以可以使用大量的第三方开发包,在很久以前就存在有一个Java可用的统计图的工具--JFreeChart,是一个免费的绘图工具使用JFreeChart绘制一个图形 下面就使用此组件绘制一个最简单的图形显示...
2018-06-12 11:55:58
131
原创 (二十五)struts2.x中的转换器
1.转换器的主要使用以及作用;2.实现自定义的转换器;3.系统自带转换器;具体内容 在使用Struts2.x接收参数的时候,可以发现,如果传递的是数字,可以自动的将参数的字符串内容变为数字,那么包括文件上传的时候,能接收的数据类型为File,那么这些实际上都是由转换器帮助我们用户自动完成的转换. 例如,如果要想实现字符串到"Locale"的转换,那么默认没有实现,必须自...
2018-06-12 10:40:27
187
原创 (二十四)Struts2.x文件上传操作
如果你的项目代码使用的是标准MVC开发的,那么强烈建议使用SmartUpload完成,但是如果你的项目代码使用的是框架开发,例如Struts1.x,Struts2.x,SpringMVC,那么就只能够使用FileUpload,因为这些框架针对于FileUpload的处理是比较方便的.基础上传 如果现在使用的是Struts1.x,那么要接收上传文件的时候使用的是一个Fo...
2018-06-11 09:41:33
226
原创 (二十三)指令牌验证
Token的实现原理以及Struts2.x中对Token的支持.具体内容 在现实的开发之中会出现这样一种情况,当用户填写了一个表单,而后将此表单提交之后,用户直接选择后退操作回到了原本的表单上.那么为了解决这样的问题,最早的时候是使用session进行处理 但是到了Struts2.x的时候实际上针对于Token的验证操作就变得更加容易了,因为有拦...
2018-06-07 15:55:58
312
原创 (二十二)拦截器栈
正如在之前所编写代码一样,可以发现,在一个项目里面至少需要以下几种拦截器:验证拦截,登录拦截,defaultStack拦截,可是如果每一次都这样分别去写;<interceptor-ref name="timer"/> <interceptor-ref name="mldn"/> <interceptor-ref name="login"&g..
2018-06-07 14:30:10
291
1
原创 (二十一)Strtus2.x拦截器
拦截器是现在开发之中最为重要的特色,是基于AOP的设计思想(AOP是基于代理设计模式思想),面向切面设计思想实现的.1.清楚拦截器的基本作用;2.开发自己的拦截器3.实现登录检查拦截器4.实现服务器端数据验证拦截器(工具类);5.拦截器栈的定义及使用 在Strut2.x里面为了方便用户进行数据的验证,专门提供有validate()方法以及验证框架,但是这两个验证操作都...
2018-06-06 10:50:02
160
原创 (二十)验证增强
实际上在验证框架里面还可以做很多事情,例如:验证数字的范围是否正确,长度是否合适,以及发布日期是否满足,正则操作是否可用等等.范例:编写NewsAction-validation.xml文件,完善验证<validators> <field name="news.nid"> <field-validator type="int"> &...
2018-06-05 15:32:13
223
原创 (十九)s验证框架基础使用_基础验证
在之前的验证操作之中,都使用的是validate()方法进行的手工编写,但是这样的手工编写难度太高了,也太麻烦了,所以在开发之中可以利用验证框架来解决此类问题. 如果有验证框架,那么就没有必要去重写validate()方法了.但是验证框架依然基于validate()的操作形式使用,1.首先需要有一个执行数据处理的Action--NewsAction;2.为这个Actio...
2018-06-05 14:21:39
166
原创 (十八)数据验证方法重写
虽然这个时候已经成功的进行了错误跳转,但是跳转之后可能依然没有人知道出现了那些错误,那就必须想办法在页面中显示这些错误 首先必须明确的再次提示,在ActionSupport来里面提供的取得全部错误信息的方法 取得错误信息:public Map<String,List<String>> getFieldErrors() 所有的错误信...
2018-06-05 10:43:31
261
原创 (十七)Struts 2.x与Ajax
如果现在要想使用Struts2.x的Action利用异步处理实现数据输出,那么必然这个输出的输出分方法里面是不应该有返回路径的,不会跳转. 如果要处理Ajax建议使用jQuery,将jQuery的开发包配置到项目之中;范例:建立一个新的Action--CrityAction.javapackage cn.zwb.action;import java.io.IOExc...
2018-06-05 08:41:24
114
原创 (十五)Struts2.x多业务处理
所有的开发之中,每一个Action都要同时处理多个操请求,所以来讲在Struts2.x里面依然处理多业务的操作.那么下面为了更好的观察出问题,重新建立新的Action以及vo类.范例:定义一个新闻的VO类package cn.zwb.vo;public class News { private Integer nid; private String title; priv...
2018-06-04 17:38:38
238
原创 (十四)UI标签
在Struts2.x里面本意是希望方便用户开发,所以在许多的标签上都使用了操作模板,但是在实际的布局中这些模板如果出现,则会破坏布局从要求范例:观察表单问题<s:form action="FormAction.action" method="post"> <s:textfield key="name" label="姓名"/> <s
2018-06-04 16:19:33
1036
原创 (十三)非UI标签
本部分的标签指的是与表单无关(表单在HTML里面就称为UI),下面看几个有意思的标签1.格式化日期显示 如果想要格式化日期的显示则使用"<s:date>"标签完成<h1><s:date name="emp.hiredate" format="yyyy-MM-dd HH:mm:ss"/></h1>
2018-06-04 15:12:37
207
原创 (十二)标签与属性范围
在Struts2.x里面,每一个JSP页面一定要与Action紧密连接在一起,尤其是在Action进行了服务器端跳转之后,也同样的可以直接利用标签访问这个类中的私有属性范例:定义一个新的Action 此时直接在Action里面设置了一个mydept的VO类对象,随后定义了对象的内容,并且让其跳转到了一个指定的页面,但是这个页面使用标签输出内容.package cn.zw...
2018-06-04 14:15:26
297
原创 (十一)结合vo的输入
从2005年开始,vo的开发模式已经深入人心,所有的开发框架必定支持vo的转换,并且在struts2.x里面也支持了vo转换,别切可以多级设置范例:定义两个VOpackage cn.zwb.vo;import java.io.Serializable;@SuppressWarnings("serial")public class Dept implements Seriali...
2018-06-04 12:11:43
203
原创 (十)配置资源文件
从任何的项目来讲,都一定会存在有*.properties,这个文件的结构使用了"key=value"的形式,同时在这种文件上还可以轻松的实现国际化操作的需要,所以只要是项目,都建议至少定义一个Messages.properties的文件,保存所有的提示信息.范例:在src下定义Messages.properties文件(资源文件的命名同类名称名称命名标准一致)info.msg=这是...
2018-06-04 11:19:21
392
原创 (九)乱码解决
如果现在的项目之中的编码都统一使用的是UTF-8编码,那么根本就么有必要解决乱码,如果它采用的是其他的编码形式,例如:整个项目都使用的是"GBK",那么就必须解决乱码. 如果要想进行乱码的解决实际上是进行的是Struts.2.x的属性配置,既然是属性配置,那么就要在src目录下建立一个struts.properties的文件.范例:建立struts.propertie...
2018-06-04 10:21:28
169
原创 (八)多人开发
在所有的项目开发之中,一定是多人团队集中开发,但是现在如果使用框架开发会出现一个问题,所有的Action以及相关的路径都要求在struts.xml文件里面配置,如果所有人偶去修改一个文件,那么会很混乱,有可能会一直出现冲突,那么在Struts2.x里面为了解决这样的问题,可以由用户定义对个配置文件 ,并且在一个struts.xml文件里面合并 首先在项目里面可以复制s...
2018-06-04 09:39:53
202
原创 (七)取得jsp内置对象
在Struts2.x为了方便的解决这些内置对象的操作,专门提供有一个ServletActionContext的类,这个类里面可以方便的取出常用内置对象:org.apache.struts2.ServletActionContext的类 取得pageContext:public static javax.servlet.jsp.PageContext getPageCo...
2018-06-04 09:23:48
584
原创 (六)跳转配置
在Sturts2.x里面所有的跳转都是由Action进行的,而且只要想进行跳转,只需要在相应的方法里面返回指定的字符串即可,而这些字符串都会在Struts.xml文件里面出现相应的"<result>"节点范例:观察已有代码 @Override public String execute() throws Exception {//执行操作 this.msg="EC...
2018-06-04 08:34:35
190
原创 (五)过滤器配置
在整个Struts2.x里面,所有的请求处理都是由过滤器完成的,这一点和之前的Struts1.x是完全不同的,但是现在的过滤器有一个问题,发现所有的页面必须经过Action而后跳转到JSP页面后,jsp页面才可以正常显示,因为只要你使用了Struts2.x标签,那么JSP页面就一定要与某一个Action关联在一起. 但是是不是必须要进行关联呢?并不是.如果要想解决关联...
2018-06-03 18:57:07
191
原创 (四)跳转类型
之前已经完成了一个最为基础的Struts2.x程序,从整个结构来讲比清晰,比较简单,除了页面的代码比较陌生之外跳转类型配置 在Struts2.x里面如果要进行跳转的话,那么实际上在Action之中只要返回一个字符串,那么此字符串要与配置的路径进行吻合后鸡可以跳转. @Override public String execute() throws Exception ...
2018-06-03 17:28:26
542
原创 (三)编写ECHO程序
项目建立完成之后会自动在src目录之中建立一个struts.xml文件,这个文件就是Struts2.x的核心配置文件,同时也会在Web.xml文件里面增加如下配置: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts...
2018-06-03 16:43:32
1277
原创 (二)开发第一个Struts2.x程序(搭建环境)
如果要信开发Struts2.x的话最早的时候是没有开发工具,从MyEclipse2012开始就开始支持了Struts2.x开发,可以直接利用此工具进行Struts2.x开发包的配置1. 建立一个新的项目--MyStruts2Project; 建立的时候一定要建立web.xml文件,因为几乎所有的MVC开发框架都必须有Servlet的支持或者是Filter支持,而...
2018-06-01 19:07:28
161
原创 (一)Struts2.x简介
前提是:Struts1.x和Struts2.x没有任何的关系,属于两个独立的版本,那么为什么会出现两个独立的版本原因还是在于Struts1.x的设计结构上.在成名的MVC开发框架里面,Struts最早出现的,但是由于最初的设计环境没有考虑到这么复杂,所以来讲到了今天与其他框架整合会出现非常麻烦的问题,而且也存在有性能问题,同时自己本身的设计结构也出现了混乱,例如:如果想要使用验证框...
2018-06-01 18:27:53
455
原创 (三十二)JdbcDaoSupport支持类
虽然可以直接利用JDBCTemplate进行数据库的操作,但是在大部分的DAO实现子类中,很少有人这样去做,往往会让DAO实现子类既实现了DAO结构同时去继承一个JdbcDaoSupport的抽象类, 因为如果不继承,你的代码就需要编写一个这样的功能:@Autowired //自动根据匹配类型注入所需要的数据 public NewsDAOImpl(JdbcTemp...
2018-06-01 14:02:06
1966
原创 (三十一)使用C3P0数据库连接池
在所有的实际工作之中,之前使用的"DriverManagerDataSource"类是不会被使用的,因为这种的数据源的处理操作使用的是传统的JDBC方式处理,也就是所它每次操作的时候都需要自己连接数据库,而后还需要关闭数据库,性能太差了,所以在实际的工作上我们都会使用数据库连接池来负责数据库连接的管理,但是在JSP的时候学习过Tomcat下配置连接池,只不过这种连接池有一个问题,它...
2018-06-01 12:38:13
271
原创 (三十)在Spring配置JDBC操作
如果想要简化整个JdbcTemplate的操作流程,那么唯一可以进行的方式就是利用配置文件采用依赖注入的方式实现操作.下面也实现同样的操作,但是尽量使用一种更为合理的做法,如果真的在实际开发之中,使用了JdbcTemplate,那么也只会在数据层上使用.范例:定义INewsDAO接口package cn.zwb.dao;import cn.zwb.vo.News;publi...
2018-06-01 11:18:46
281
原创 (二十九)实现JdbcTemplate的CRUD操作
取得连接固然是一节非常兴奋的事情,但是最终依然要落实在表数据的操作上,若果要想操作数据表中的数据,可以使用"org.springframework.jdbc.core.JdbcTemplate",那么在这个类中提供有如下的方法: ●构造方法:public JdbcTemplate(DataSource dataSource) ; ●构造方法:public...
2018-06-01 08:42:43
364
原创 (二十八)JdbcTemplate连接数据库
如果要使用JDBC模板操作数据库,那么首先必须要解决的就是数据库的连接问题,如果要进行连接那么需要使用一个特定的操作类. 如果想要使用JDBC的操作处理类,那么首先需要在建立Spring项目的时候添加相应的开发包范例:创建数据库表create table news( nid int primary key auto_increment, title varchar...
2018-05-31 11:20:16
1028
原创 (二十七)JDBC操作模板
Spring开发框架除了提供有整个一系列第三方开发框架的功能之外,也提供有自己的一套完整的处理架构.它可以自己处理业务层,自己处理控制层,自己处理数据层,等等等一些列的处理.JdbcTemplate的产生动机? 首先任何情况下,爱java里面只要是进行数据库的开发操作,那么永恒的都只会有一个技术---JDBC,而所有的开发框架都是针对于JDBC的包装,像Hiberna...
2018-05-31 09:42:03
191
原创 (二十六)利用Annotation配置AOP
之前学习的AOP操作如果在以后的开发之中基本都是固定的,但是如果是你自己写的代码,如果通过配置文件编写就太麻烦了,所以可以使用基于Annocation的配置完成,范例:打开AOP的Annotation支持<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.o...
2018-05-31 08:57:19
141
原创 (二十五)AOP深入操作
在之前只是进行了最为简单的AOP的拦截处理,只在操作之前与操作之后进行的拦截,但是在整个AOP处理里面有一个问题需要首先解决,那么就是参数问题package cn.zwb.aop;import org.springframework.stereotype.Component;@Componentpublic class ServiceAspect { public vo...
2018-05-31 08:26:44
255
原创 (二十四)AOP基本操作
AOP是面向方面的编程,在实际开发之中,AOP都会工作在业务层;因为业务层要调用数据层,而业务层也要完成所有辅助性的数据层操作.范例:定义业务层操作接口package cn.zwb.service;import cn.zwb.vo.Member;public interface IMemberService { public boolean insert(Member v...
2018-05-30 18:16:17
276
原创 (二十三)AOP编程简介
Spring中两大核心组成:IOC&DI,AOP.AOP最大的用处在于事务处理上, 使用MyElipse开发项目对于所有的AOP几乎不需要做太多的处理.由开发工具帮助用户自己完成了,而在整个学习过程之中,掌握AOP的编程的核心理念要比实现更为重要. 在整个的开发之中曾经强调过,业务层在项目之中要负责以下的操作: ●调...
2018-05-30 16:40:35
183
原创 (二十二)实际使用:配置文件
整个Spring的核心就是一个配置文件(增加了Annotation),所以只有将表达式应用在配置文件上才会特别的有意义.范例:利用配置文件编写表达式应用<bean id="str" class="java.lang.String"> <constructor-arg value="Hello"></constructor-arg><
2018-05-30 13:07:25
164
原创 (二十一)集合表达式
只要是开发框架的操作,永远都不可避免的要去进行集合数据的操作处理,在之前一直强调过,Spring认为数据与List集合是等价的,所以如果要想操纵List集合,利用"{内容,内容,...}"的形式就可以完成了.范例:操作List集合内容package cn.zwb.demo;import java.util.List;import org.springframework.expr...
2018-05-30 12:52:49
2537
原创 (二十)变量操作
在表达式里面所有的操作都是可以变量的形式出现的,但是一般情况下只会出现在基本的操作之中.范例:观察变量的定义package cn.zwb.demo;import org.springframework.expression.EvaluationContext;import org.springframework.expression.Expression;import org...
2018-05-30 11:50:44
953
jsoup_jar包
2018-02-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅