`
ch_space
  • 浏览: 111281 次
  • 性别: Icon_minigender_1
  • 来自: 农村进城务工人员
社区版块
存档分类
最新评论
文章列表
文章有点长。。。 以前看到的分页模型大同小异,都是一个POJO结合各类视图技术实现的,但对于每次查询,都要计算总页数(统计记录总行数),对于记录数较少、并发不高的系统来讲,这似乎没有什么问题,但对于高并发,记录行数很多(千万级)的情况,每次的统计行数就要花费不少时间。我这里尝试着设计了一个行数缓存和一个简单的分页POJO(跟传统的POJO大同小异),请大家批评讨论,并提出一些建议。分享才能进步! 1、在哪里缓存 可以在客户端(使用Cookie),也可以在服务器端(设计一个Cache)。服务器端可以灵活定义缓存时间、刷新策略,这里仅讨论服务器端缓存(大家也可以提提客户端缓存的优缺点)。 2 ...
response.addHeader("Content-Disposition", "attachment; filename=" +response.encodeURL(downloadfile)); attachment表明这是一个附件,浏览器不会寻找合适的应用程序打开文件,而是显示另存为对话框,如果这个值设成inline,则无论怎样浏览器都会自动尝试用已知关联的程序打开文件。
这里讲的异常处理是指:用户发送一个HTTP请求,服务器处理请求过程中发生了诸如数据库异常、文件IO异常、类型不匹配异常等等,那么就要转向一个友好的异常提示页面。 Spring为我们提供了一个异常解析器接口:org.springframework.web.servlet.HandlerExceptionResolver 我们只要实现 public ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)方法即可。 一个Dem ...
一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可以实现Bean预处理、后处理。 Spring MVC的拦截器不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。 Spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承此类,可以非常方便的实现自己的拦截器。他有三个方法: public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Objec ...
在第三节里面,完满讲了使用@AspectJ注解实现Spring AOP,它需要运行在Java5以上的版本中,对于Java1.4之前的版本,我们也想使用Spring AOP,那么怎么办呢? 一种是像1,2节里面讲的那样,定义Advice实现MethodBeforeAdvice、MethodAfterAdvice、ThrowsAdvice、MethodInterceptor接口之一,然后包装在Advisor中,最后使用BeanPostProcessor(如BeanNameAutoProxyCreator、DefaultAdvisorAutoProxyCreator)创建业务Bean的代理对象。显然这 ...
HttpServletResponseWrapper为我们实现对response对象的后处理提供了帮助——你只需编写一个HttpServletResponseWrapper的子类,加入自己的功能实现(修饰器模式)。那么子类化HttpServletResponseWrapper都需要重写那些方法呢? 1、获取response对象,并将输出存放在自定义的流里面,那么关于输出流(outputStream、writer)的操作都是需要重写的了:    1)以流的方式获取输出——重写getOutputStream()    2)以字符方式获取输出——重写getWriter()    3)刷新流——重写f ...
浏览器与服务器按照以下步骤交互: 1)浏览器向服务器请求建立TCP连接 2)建立连接后,浏览器相服务器发起HTTP请求 3)服务器将响应内容发送给浏览器 4)双方关闭TCP连接 HTTP请求由请求方式(GET,POST)、URL、数据三部分构成 POST请求方式的参数不附加在URL中,以消息体的形式发送 HTTP是无状态协议,会话状态有两种方式保存:Cookie、URL重写 Cookie:浏览器在第一次请求服务器时将获得服务器发给他的Cookie,在以后的请求中吗浏览器将此Cookie附加在请求中,服务器以此识别用户。 URL重写:服务器通过将响应页面的URL附加上一个标识符跟踪用户。
serialVersionUID   用来表明类的不同版本间的兼容性。如果你修改了此类,   要修改此值。否则以前用老版本的类序列化的类恢复时会出错。              在JDK中,可以利用JDK的bin目录下的serialver.exe工具产生这个serialVersionUID,对于Test.class,执行命令:serialver   Test。           为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private   static   final   long   serialVersionUID这个属性,具体数值自己定义。这样,即使某个类 ...
void inversePrint(String str){ if(str==null||str.equals("")){ return; } if(str.length()>1){ inversePrint(str.substring(1,str.length())); } System.out.print(str.substring(0,1)); }
前面在Hibernate中曾介绍了使用spring1.x的声明式事务管理(http://ch-space.iteye.com/blog/380419),还是感觉xml文件的配置比较繁琐,这里介绍一下spring2.x基于注解的声明式事务。 这里给出一个完整的例子:对Users类的一个增加操作,测试异常抛出时回滚事务。 所用的框架:Spring2.0+Hibernate3.1 Dao层: //Users类操作的接口 public interface UserDao { public void addUser(Users u); } //Dao接口对应的实现类 public clas ...

java命令

    博客分类:
  • Java
  1、运行class文件 java <包名> class 2、运行jar里面的一个class(含有main方法) 需要先设定classpath: java -cp xxx.jar class 3、javac编译到指定目录 javac -d 目录 源文件 编译当前目录下所有java文件到e盘java/classes目录下: javac -d e:\\java\\classes ./*.java 4、javadoc javadoc [options] [package] [sourcecode] javadoc -d ./doc -encoding utf-8 -ch ...
JDBC操作数据库,业务只有几行代码,却要写一大堆异常处理,烦死人。 String DBDRIVER = "oracle.jdbc.driver.OracleDriver"; String DBURL = "jdbc:oracle:thin:@localhost:1521:cjlu"; String DBUSER = "scott"; String DBPASSWORD = "tiger"; Connection conn = null; PreparedStatement ps = ...
在1,2节里面我们已经大致了解了AOP的工作原理,以及Spring下AOP的配置与实现,BeanNameAutoProxyCreator,DefaultAdvisorAutoProxyCreator已经部分简化了AOP配置,然而还是很繁琐: 首先要编写xxxAdvice类(需要自己实现MethodBeforeAdvice、MethodAfterAdvi ...
在重写一个类的equals()的同时,一般要重写hashCode()除非你确认类的对象不会放入HashSet,HashTable,HashMap。 那么为什么要重写hashCode()呢?主要是为了确保hash表里面不会被放入重复的对象,以提高性能。那为什么重写了hashCode()就可以做到这一点呢?下面以一段代码分析。 /**Strudent重写了equals和hashCode,这里假设只要学号相等则是同一个对象。 先看看hashCode()返回相同的值:0的情况。 */ public class Student { public Student(String no) { ...
上一节介绍的都是使用ProxyFactoryBean实现代理对象的创建,本节介绍使用自动代理实现。通过自动代理,可以实现自动为多个目标Bean实现AOP代理、避免客户端直接访问目标Bean(即getBean返回的都是Bean的代理对象)。spring的自动代理是通过BeanPostProcessor实现的,容器载入xml配置后会修改bean为代理Bean,而id不变。 ApplicationContext可以直接检测到定义在容器中的BeanPostProcessor,BeanFactory需要手动添加。 有2种常用的BeanPostProcessor: 1.BeanNameAutoProxyCr ...
Global site tag (gtag.js) - Google Analytics