正文
所以以上我们看到,一个Web 项目前端需要表现层,后端有controller层,service层,dao层,持久层。在表现层,除了刚才提到的html,css,js,ajax,jsp等基础知识,在实际开发中,我们还会用到许多框架技术,比如tiles,velocity,freemarker等模板技术来简化表现层的开发。在持久层,除了jdbc外,还有Mybatis,Hibernate等框架来提高开发效率。在Java Web中最耀眼的当属Spring了,Spring作为一个贯穿整个项目的框架,为项目开发带来依赖注入,面向切面编程的功能。除了这些,我们还需要熟练掌握一种关系型数据库的使用,如MySQL,Oracle等,当然更好地话还需要掌握一种非关系型数据库,MongoDB,Redis。
掌握了以上知识点,恭喜你,你已经可以开始写Java Web项目了。但是只会写而不会部署,我们的项目仍然不能拿出来用。所以说到这里,我们的项目代码已经写好,接下来该怎么办呢?当然是需要找一个容器来运行我们的代码。这里的容器是当然不是指Java里的数据类型,而是指应用服务器,此处要特别区分应用服务器与Web服务器,至于Web服务器是什么,稍后会介绍。(如果有同学不是很清楚服务器的概念,可以先看下一段,再回来看)目前,市面主要流行的应用服务器有Tomcat,Jetty,JBoss等。很多人会问我们为什么需要应用服务器?顾名思义,应用服务器就是用来运行我们的应用代码的。这里需要特别提到的是,Java Web用到了像Jsp,servlet这样的动态web技术,而这些技术的代码是必须运行中应用服务器中的。所以当我们写好应用代码后,需要把自己的应用部署到应用服务器上。应用部署好后,那么用户们该怎么访问呢?直接访问应用服务器吗?这个时候就需要web服务器出场了。在互联网上,最强大的应用层协议当属http协议了,人们访问网站就是通过http协议来进行访问的,而Web服务器就是支持http协议的服务器,所以就叫http服务器。Web服务器接收http请求,然后再将请求转交给应用服务器。有人会问用户直接访问应用服务器不好吗?为什么要给web服务器,然后再到应用服务器?从功能实现上来说,是可以的。许多应用服务器,比如Tomcat是具有web服务器的功能,所以直接访问也可以。但是由于在实际的生产环境中,由于负载均衡,cdn加速等原因,我们还是需要在应用服务器的前端再加一个web服务器来提高访问效率,常用的有Nginx,Apache这样的服务器。