JAVA面试总结——Java web(一)

Java web面试宝典(一)

1.页面请求的流程:

一个web应用程序一般都是由客户端程序与服务器端程序两部分组成。其中客户端主要是指用户和浏览器。用户通过浏览器查找所需资源,而这些资源位于服务器上。

  • 用户输入网址。
  • 把用户请求发送给服务器。
  • 服务器查找请求的网页
  • 找到用户请求的网页
  • 发送响应消息
  • 浏览器显示返回结果
2.HTTP中GET和POST方法有什么区别

Get是最简单的一种请求方法,其主要功能是从服务器端获取用户所需的资源,并将其做为响应返回给客户端。Get的方法的作用主要用来获取服务器端资源信息,不会影响到资源自身的状态。
Post比Get方法更强大,除了能从服务器上获取资源,还可以向服务器上传资源。
一般不建议采用GET向服务器上传数据,有以下两个原因:

  • GET向服务器上传数据时,一般把数据添加在URL后面,并且两者用“?”连接,各个变量之间用“&”连接。由于URL长度存在限制,采用这种方法上传的数据量很小。

  • 由于1中提到的,所以GET方法上传数据存在安全隐患,因为提交的数据在URL中可见。

3.什么是Servlet

Java Servlet是运行在web服务器或应用服务器上的程序,它是作为来自web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。相较于CGI,Servlet有以下几点优势:

  • 较好的移植性,可扩展性强。由于java语言的跨平台和可移植性强的特点,java语言是健壮的、面向对象的编程,容易扩展。
  • 执行效率高。CGI对每个请求都建立一个进程来处理,而Servlet建立一个线程来执行。创建线程比创建进程的开销要小。
  • 功能强大。Servlet可以与web服务器进行交互,而CGI却无法与web服务器直接交互。
  • 使用方便
    具体而言,Servlet处理客户端请求有如下几个步骤:
  • 用户通过单击一个链接来向Servlet发起请求。
  • web服务器接收到该请求后,会把该请求交给相应的容器来处理,当容器发现这是对Servlet发起的请求后,容器此时会创建两个对象:HttpServletResponse和HttpServletRequest
  • 容器可以根据请求消息中的URL消息找到对应的Servlet,然后针对该请求创建一个单独的线程,同时把上一步中创建的两个对象以参数的形式传递到新创建的线程中。
  • 容器调用Servlet的Service()方法来完成对用户请求的响应,service()方法调用doPost()或doGet()方法来完成具体的响应任务,同时生成动态页面返回给容器。
  • 容器把响应的消息组装成HTTP格式返回给客户端。此时,这个线程运行结束,同时删除第二步创建的两个对象。
    在这里插入图片描述
4.doPost()方法和doGet()方法怎么选择

当HTTP请求中的method属性为get时,调用doGet()方法;当method属性为post时,则调用doPost方法。

5.什么是Servlet生命周期

Servlet生命周期可被定义为从创建直到毁灭的整个过程。只有两个状态:未创建状态与初始化状态。由以下三个重要方法来控制:

  • Servlet 通过调用 init () 方法进行初始化。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
    最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
    Servlet的生命周期可以分为加载、创建、初始化、处理客户请求和卸载五个阶段。
    1.加载:加载Servlet
    2.创建:调用Servlet构造函数来创建一个Servlet实例
    3.初始化:init()完成初始化工作
    4.处理客户请求:service()
    5.卸载:在卸载Servlet之前需要调用destroy()方法。
6.JSP有哪些优点

jsp的引入一定程度上解决了Servlet的缺点,其实现理念是让每个Servlet只负责其对应的业务逻辑的处理,让JSP来负责用户的HTML显示,因此实现了业务逻辑与视图实现的分离,从而极大地提高了系统的扩展性。

7.JSP和Servlet有何异同

同:JSP可以完成的工作,使用Servlet都可以完成。由于JSP页面最终要被转换成Servlet来运行。
不同:Servlet实现是在java中嵌入 HTML代码,编写和修改HTML非常不便,比较适合做流程控制、业务处理;而JSP的实现方式为HTML中嵌入java代码,比较适合页面的显示。
Servlet中没有内置对象 ,JSP中的内置对象都必须通过HttpServletRequest对象、HttpServletRequest对象以及HttpServlet对象得到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章