监听器的作用与用法?
作用:
servlet规范中定义的一种特殊类
1、用于监听servletcontext(用于监听应用程序环境对象,用途:定时器、全局属性对象
),httpsession(监听用户会话,用途:统计在线人数、记录访问日志),servletRequest(监听请求消息,用途:读取参数、记录访问历史)等域对象的创建与销毁事件
2、用于监听域对象的属性发生修改的事件,比如域对象中的属性的增加和删除,绑定到HttpSession域中的某个对象的状态
用法:
1,统计在线人数和在线用户,也是监听器的主要用途之一
2,系统启动时加载初始化信息,包括一些缓存,功能的定时器
3,统计网站访问量,每次请求都可通过request来获取
4,跟Spring结合,做相关的操作
拦截器和过滤器的区别与作用?
区别:
拦截器是AOP( Aspect-Oriented Programming)的一种实现,底层通过动态代理模式完成。
1. 拦截器是基于java的反射机制的,而过滤器是基于函数回调(实现的filter接口中doFilter方法),这是两者最本质的区别。
2. 拦截器不依赖与servlet容器(与servlet容器无关),过滤器依赖与servlet容器(只能在servlet容器中执行)。
3. 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4. 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
5. 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次拦截器的代码实现(加载的时候在init方法声明)。
6.拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
作用:
拦截器:主要的用途是过滤字符编码、做一些业务逻辑判断等。
过滤器:过滤特定请求资源请求信息和响应信息,值获取自己需要的信息
char型变量中能不能存储中文字符?为什么?
能,char类型是用来存储unicode编码的,汉字包含在了unicode编码中,所以char可以存储汉字,如果unicode编码不包含某个特殊的汉字那就不能存储这个汉字了。
char占2个字节