`
wen147258
  • 浏览: 27173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

2014-08-06(tomcat与JVM Java中监听器、过滤器、拦截器)

阅读更多

一、tomcat与jvm

1、tomcat不能独立的在计算机启动,必须依托操作系统和jvm才能运行。

2、我们在java开发过程中经常会遇到这样的错误: 

1)、java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出

2)、java.lang.OutOfMemoryError: PermGen space  ---- PermGen space溢出

3)、 java.lang.StackOverflowError   ---- 栈溢出

遇到这样的问题,我们只需要把改变jvm的堆的大小就可以很轻松的解决这些内存溢出的问题

set JAVA_OPTS=-server -Xms512m -Xmx512m -Xss512k -XX:PermSize=128M

-XX:MaxNewSize=64M -XX:MaxPermSize=128M(window下)

JAVA_OPTS="-Xms512m -Xmx512m -Xss512k -XX:PermSize=128M

 

-XX:MaxNewSize=64M -XX:MaxPermSize=128M"(linux下)

下面来解释一下各个参数的意思

-server 作为第一个参数,在多个CPU时性能佳(暂时不理解)

-Xms jvm heap初始大小,一般是物理内存的1/64

-Xmx jvm heap最大大小

-Xss jvm 一个线程的stack大小

-XX:PermSize jvm heap 内存的永久保存区初始大小

-XX:MaxPermSize jvm heap 设定内存的永久保存区最大大小

-XX:NewSize jvm 新生成的池的初始大小

-XX:MaxNewSize jvm  新生成的池的最大大小

 

二、Java Interceptor Listenter Filter

1、在java web开发中,我们经常使用到这三类东西,在Servlet开发中,我们经常使用Filter和Listenter,一般我们使用Filter来过滤一些参数,一些请求,设置一些编码格式等,使用Listener来监听一些特定环境发生变化,然后做一些处理,比如:当web 容器启动时我们可以在监听器里面做一些初始化的东西,比如数据库的数据源的设置等

2、拦截器在一些框架中使用的比较多,如spring,struts中都使用了拦截器,拦截器的功能类似于aop编程,在执行一个请求之前做一些处理。

0
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics