java后台面试

1.Tomcat,Apache,JBoss的区别?

tomcat是web服务器,可解析jsp动态页面、也可充当servlet容器。

Apache是是Http服务器,解析静态的html文件。

JBoss是应用服务器。

Weblogic是app
server 服务器。

详见:

 

2.StringBuffer,
StringBuilder 的区别是什么?

StringBuffer是线程安全的。

StringBuilder
是非线程安全的。

 

3.Session,
Cookie区别

Session由应用服务器维护的一个服务器端的存储空间;

Cookie是客户端的存储空间,由浏览器维护。


Session中保存的是对象,

Cookie中保存的是字符串。


用户可以通过浏览器设置决定是否保存Cookie,而不能决定是否保存Session,因为Session是由服务器端维护的。

 

4.Servlet的生命周期

加载–>实例化–>服务–>销毁

举例:Tomcat与Servlet间的工作
流畅

 

1、Web Client
向Servlet容器(Tomcat)发出Http请求

 

2、Servlet容器接收Web Client的请求

 

3、Servlet容器创建一个HttpRequest对象,将Web
Client请求的信息封装到这个对象中

 

4、Servlet容器创建一个HttpResponse对象

 

5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数

 

     传给 HttpServlet对象

 

6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息

 

7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据

 

8、Servlet容器把HttpServlet的响应结果传给Web
Client


 

其中3个方法代表了Servlet的生命周期:

1、init方法:负责初始化Servlet对象。

2、service方法:负责响应客户的请求。

3、destroy方法:当Servlet对象退出生命周期时,负责释放占用的资源。

详见:

 

5.Forword,SendRedirect,redirect的区别

 Forword是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;

SendRedirect完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。 

redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 

详见:

 

6.描述struts的工作流程

1、在web应用启动时,加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,将它们存放到各个配置对象中。

2、当ActionServlet接收到一个客户请求时,首先检索和用户请求相匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效信息。

3、如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。

4、根据配置信息决定是否需要验证表单,如果需要,就调用ActionForm的validate()方法,如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。

5、ActionServlet根据ActionMapping实例包含的映射信息决定请求转发给哪个Action,如果相应的Action实例不存在,就先创建一个实例,然后调用Action的execute()方法。

6、Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。

7、ActionForward对象指向的JSP组件生成动态网页,返回给客户。

 

相关文章