JavaJ2EE相关知识整理
1、Servlet的生命周期
在Web容器中,Servlet主要经历4个阶段
①、加载Servlet:当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例
②、初始化Servlet:当Servlet被实例化之后,Tomcat会调用init()方法来初始化这个对象
③、处理服务:当浏览器访问Servlet的时候,Servlet会调用service()方法处理请求
④、销毁:当Tomcat关闭或者检测打Servlet要从Tomcat删除的时候,会自动调用destory()方法,让该实例占用的资源释放掉。
2、Servlet是单例的吗,为什么
Servlet是单例的,浏览器多次对Servlet的请求,一般情况下,服务器只创建一个Servlet对象,也就是说,Servlet对象一旦创建了,就会驻留在内存中,为后续的请求做服务,直到服务器关闭
3、GET和POST请求的区别
GET请求暴露请求信息,不安全,POST请求隐藏了请求信息,较安全
GET请求不能超过1KB,可传输的信息有限,不能上传图片
POST请求没有限制请求的数据大小,可以做图片的上传
4、Tomcat中如何解决中文乱码问题
对于POST请求可以设置请求编码方式:request.setCharacterEncoding("UTF-8"),注意必须在获取第一个参数之前设置,并且该方式只会POST方式有效
对于GET请求可以重新设置Tomcat的编码方式,修改Tomcat的配置文件,在conf/server.xml文件中,在端口号配置段,添加URIEncoding=“UTF-8”
5、forward与redirect的区别
forward:客户端和浏览器只发出一次请求,地址栏不发生改变,资源是共享的
语法:request.getRequestDispatcher(path).forward(request,response)
redirect:客户端和浏览器端发送两次请求,地址栏发生改变,资源不共享
语法:response.sendRedirect(String location)
6、session和cookie区别
①、session的数据存放在服务器端,cookie的数据存放在客户端
②、cookie不是很安全,可以分析存放在本地的cookie并进行cookic欺骗。session较安全
③、session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器的资源,从性能方面cookie更有优势
④、单个cookie在客户端的限制是3k,session无限制