【Servlet有点学的五脊六兽了】
今晚趁着家里没什么事儿,一口气学了两个小时的Servlet课程。边学边琢磨着,改变改变打法,打算突击一下,以看为主,涉及前后端交互的典型案例,再去着重练习。主要是因为两点:
第一、我发现后边的课程更多是向细节展开的,比如获取请求消息头参数的,就足足40分钟,教你怎么获取每一个参数。这对我来说太细了,看不到啥意义,因为我不知道他可以用在哪。
第二、我向后瞄了一眼Servlet 和JSP的课程,太多了,按这个速度大概要一个月学完。所以我打算把速度提上来,只要知道每一课讲的是什么就行了,等去做练习的时候,回头再翻看。
你们是怎么学的呢?有更好的方法吗?
Java、servlet、http、tomcat,我来讲清楚这几个之间是什么关系,很简单。
看到有人问:“Java为什么需要servlet?http容器是咋回事?”
答案如下(纯手机手写的,没抠细节字眼):
Java不需要servlet,Java web需要。因为http协议需要。
http协议就是一份协议,说请求头 请求头中间要换行,请求头第一个单词是方法,等等。就是一堆字符串标准。
servlet是Java web体系里,对http协议的标准API。可以大致类比于接口。是的,没有实现。
谁实现servlet里的“接口”呢。http服务器来了。
http服务器比如tomcat,主要干了三件事:
1、实现servlet规范(也就是解析http,把解析结果放入servlet里)
2、socket调用,负责tcp/ip这一层的工作。也就是网络调用。
3、请求调度。主要是线程池这一块的东西。
【学Forward,见识Servlet如何偷梁换柱】
前两天哄娃睡觉,学习耽搁了。所以周末连学带练。直观感受是:从看懂到调试出来,是有一段距离的。这个就是多敲,没什么捷径。
今天学了Forward方法,就是在前端浏览器调用Servlet后,Servlet能够掂量自己能不能搞得定,如果搞不定,会偷偷摸摸把这个需求转给其他的Servlet,由后者处理好直接返回给浏览器。
练习的时候我还YY了一下,在浏览器输入一个数值,经第一个Servlet判断,是否转给其他的Servlet。这里用到了逻辑判断、数值类型转换、乱码问题处理等基础知识。
不怕大家笑话,写这么点,用了大半个小时。我也明白这是补了最近囫囵吞枣的坑,不过没办法,时间有限,所以珍惜每一次练习。
五一快乐
现在的javaboy们太卷了,10年前做java的只要会用servlet做增删改查,前端会用个jQuery就能找个工作[泪奔][泪奔]
我爱可乐编程一程序员: 今天面试,一值被问底层源码,结果我笑了!
[机智][机智][机智]面向spring的crud工程师你跳啥?面向中间件的cv工程师你在牛逼啥?离了jpa,mybatis,hibernate你还会查库么?离了springmvc你还会搞servlet么?离了前后端分离你还会jsp么? 离开mq你会做消息队列么?都是方案整合工程师是梁静茹给你的勇气嘲笑别的岗位?linux学精克没?docker玩透了没?k8s玩儿的溜不溜?没有svn,git你是怎么做代码管理的?装逼呢? 咱不说别的别用现有的类库,你给我导出个excel来!装孙子?@鸠摩智首席音效师 创业程序员哇?别套用模板,别当伸手党,你去报价试试!狗屁
【myBatis给我来了个下马威】
按照昨天的如意算盘,今天正式开始学myBatis,因为我最近不是刚学完Servlet嘛,实在受不了“数据硬编码”这件事情。所以就突发奇想,先把myBatis学完,不就能写最粗糙的增删改查了么?
说着容易,结果今天一上来,myBatis给我来了个下马威。我为了把最基础的环境、配置装好,再做个最简单的查询出来,足足花了3个小时。
首先一上来先配置Maven。说老实话,我今天才知道这个单词怎么读...更别提知道他是干什么的了。所以火速学了下Maven是啥、怎么配、有啥用。
然后安装MySQL、Navicat,充分暴露了我初学者的身份,电脑上连数据库都没装过。
接下来是myBatis的目录、XML配置一套组合拳,让我意识到了框架的复杂度。这玩意儿搭起来还是挺麻烦的,好在只需要搭一次。
在实操过程中,充分用到了JavaSE的知识点——面向对象、注解、泛型、异常捕捉......好在之前做过一些练习,在最终通过Junit调试的时候,自力更生处理了几个异常,成功打印出了数据。小有成就感。
千里之行始于足下。接下来继续努力呗。好多人说我前边学的技术太过时了,这次学框架了,终于迎来一个不那么过时的。我给自己定的目标是,两周学完myBatis,试试能不能做得到。等学完myBatis,我试试看能不能搭建一个小网站,从开局一句HelloWorld开始,然后学一点、改进一点......
不YY了,睡觉睡觉。
#头号周刊#
常用的 servlet 包的名称是?
java.servlet
javax.servlet
servlet.http
javax.servlet.http
spring不是为了性能而产生的,而是为了快速开发而出现的。这东西并不能使程序变快,传统集于servlet体系的框架没法和它玩!传统基于拉数据模式的代码和框架要和一起它玩就会出现一会同步转异步,一会异步转同步。自从有了nodejs,非处理数据任务全都让nodejs干了。我感觉后台还是go配C++才是好的 可以缺个主流好用的框架或是成熟的规范。spring这个还是没多大作用,因为用的时候其他库都是同步的,比如操作MySQL,redis等都是同步的,本质上性能高不了多少,真正异步的还是得上vertx。