狂神说javaweb笔记
狂神说JavaWeb笔记:别被框架绑架,狂神先搞懂HTTP在干嘛
我翻了三天狂神的笔记JavaWeb视频,最扎心的狂神不是代码写不出来,而是笔记很多人在学Servlet之前,连浏览器和服务器之间那条“看不见的狂神线”都没摸过。你问他GET和POST区别,笔记他能背出“长度限制、狂神安全性”,笔记但你要是狂神让他抓个包看看,他立马懵。笔记
所以这篇笔记第一件事,狂神就是笔记逼你打开浏览器F12。狂神在视频里反复强调一个场景——你点了个登录按钮,狂神浏览器到底干了啥?笔记
其实就三步:拼一个HTTP请求发出去,服务器解析请求头里的狂神Cookie和参数,再甩回来一个带状态码的响应。没了。你写的Java代码,全是在这三步中间塞逻辑。
这事想透了,后面学Servlet就顺了。Servlet说白了就是个Java类,专门接收HttpServletRequest,然后往HttpServletResponse里写东西。别把它想得多神圣,它就是个中间人。
我当初卡最久的地方是Session和Cookie。狂神用了个特糙的比喻:Cookie是服务器发给你的会员卡,你每次进门都得掏出来亮一下;Session是服务器自己柜子里存你的档案,卡丢了档案还在,但得靠卡号找。
这个比喻糙归糙,但真管用。后来我做购物车功能,用户没登录也能加商品,就是用Cookie存了个临时ID,等登录了再拿这个ID去数据库把购物车合并。你要是不理解Session和Cookie的底层配合,这功能你写出来也是东拼西凑。
再往后是Filter和Listener。狂神讲Filter的时候放了个监控录像的案例——每个请求都得经过安检门,你可以在门上查用户有没有带“登录凭证”,没带直接踢回登录页。这比在每个Servlet里重复写if判断强多了。
我实习时改过一个老项目,权限校验散落在三十多个Servlet里,后来全抽到一个Filter里,代码删了六百行。那种爽感,比调通一个复杂算法还上头。
Listener更冷门,但做在线人数统计或者启动时加载缓存特别香。你写个类实现HttpSessionListener,重写sessionCreated方法,用户一上线就计数加一。狂神原话是:“这玩意儿你平时用不着,但别人问起来你得知道它是干嘛的。”
还有JSP,狂神直接说“能不用就不用”。我一开始不信,后来用JSP写了个嵌套五层的if-else页面,改需求时差点把电脑砸了。JSP本质是Servlet,但混着HTML和Java代码,调试起来跟翻垃圾堆似的。
现在主流都是前后端分离,后端返回JSON,前端用Vue或者React渲染。但狂神笔记里有个观点我认——你得学一遍JSP,才知道为什么现在要前后端分离。就像学Java得先看C语言,不是让你用,是让你知道痛在哪。
最后聊聊Maven和Tomcat。很多人上来就配环境,配完就忘。狂神反着讲,先让你手写一个Servlet扔进Tomcat的webapps目录,手动编译、手动部署,跑通了再引入Maven。这一招狠,直接治好了我的“工具依赖症”。
现在你问我Maven干嘛的,我会说它管jar包依赖和打包。但你要是问我Tomcat目录结构,我脑子里还留着当时手动建classes文件夹、手动放web.xml的肌肉记忆。这种底层跑一遍的笨办法,比任何流程图都管用。
学JavaWeb最忌讳的就是急着上Spring Boot。我见过太多简历写“熟悉Spring Boot全家桶”,结果问他Servlet生命周期,支支吾吾说“好像有个init方法”。
狂神的课糙话多,但有一条主线很清晰:HTTP协议→Servlet→Filter/Listener→JSP→Maven整合。你按这个顺序踩一遍坑,后面学框架就是看人家怎么把麻烦封装掉的,而不是被框架牵着走。
笔记写到最后,我电脑屏幕上还挂着那个自己写的登录页面,丑得不行,但点登录的时候,响应头里那个Set-Cookie跳出来,我居然有点激动——原来这玩意儿真能跑通。就这样。
(责任编辑:焦点)
