JavaWeb

Web网络体系的基础架构如图所示:

大体分为三个部分:

  • 网页,前端展示:Web前端开发
  • 服务器,api服务:托管我们的服务端代码,地基是JavaSE,网页和服务器交互涉及Web核心技术,也就是JavaEE,还有和数据库打交道的ORM技术
  • 数据库,数据存储:学习MYSQl等关系型和MongDB这样的非关系型数据库,掌握其基础语法,像MYSQL还可以去进一步了解存储引擎、锁机制等学会SQL优化提高查询效率
    首先,我们先了解下 数据库相关概念,主要学习 关系型数据库 ,常用的就是MYSQL了相比于非关系型数据库的五花八门,关系型数据库反而有一门通用的SQL语言(当然了,针对个别关系型数据库他们还有自己的方言,不过总体来说差别不大)

好了,这下你学会了关系型数据库了吧?至少你是会简单使用MYSQL了吧?不过我们学的不是Java吗?所以我们应该用Java去操作数据库才对呀!这就要靠 JDBC 了,JDBC看起来很麻烦不优雅?那就对了,后面我们都是使用基于JDBC封装的ORM框架去操作数据库的肯定不直接用JDBC的,比如:MybatisMybatis-Plus,甚至是Sharding-JDBC

好了,接下来该开始Web核心技术了,在此之前首先要搭一个服务器出来,没错,因为我们的服务端代码要在服务器上托管运行。Java最著名的服务器软件无疑是 Tomcat 这只猫了 【请区分服务器和服务器软件】
在我们的电脑上安装好Tomcat,IDEA里配置好Tomcat连接信息,接下里我们就可以本地启动一个服务了!(啊,这么麻烦?不用担心,后面Spring会内置Tomcat服务器,你甚至可以轻松切换你想要使用的服务器类型)

服务器软件和服务器环境解决了,接下来就开始Web端编码吧!
JavaWeb三大组件分别是 ServletFilterListener,也就四Controller、拦截器和监听器
我们使用Servlet创建API,接收、发送和解析传输数据的时候我们必须了解 HTTP域对象,明白网络请求包的结构和机制这样才能更好的去解析和完善我们后台程序的逻辑

说起这个传输的数据,现在一般采用 JSON 比较多,是现在最主流的API接口传输格式。在过去则是XML,不过这已经是过去式的了

基于传输的异步交互技术,前后端分离成为了可能,在以前是前后端不分离的写的JSP,配合一些 动态页面技术 直接前后端合在一起,页面和数据杂糅在一起编码,真的很难看

像一般的网站都会有登录功能,登陆之后每次打开都会自动进入登陆后的界面,即便没有登陆,像一些表单交互他也会做记录比如你上次填的值你的选择....那么这是怎么实现的呢?他怎么知道是我呢?怎么知道我上次选了什么呢?这就涉及 会话跟踪技术 了,其实就是cookie和session。不过这种方案做登录校验的话只适合单体项目,复杂的多端分布式集群系统应用现在基本上采用无状态的JWT技术了

JavaWeb的内容基本上就这么多了,了解下经典的 MVC模式和三层架构 ,会对Web有一个更深入的体会,当然随着接触框架和分布式系统,架构会更加丰满和庞大

小结下,Web开发最基本的工作流

Note
  • Servlet对应的是Controller
  • 根据习惯,先写前端再后端也可(总之写之前要明确系统需求)
  1. 先书写Dao层代码:对数据库的操作
    • JDBC(原生)
    • MyBatis,Mapper代理开发
  2. 再书写Service层代码:调用Dao层代码实现具体业务逻辑
    • 仿照Mapper代理开发的方式,SSM框架的思想,接口指向实现类来动态创建Service对象
  3. 然后是Servlet层代码【Controller】:控制器根据访问资源路径调用Service层不同的代码。对应Service,手动创建BaseServlet替代HttpServlet,利用反射根据资源路径动态绑定调用的Service方法
  4. 再然后其中可能有Filter对请求进行鉴权是否对放行去执行Servlet代码
  5. 最后就是前端页面的书写,通过Vue+Ajax构建数据模型异步请求资源路径资源