1.1 Java Web基础
本章主要介绍一些在面试中经常遇到的关于JSP和Servlet的问题。JSP和Servlet是Java开发动态网页的技术基础,曾经应用广泛。不过在前后端分离开发盛行的今天,这两项技术确实没那么重要了,但也不是没有人在使用它,有很多的老项目仍在使用,有很多公司也在全部或部分使用。
JSP(全称Java Server Pages)是基于Java建立在Servlet规范之上的动态网页技术标准。JSP实质上是一个Servlet,JSP文件在运行时会被编译转换成Servlet代码。JSP技术能够支持高度复杂的基于Web的应用。JSP文件扩展名为.jsp,JSP将Java代码嵌入到静态的HTML代码当中,其中,HTML代码用于实现网页中静态内容的显示,Java代码用于实现网页中动态内容的实现。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,四处运行”的优点。
Jsp技术具有以下特点。
1)预编译:预编译指在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,编译好的代码将被保存,在下一次对同一JSP页面进行请求访问时会直接执行已编译好的代码。这样既节约了服务器的CPU资源,还大幅度提升了客户端的访问速度。
2)业务代码相分离:在使用JSP技术开发Web应用时,也可以将前端界面的开发和应用程序的开发进行分离,来提高工作效率。当然,这里的分离开发和现在盛行的前后端分离开发的模式还是有很大不同的。
3)组件重用:JSP可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者将其作为一个数据存储模型,在JSP页面甚至整个项目中,都可以重复使用这个JavaBean,同时,JavaBean也可以应用于其他Java应用程序中。并且,JSP的标签库技术将很多常用的功能进行了封装,实现了功能代码的复用。JSP不仅提供有通用的内置标签(JSTL),而且支持可扩展功能的自定义标签。
4)跨平台:由于JSP是基于Java语言的,所以它也是跨平台的,能够很方便地从一个平台移植到另外一个平台。
Servlet的名称由Server Applet合并而来,Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性。Servlet的主要功能是交互式地浏览和修改数据,生成动态Web内容。Servlet担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
一般来说,JSP侧重视图,Servlet主要用于控制逻辑。
下面是关于Java Web的一些常见面试题。