<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[熊诗锌的博客]]></title><description><![CDATA[blog.youkuaiyun.com/agogwalker]]></description><link>https://blog.youkuaiyun.com/agogwalker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; agogwalker]]></copyright><item><title><![CDATA[Jasper6 导出Excle,PDF,World文件]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/70232348</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/70232348</guid><author>agogwalker</author><pubDate>Tue, 18 Apr 2017 20:35:04 +0800</pubDate><description><![CDATA[最近一直在弄Jasper的报表,整理了一个工具类,拿来分享下
package yjkj.hospital.util;

import java.io.File;
import java.io.IOException;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import net.sf.jaspe]]></description><category></category></item><item><title><![CDATA[hibernate中的配置文件详解]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52549981</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52549981</guid><author>agogwalker</author><pubDate>Thu, 15 Sep 2016 16:06:17 +0800</pubDate><description><![CDATA[hibernate.cfg.xml<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">



	
	
	
		com.mysql.jdbc]]></description><category></category></item><item><title><![CDATA[hibernate中的Session对象]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52549168</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52549168</guid><author>agogwalker</author><pubDate>Thu, 15 Sep 2016 11:23:41 +0800</pubDate><description><![CDATA[Session对象:在hibernate中对数据库进行操作,主要使用Session.Session可以理解为是对Connection对象的一个包装,Session对象中提供了对数据库的crud操作.Session是一个线程不安全的对象,生命周期非常的短暂,一般和事务一一对应.session又被称为hibernate中的一级缓存.Session也是 Transaction对象的一个工厂.]]></description><category></category></item><item><title><![CDATA[struts2中注解的实现]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52505437</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52505437</guid><author>agogwalker</author><pubDate>Sun, 11 Sep 2016 19:08:02 +0800</pubDate><description><![CDATA[struts2中的注解依赖于struts2-convention-plugin 插件,Action需要继承ActionSupport类,且Action需要放置在以.action结尾的包中;
具体实现如下代码
package cn.xsx.action;

import org.apache.struts2.convention.annotation.Action;
import org.apa]]></description><category></category></item><item><title><![CDATA[struts2中的拦截器深入-方法拦截器]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52367392</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52367392</guid><author>agogwalker</author><pubDate>Tue, 30 Aug 2016 10:49:44 +0800</pubDate><description><![CDATA[struts2中给我们提供了一个MethodFilterInterceptor类,该类是 AbstractInterceptor的子类,可以实现对Action方法的拦截 
方法拦截器比action拦截器更加细粒度的控制,主体实现与action实现一致,但是方法拦截是继承MethodFilterInterceptor类,重写其doIntercept方法;
实现代码如下:
import com.]]></description><category></category></item><item><title><![CDATA[struts2中的拦截器]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52355999</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52355999</guid><author>agogwalker</author><pubDate>Mon, 29 Aug 2016 19:51:15 +0800</pubDate><description><![CDATA[struts2中的拦截器在action执行的前后执行,Struts2的核心功能都是通过拦截器实现的,多个拦截器可以组成拦截器栈;
作用:对于action中的一些公共代码可以放到拦截器中实现.如权限控制,日志等;
多个拦截器之间的执行是采用责任链设计模式来实现的;
拦截器的实现步骤
1)编写拦截器(实现 Interceptor接口或者继承AbstractInterceptor类)
2)在s]]></description><category></category></item><item><title><![CDATA[struts2的中的验证机制]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52354167</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52354167</guid><author>agogwalker</author><pubDate>Mon, 29 Aug 2016 16:18:38 +0800</pubDate><description><![CDATA[1.服务器端验证:如果一个action类继承ActionSupport类,那么action类将会继承其validate方法,当服务器收到action请求会先执行validate方法再执行execute方法
import java.util.Date;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.Ac]]></description><category></category></item><item><title><![CDATA[struts2中的类型转换]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52352609</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52352609</guid><author>agogwalker</author><pubDate>Mon, 29 Aug 2016 14:03:53 +0800</pubDate><description><![CDATA[在struts2中,常见的数据类型都会自动进行类型转换,但是某些特殊的类型转换,当使用量很大时,我们可以使用struts2中的自定义类型转换,实现步骤如下:
1)编写类型转换器--继承StrutsTypeConvert类
2)编写xwork-conversion.properties的配置文件,并放在项目src目录下,内容为: 要转换的类型=类型转换器 
具体实现方式代码如下;
我们以坐标]]></description><category></category></item><item><title><![CDATA[struts2获取request对象的四种方式]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52343871</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52343871</guid><author>agogwalker</author><pubDate>Sun, 28 Aug 2016 09:56:27 +0800</pubDate><description><![CDATA[struts2中,有四种方式获取request对象的方式,实现时有解耦和耦合之分
解耦:使得我们使用struts2测试时不需要启动服务器,在一定的程度上,能提高我们的开发效率.具体实现思路,通过ActionContext对象获取,如下代码:
//第一种通过ActionContext,直接获取session(解耦)
ActionContext.getContext().getSession().]]></description><category></category></item><item><title><![CDATA[struts中action的实现方式]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52328130</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52328130</guid><author>agogwalker</author><pubDate>Fri, 26 Aug 2016 14:40:54 +0800</pubDate><description><![CDATA[1.定义一个pojo类,这样做的好处是,他不具有侵入性.
2.实现Action接口,这使得我们的代码更加的规范.
3继承ActionSupport类,官方推荐我们使用第三种,因为ActionSupport类中有很多很实用的方法,供我们调用.]]></description><category></category></item><item><title><![CDATA[简述struts2中的常量配置]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52324953</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52324953</guid><author>agogwalker</author><pubDate>Fri, 26 Aug 2016 08:51:30 +0800</pubDate><description><![CDATA[struts2中的常量配置方式有两种:
1.在struts.xml中的struts标签下配置,如下代码
	
   	
   	
   	
   	
   	
   	
   	2.我们也可以在项目的src下新建一个struts.properties文件 然后在文件中写如下内容
#set extension
struts.action.extension = action,,xsx]]></description><category></category></item><item><title><![CDATA[线程安全问题]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52317250</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52317250</guid><author>agogwalker</author><pubDate>Thu, 25 Aug 2016 19:23:13 +0800</pubDate><description><![CDATA[首先,我们来讲下什么是线程安全,线程安全指的是在一个进程中有多个线程并发执行,每个线程执行过程中,变量值是相同的,执行的结果也是相同的.
举个例子
private int count; 

public void test(){
    count++;
}我们声明了变量count,但是在调用test方法是没有对count进行初始化,就会导致每次调用时的变量值不一样,执行结果也会不一样;
]]></description><category></category></item><item><title><![CDATA[关于我自己的]]></title><link>https://blog.youkuaiyun.com/agogwalker/article/details/52313804</link><guid>https://blog.youkuaiyun.com/agogwalker/article/details/52313804</guid><author>agogwalker</author><pubDate>Thu, 25 Aug 2016 13:41:17 +0800</pubDate><description><![CDATA[我是熊诗锌,22岁,一个很普通的码农,和优秀的程序员还有很大的差距,今天是2016年8月25日,我将开始写csdn博客,分享自己学习工作过程中所遇到的技术难点,希望能成为一个优秀的程序员,而不是一个只会敲低效代码的码农.]]></description><category></category></item></channel></rss>