- 浏览: 991499 次
- 性别:
- 来自: 上海
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
文章列表
关于JSPUpload的介绍可以去google一下,jar和使用实例可以在下面附件中下载,在这里我使JSPUpload实现一个JavaWeb文件上传的功能。
JSP页面内容如下:
<form method="POST" action="JspsmartUploadServlet" ENCTYPE="multipart/form-data">
<table>
<tr><td><input type="text" name="subject ...
import java.lang.reflect.Method;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
/**
* 使用CGLIB创建代理对象工厂
*
* @author 张明学
*/
public class CGLIBProxyFactory {
/**
* 使用CGLIB创建代理对象(实际是目标对象的子类,覆盖了父类对象的方法)
*
...
作为一个应用Java的反射和注解的一个使用。
首简写一个XML的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org ...
1。首先基于注解配置的AOP使用:(在学习Spring的AOP之前建意先去学习一下Java的JDK动态代理和CGLIB的代理技术,AOP是基于代理实现的,JDK的动态代理需要目标对象实现一个接口,若没有实现接口则可以使用CGLIB,它的代理对象是继承目标对象。)
目标对象的接口如下:
public interface PersonService {
public abstract void save(String name);
public abstract String getPersonName(String personId);
public abstra ...
使用@Component,@Service,@Controller,@Repositroy可以完成不用XML配置也可以将Java组件交给Spring容器
JavaBean代码如下:
package autoScan.dao;
public interface StudentDao {
public abstract void add();
}
@Repository
@Scope("singleton")
public class StudentDaoImple implements StudentDao {
// @PostConstr ...
第一种方法:手动装配完成依赖注入
基于XML配置的:
1。通过set方法注入
<!-- 手动装配 通过setter方式注入 -->
<!-- Spring的DI注入方式 -->
<bean id="studao" class="di.dao.imple.StudentDaoImple"></bean>
< ...
一、基于XML配置的Spring对Bean的实例化:有三种方式:类的构造器,静态工厂,实例工厂
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/ ...
/**
* JDK 动态代理类分析(java.lang.reflect.Proxy使用)
*
* @author 张明学
*
*/
public class ProxyStudy {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
// 动态代理类:通用指定类加载器,和接口产生一类
// getProxyClass()返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组 ...
/**
* Java 类加载器
*
* @author 张明学
*
*/
public class ClassLoaderStudy {
public static void main(String[] args) throws Exception {
// 获取:加载ClassLoaderStudy的类加载器
System.out.println(ClassLoaderStudy.class.getClassLoader().getClass().getName());// AppClassLoader
// 获取:加载ClassLoader ...
/**
* JDK1.5 泛型
*
* @author 张明学
*
*/
public class GenericStudy {
@SuppressWarnings( { "unchecked", "unused" })
public static void main(String[] args) throws Exception {
// 第1点:Java的泛型仅仅只是通用Java的编译器实现的,进行全安检查,编译成class文件后没有保留泛型信息
Collection<Integer> c1 ...
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.mengya.EnumStudy;
/**
* 自己定义的一个 Annotation
*
* @author 张明学
*
*/
/**
* 定义注解时可以加上@Retention注解:用来设置注释保留策略。 ...
/**
* apache的Beanutils简单使用
*
* @author 张明学
*
*/
public class BeanUtilsStudy {
public static void main(String[] args) throws Exception {
PersonBean pbean = new PersonBean("java", 12);
pbean.setP("P属性");
// 定义几个属性名称
String propertyP = "p";
S ...
/**
* Person JavaBean
*
* JavaBean的要求:有get,set方法,JavaBean的属性值是根据get,set方法后面的内容来确定的。
*
* @author 张明学
*
*/
public class PersonBean {
private String name;
private int age;
private Date birthday = new Date();
private String x;
public PersonBean() {
}
public PersonBean(Stri ...
/**
* 反射(构造方法,成员变量,普通方法,数组)
*
* @author 张明学
*
*/
public class ReflectStudy {
@SuppressWarnings("unused")
public static void main(String[] args) throws Exception {
System.out.println("--------1. 构造方法反射-------");
Class strClass = String.class;
Constructo ...
/**
* JDK1.5 枚举高级应用(向枚举值对象中添加变量和方法)
*
* @author 张明学
*
*/
public class EnumStudy {
public static void main(String[] args) {
WeekDay weekDay = WeekDay.SUN;
System.out.println("对象本身:" + weekDay);// 对象本身:SUN
System.out.println("枚举name方法" + weekDay.name());// ...