2012.05.18

sevlet页面跳转:1)重定向 response.sendRedirect("/a.jsp");跨服务器,浏览器地址变化,

实际是两次httprequest,第一次请求返回302状态码,第二次请求不带有第一次请求的参数,因此刷新不会重复提交数据。

2)转发 RequestDispatcher dispatcher = request.getRequestDispatcher("/a.jsp");
dispatcher.forward(request, response);本web应用,浏览器地址不变,只有一次httprequest,刷新会重复提交数据

//不要让浏览器开辟缓存
response.setHeader("Cache-Control","no-cache"); 
response.setHeader("Cache-Control","no-store"); 
//程序立即过期
response.setDateHeader("Expires",0); 
//不要让浏览其缓存程序
response.setHeader("Pragma","no-cache");

srping 注解方式注入:配置文件添加命名空间:xmlns:context=""

再添加配置:<context:annotation-config/>

@Autowired 和 @Resource 可以加在属性或其setter方法上,set、get方法非必须

区别:

Autowire,spring提供,默认按类型装配,指定required属性为false时,找不到将为null,支持接口

Resource,jdk6提供,默认按属性名装配,未指定name属性时,找不到再按属性类型装配,指定name后找不到将为null

自定义注解:

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.FIELD, ElementType.METHOD})

public @interface MyResource {

public String name() default "";

}

setter.isAnnotationPresent(MyResource.class);

setter.getAnnotation(MyResource.class);

getPropertyType().isAssignableFrom(clazz);

field.setAccessable(true);

field.set(bean, value);

你可能感兴趣的:(2012.05.18)