java web之servlet

接下来一段时间会写一系列java web的学习博客,重点记录学习的方法和路径。

之所以对java产生了学习的念头,有几个原因:

  • 市场需要,尤其是中小企业对低成本搭建分布式系统的需求,恰好java有很多轮子
  • 微服务思想,spring cloud有完整的微服务轮子,只有亲自实践才有深刻理解

java本身生态庞大、涉及各个领域,从其他语言转过来的同学因为有相关领域的经验,所以一般只需要掌握相关的java框架或者类库就可以投入工作,随着使用的加深不断回顾基础,从而加深理解。

不过我目前的工作接触不到Java,所以我的学习方法更注重知识体系的建立,不求在实践方面有多么的深入,但求知识体系完整,从而提升对java技术栈的各方面理解。另外,语法方面我暂时也不会去刻意的学习,尤其是像thinking in java这种砖头,我是不会去碰的。

这系列的博客不会记录详细的过程,仅仅提供一些学习资料,学习路径。

我不会买任何一本java方面的书,因为它们真的太厚,废话太多了。网上有很多简明扼要的教程和视频(不是那些动辄几十章节,每章节1小时的视频),它们可以提供足够的基础、核心知识点。

IDE

开发java毋庸置疑选择这款编辑器:idea,注册参考:http://idea.lanyus.com/

servlet

没有使用任何框架的PHP语言,与servlet技术的地位非常相像。

PHP脚本只需要编写请求处理逻辑,而具体的网络请求预处理等环节均由PHP-FPM搞定。

servlet也是如此,只需要编写请求的处理与应答,而像请求如何解析,应答如何序列化,以及如何方便的操作请求与应答,都由servlet类库包装好了。

servlet是java web的一个标准化组件,所有web框架都是在这个标准化的接口上封装出来的,所以掌握它是必经之路,学web就要先学servlet。

而tomcat,jboss等开源项目,就是一种HTTP服务端的实现,它们会从磁盘上将你编译过的servlet类加载到内存里并创建对象,网络解析的HTTP请求会解析到servlet相关的request,response对象中,最终传递给servlet对象进行处理,仅此而已。

我把我搭建的项目环境上传了github,方便你搞不定的时候比较一下哪里有差异:java-web-servlet

带着疑惑

  • session保存在tomcat里,而cookie在浏览器端只能session级过期。 — 那么,spring mvc框架是如何支持的?
  • 文件表单解析额外加载了jar包,在最新标准里是如何支持的?
  • spring mvc和servlet的接口有多大差异?以后在spring mvc学习中将会逐步了解。
  • servlet,servletContext,servletConfig,session等等的set和get接口是原子的(线程安全的),但是逻辑上的同步需要自己做(比如set if not exists这种逻辑),参考:https://stackoverflow.com/questions/31588467/is-javax-servlet-servletcontext-set-getattribute-thread-safe

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~