聊一聊JavaWeb面试

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 

再过两三个月我们学院的15级卓工班学生就要出去实习了,最近有很多同学在询问该如何准备JavaWeb 的面试。企业对学生进行面试,更多的是对学生基础知识的掌握程度来考查的。

因此本文就给大家聊一聊JavaWeb 的基础有哪些?本文所指的基础仅仅涉及 JavaWeb 领域内知识,不涉及其他计算机学科基础课程,如计算机网络、数据结构等课程。

之前在网上流行了一道非常经典的面试题,当我们在浏览器的地址栏输入了一个网址并按回车键,最后看到了网页,请问这背后发生了什么?

这是一个非常开放性的问题,不同领域不同基础的人,回答这个问题的角度也有很大的区别。本文我们将从 JavaWeb 的角度来回答这个问题。回答了这个问题,你也就清楚了JavaWeb 的基础是什么,应该从什么角度去准备面试。

由于我们是做 JavaWeb 开发的,接触最多的 WEB服务器是 Tomcat,使用最多的数据库是 Mysql,使用最多的框架是 SSM框架。

首先来一张基于上述技术的总体流程图:

上面这张图就非常清晰的说明了什么是 JavaWeb 的基础,那些省略号的部分,就是你了解的部分,当有一天这个图不再有省略号的时候,你的 JavaWeb 基础就非常扎实了。

1 从 Socket 到 Servlet

网络应用程序的开发开始的地方就是 Socket,在刚学 Socket 的时候,我们就用Socket 编写了简单的聊天等程序。Tomcat 也是一个基于 Socket 的网络应用程序,无非就是打开端口开始监听,如果有客户端请求来了,就开始处理该请求。

但是我们在做 JavaWeb 开发的时候,我们不需要和任何的Socket 打交道,而是从 Servlet 开始学起,接触最多的概念就是Servlet,那么我们不禁要问从 Socket 到Servlet 到底发生了什么?

同样都是网络应用程序开发,为什么我可以不用了解 Socket 的知识就可以做网络程序开发了?

上面这张图只是给出了从 Servlet 到一个线程开始的地方,还没有到 Socket ,但是从图中看到已经非常复杂了,再到 Socket,你需要了解的知识会更多,当有一天上面这些概念对于你来说不再陌生的时候,那你就可以非常自信的说,从 Socket 到 Servlet 你已经没有问题了。

Tomcat源码分析之 doGet方法(一)

Tomcat源码分析之 doGet方法(二)

Tomcat源码分析之 doGet方法(三)

Tomcat源码分析之 doGet方法(四)

Tomcat源码分析之中文乱码(一)

2 从 Servlet 到 JSP

在做 JavaWeb 开发的时候,我们接触的另一个最多的概念就是 JSP,那么什么是 JSP?JSP 和Servlet 是什么关系?为什么 JSP 的内置对象不用定义就可以直接使用?搞明白了下面这张图,你就明白了为什么。

3 从 Servlet 到 Controller

现在做 JavaWeb 开发的时候,可能很少有人再写 Servlet 了,因为那实在很麻烦,而更多的是使用 SpringMVC 的 Controller 来做开发。如果一开始你接触的就是 Controller而不了解 Servlet 的概念,那么非常遗憾你需要补的知识更多。

搞明白了上面这张图,你就明白了Servlet到 Controller是怎么回事。

4 从 JDBC 到 Mapper

现在几乎所有的应用系统都离不开数据库,而Java 在做数据库开发的时候,最原始的技术就是 JDBC。但是我们发现现在在做数据库开发的时候,基本已经不会再使用上面这种原始的技术了,取而代之的是Mybatis、Hibernate 等更高级的框架技术。那么我们同样也要发问从 JDBC 到 Mybatis 经历了什么?Mapper只是一个接口,为什么我没有手动的实例化它,但是我却可以使用它的方法?

利用 JDK 的动态代理技术由BlogMapper 生成BlogMapperProxy代理对象,在执行接口的具体方法时,经历了如下流程,最终达到了JDBC 的PreparedStatement,然后执行 SQL,最后完成结果的封装。虽然简单的一句话就可以描述完所有的流程,但是对于你来说,需要了解这背后发生的一切。

 

总结

本文总结了 JavaWeb面试的基础,从宏观上给大家介绍了 JavaWeb 技术的核心基础知识,优秀的企业更应该看重的是你的基础知识,相信如果你了解了上面的基础知识,将来接触任何一个新的框架,一个新的技术,你都可以非常快速的上手,而且能够从本质上理解这个新的技术。

更多精彩文章:

StringBuffer源码分析之 append 方法

ArrayList源码分析之add 方法

Volley源码分析(1)

聊一聊JavaWeb面试

深入理解ArrayList(一)

深入理解ArrayList(二)

深入理解ArrayList(三)

Java面试基础(一)

Java面试基础(二)

Java面试基础(三)

聊一聊单片机和服务器

50行代码实现简单的网站服务器

50行代码实现网站服务器 2

50行代码实现网站服务器 3

猜你喜欢

转载自my.oschina.net/gschen/blog/1649561