欢迎点击「算法与编程之美」↑关注我们!
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。
再过两三个月我们学院的15级卓工班学生就要出去实习了,最近有很多同学在询问该如何准备JavaWeb 的面试。企业对学生进行面试,更多的是对学生基础知识的掌握程度来考查的。
因此本文就给大家聊一聊JavaWeb 的基础有哪些?本文所指的基础仅仅涉及 JavaWeb 领域内知识,不涉及其他计算机学科基础课程,如计算机网络、数据结构等课程。
之前在网上流行了一道非常经典的面试题,当我们在浏览器的地址栏输入了一个网址并按回车键,最后看到了网页,请问这背后发生了什么?
这是一个非常开放性的问题,不同领域不同基础的人,回答这个问题的角度也有很大的区别。本文我们将从 JavaWeb 的角度来回答这个问题。回答了这个问题,你也就清楚了JavaWeb 的基础是什么,应该从什么角度去准备面试。
由于我们是做 JavaWeb 开发的,接触最多的 WEB服务器是 Tomcat,使用最多的数据库是 Mysql,使用最多的框架是 SSM框架。
首先来一张基于上述技术的总体流程图:
上面这张图就非常清晰的说明了什么是 JavaWeb 的基础,那些省略号的部分,就是你了解的部分,当有一天这个图不再有省略号的时候,你的 JavaWeb 基础就非常扎实了。
网络应用程序的开发开始的地方就是 Socket,在刚学 Socket 的时候,我们就用Socket 编写了简单的聊天等程序。Tomcat 也是一个基于 Socket 的网络应用程序,无非就是打开端口开始监听,如果有客户端请求来了,就开始处理该请求。
但是我们在做 JavaWeb 开发的时候,我们不需要和任何的Socket 打交道,而是从 Servlet 开始学起,接触最多的概念就是Servlet,那么我们不禁要问从 Socket 到Servlet 到底发生了什么?
同样都是网络应用程序开发,为什么我可以不用了解 Socket 的知识就可以做网络程序开发了?
上面这张图只是给出了从 Servlet 到一个线程开始的地方,还没有到 Socket ,但是从图中看到已经非常复杂了,再到 Socket,你需要了解的知识会更多,当有一天上面这些概念对于你来说不再陌生的时候,那你就可以非常自信的说,从 Socket 到 Servlet 你已经没有问题了。
在做 JavaWeb 开发的时候,我们接触的另一个最多的概念就是 JSP,那么什么是 JSP?JSP 和Servlet 是什么关系?为什么 JSP 的内置对象不用定义就可以直接使用?搞明白了下面这张图,你就明白了为什么。
现在做 JavaWeb 开发的时候,可能很少有人再写 Servlet 了,因为那实在很麻烦,而更多的是使用 SpringMVC 的 Controller 来做开发。如果一开始你接触的就是 Controller而不了解 Servlet 的概念,那么非常遗憾你需要补的知识更多。
搞明白了上面这张图,你就明白了Servlet到 Controller是怎么回事。
现在几乎所有的应用系统都离不开数据库,而Java 在做数据库开发的时候,最原始的技术就是 JDBC。但是我们发现现在在做数据库开发的时候,基本已经不会再使用上面这种原始的技术了,取而代之的是Mybatis、Hibernate 等更高级的框架技术。那么我们同样也要发问从 JDBC 到 Mybatis 经历了什么?Mapper只是一个接口,为什么我没有手动的实例化它,但是我却可以使用它的方法?
利用 JDK 的动态代理技术由BlogMapper 生成BlogMapperProxy代理对象,在执行接口的具体方法时,经历了如下流程,最终达到了JDBC 的PreparedStatement,然后执行 SQL,最后完成结果的封装。虽然简单的一句话就可以描述完所有的流程,但是对于你来说,需要了解这背后发生的一切。
本文总结了 JavaWeb面试的基础,从宏观上给大家介绍了 JavaWeb 技术的核心基础知识,优秀的企业更应该看重的是你的基础知识,相信如果你了解了上面的基础知识,将来接触任何一个新的框架,一个新的技术,你都可以非常快速的上手,而且能够从本质上理解这个新的技术。
四川旅游学院 where2go 团队
长按识别二维码关注我们!
温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!欢迎转发!