完成JavaWeb项目用到哪些专业技能?在经典的JavaWeb的开发模式中,我们使用Jsp技术来作为展现层的实现,其实也就是所谓的前端。Web开发中经典的MVC模式,Model-View-Controller。

  最近自己做了几个JavaWeb项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Javaweb项目的同学一个比较完整的视角,提供一个所谓的“大局观”,也以便于同学们更有针对性地学习。

  当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看了。

  首先我们从网站的架构谈起

  一般来说,我们将网站分为前端和后端。前端主要负责页面的展示,后端则是业务逻辑的实现。由于html5的兴起,前端领域已经越来越火热,前端技术发展极快,今天我们不做过多介绍,因为现在的互联网公司,前端工程师和Java工程师是完全不同的两种技术岗位。所以我们还是以Java的角度去看待一个项目。

  在前端没有那么火的前几年,或者说在经典的JavaWeb的开发模式中,我们使用Jsp技术来作为展现层的实现,其实也就是所谓的前端。当然只懂得Jsp是不够的还需要懂html,css,js,ajax等一些前端的基础技术,Jsp技术在其中扮演外层包装的角色。那么后端呢?后端是由于一些实现了业务逻辑Java代码和数据库组成。

  说到这,就可以推出Web开发中经典的MVC模式,Model-View-Controller。View,,就是指表现层,Model,是用来承载数据的抽象结构,而Controller则是View和Model的桥梁。View存在与前端代码中,Controller,Model存在与后端代码中。

  在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道)。有时候,为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离。

  在更加大型的网站中,会出现更加复杂的架构,比如dao层与数据层之间要有缓存层,或者访问压力增大后,需要使用集群,负载均衡等高级技术,但在这里,我们就不深入讨论复杂架构了。

  所以以上我们看到,一个Web项目前端需要表现层,后端有controller层,service层,dao层,持久层。在表现层,除了刚才提到的html,css,js,ajax,jsp等基础知识,在实际开发中,我们还会用到许多框架技术,比如tiles,velocity,freemarker等模板技术来简化表现层的开发。

  在持久层,除了jdbc外,还有Mybatis,Hibernate等框架来提高开发效率。在JavaWeb中最耀眼的当属Spring了,Spring作为一个贯穿整个项目的框架,为项目开发带来依赖注入,面向切面编程的功能。除了这些,我们还需要熟练掌握一种关系型数据库的使用,如MySQL,Oracle等,当然更好地话还需要掌握一种非关系型数据库,MongoDB,Redis。

  掌握了以上知识点,恭喜你,你已经可以开始写JavaWeb项目了。但是只会写而不会部署,我们的项目仍然不能拿出来用。

  找一个容器来运行我们的代码

  所以说到这里,我们的项目代码已经写好,接下来该怎么办呢?当然是需要找一个容器来运行我们的代码。这里的容器是当然不是指Java里的数据类型,而是指应用服务器,此处要特别区分应用服务器与Web服务器,至于Web服务器是什么,稍后会介绍。(如果有同学不是很清楚服务器的概念,可以先看下一段,再回来看)

  目前,市面主要流行的应用服务器有Tomcat,Jetty,JBoss等。很多人会问我们为什么需要应用服务器?顾名思义,应用服务器就是用来运行我们的应用代码的。这里需要特别提到的是,JavaWeb用到了像Jsp,servlet这样的动态web技术,而这些技术的代码是必须运行中应用服务器中的。

  所以当我们写好应用代码后,需要把自己的应用部署到应用服务器上。应用部署好后,那么用户们该怎么访问呢?直接访问应用服务器吗?这个时候就需要web服务器出场了。

  在互联网上,最强大的应用层协议当属http协议了,人们访问网站就是通过http协议来进行访问的,而Web服务器就是支持http协议的服务器,所以就叫http服务器。Web服务器接收http请求,然后再将请求转交给应用服务器。有人会问用户直接访问应用服务器不好吗?为什么要给web服务器,然后再到应用服务器?

  从功能实现上来说,是可以的。许多应用服务器,比如Tomcat是具有web服务器的功能,所以直接访问也可以。但是由于在实际的生产环境中,由于负载均衡,cdn加速等原因,我们还是需要在应用服务器的前端再加一个web服务器来提高访问效率,常用的有Nginx,Apache这样的服务器。

  之前老是在讲这个服务器,那个服务器,不知道有没有同学听懵了。其实服务器这个概念,我们应该在真正接触计算机专业领域之前早就听说过,比如以前打游戏觉得卡的时候大家都时不时会用到服务器这个词汇。但是我真正理解并研究服务器是在学习tomcat,jetty之后才开始的。

  那么服务器到底什么呢?

  服务器这个概念其实很简单,就是一台电脑,那它和我们日常用的电脑有什么区别?

  第一,它一般没有显示器,它只有主机。

  第二,它的操作系统不同于我们常用的windows,MacOS。更多的是*nix系统。

  第三,它运行了一些服务器端软件。

  比如说,我们上文提到的Tomcat,Jetty,Nginx,Apache,其实这些都是服务器软件,只是主机运行了这些软件,所以有时候大家就混淆了叫法。所以所谓的数据库服务器,大家也知道了,其实就是运行了数据库的主机。说到服务器,我们所需要掌握的重点知识就是服务器操作系统,也就是*nix系统,比如CentOS,Ubuntu等。

  说到这里,其实一个简单的完整的JavaWeb项目就差不多了。我们简单回顾一下

  首先,我们需要利用各种框架和开发技术写出应用代码。

  接下来,我们需要一个台安装了*nix系统的主机,在上面安装好Web服务器软件,应用服务器软件,再把我们的应用代码部署到应用服务器上。

  现在我们只需要获取到主机的IP地址,就能够远程访问应用了。

  知识点列表:

  开发:

  1、视图层技术——HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker

  2、持久层技术——MyBatis,Hibernate

  3、Spring,SpringMVC

  4、项目构建工具Maven

  5、日志Log4j

  6、版本控制Git

  数据库技术:

  1、SQL语句

  2、参数调优

  操作系统:

  1、熟练掌握一种Linux系统,原理,Shell命令

  服务器技术:

  1、熟练使用并理解一个应用服务器技术的原理(Tomcat)

  2、熟练使用并理解一个Web服务器技术的原理(Nginx)

  附加:

  缓存技术:

  1、熟练使用并理解一种缓存技术(Redis,Memcache,EhCache)

  非关系型数据库

  1、熟练使用并理解一种非关系型数据库(MongoDB)

  中间件技术:

  1、JMS:activeMQ和kafka

  2、RPC:Dubbo

  设计模式:

  1、了解并能够使用几种最主要的设计模式

  网络:

  1、熟练使用并理解一个网络开发技术(Netty)

  2、熟悉http,TCP协议

  Java虚拟机:

  1、熟悉jvm运行原理,内存分布

  2、jvm参数调优

  求职拿高薪,最主要的还是要有一身过硬的本领,学一门时下最流行,并且未来发展前景好的技术。作为编程界的不老传奇,Java是很多人入门的首选。想入门就和业内大咖学习吧,手把手带你入行拿高薪。

  

  以上就是动力节点Java培训机构小编介绍的“JavaWeb完整项目要用到的专业技能”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

JavaWeb完整项目要用到的专业技能相关推荐

  1. 一篇文章指明做JavaWeb项目需要的前置知识+完整项目初解读(萌新必看,十分友好)

    前言 过了web这个阶段了,项目也完成了的我想给各位后来者总结一下我整个项目从开始到结束的经验,当然,也不是一帆风顺,报错有时候折磨的要死,废话不多说,现在就开始吧. 本文一共分为两个部分:纯理论科普 ...

  2. 基于JDBC的JavaWeb开发项目之——网上教务系统

    基于JDBC的JavaWeb开发项目之--网上教务系统 在这个文章里,我会详细的解释JavaWeb其中的一个框架--MVC框架来完成网上教务系统这一个项目.这个项目是使用JDBC去连接数据库,使用了J ...

  3. javaWeb毕业项目、大作业等学习项目汇总目录

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者需要毕业设计定做,大作业指导,购买付费源码等,欢迎指教: 企鹅:869192208 文章目录 前言 JavaWeb(Serv ...

  4. [opencv完整项目详解] 传统图像算法解决路标的检测和识别

    前言: 这是数字图像课程的大作业,老师要求不可以采用深度学习的方法检测和识别特定的路标,只能采用传统的图像算法提取特征从而检测出特定的车牌. 参考文章: https://blog.csdn.net/m ...

  5. Spark Core项目实战(1) | 准备数据与计算Top10 热门品类(附完整项目代码及注释)

      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  6. c#五子棋实验报告_C#五子棋完整项目

    [实例简介] VS2012,可双人玩,键盘操作,可记录落子数量,黑白棋比分,上一次落子位置会高亮显示,方便直观.博客介绍地址:http://blog.csdn.net/q594076608/artic ...

  7. iOS仿抖音节拍界面、Swift,MVVM架构完整项目、日历demo、滚动切换分类等源码

    iOS精选源码 在Object-C中学习数据结构与算法之排序算法 日历-基本功能都有的日历 选择日期 上下月 动画 仿抖音卡节拍界面 垂直.水平方向皆可滚动.header悬浮的列表视图 Auto La ...

  8. iOS打包framework - Swift完整项目打包Framework,嵌入OC项目使用

    场景说明: -之前做的App,使用Swift框架语言,混合编程,内含少部分OC代码. -需要App整体功能打包成静态库,完整移植到另一个App使用,该App使用OC. -所以涉及到一个语言互转的处理, ...

  9. 如何使用graphpad做柱形图_系列文章 如何使用PaddleDetection做一个完整项目(三)...

    系列文章 如何使用PaddleDetection做一个完整项目(三) 该文章是PaddleDetection的完结篇,请参考之前两篇文章 https://zhuanlan.zhihu.com/p/10 ...

最新文章

  1. python多进程共享内存
  2. 干货 | 架构师入门实战视频课程(一)
  3. python右对齐函数_python右对齐的实例方法
  4. sap采购订单更改记录_SAP标准采购流程
  5. 【mybatis mapper XML】List类型入参参数处理
  6. 将JSON转成DataSet(DataTable)
  7. mysql php 流式读取_PHP MySQL 读取数据
  8. 教你如何在Spark Scala/Java应用中调用Python脚本
  9. Web存储—获取Cookie
  10. STL常用函数总结-set
  11. Java8 改进的匿名内部类:
  12. 15个顶级多线程面试题及答案
  13. 深度:余额宝技术架构及演进
  14. 试用officescan 10.5
  15. java:编写一个程序完成:完成在银行的存款和取款操作。在定义银行类时,若取款数大于余额则作为异常处理。
  16. CHD+CM-1 安装
  17. Unity3D 官方案例实现类似红警的移动
  18. 蓝桥杯2021年第十二届真题第一场-双向排序
  19. Machine Learning | (1) Scikit-learn与特征工程
  20. 免费且好玩的API接口

热门文章

  1. 视觉基础与开发思路-第九节形态学操作
  2. 基于AppDomain的插件式开发
  3. 新建Exchange服务器 Outlook端收发邮件报错:0x80040201
  4. 【每天一道算法题】Numeric Keypad
  5. 转 CentOS下php安装mcrypt扩展
  6. perl中Net::FTP帮助文档
  7. EA和Take-Two游戏业巨头纷纷陷入困境
  8. 一个修改RAC REDO引起的DATAGUARD错误 的处理
  9. shouldOverrideUrlLoading(拦截url加载,除资源请求的url) shouldInterceptRequest(拦截所有url请求)
  10. 使用tf.keras搭建mnist手写数字识别网络