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