前言: 前一段时间写了好多 Servlet 和 JSP 相关的博客, 自以为理解的差不多了, 岂不知人外有人, 天外有天, 代码外还有源码, 受高人点拨, 看了一下 Servlet 源码, 感触颇深, 再也不敢说懂了, 不明白生活的本质, 你永远活在梦里. 当然, 只代表个人一点心得, 如果有大佬路过, 还望海涵, 菜鸟还在路上.
吃一堑长一智
为什么那些大佬那么牛逼, 不为什么, 就是因为他们比别人多问了些为什么. 看着感觉像绕口令一样, 其实生活就是这样, 透过本质看世界, 其实......... 也就那么回事.
今天受老师点拨, 明白了一些知识和人生道理, 可惜小生才疏学浅, 只是理解了一些皮毛, 但这些皮毛若无人点拨, 我何以学编程, 何以成事业, 还是那句话,"读万卷书不如行万里路, 行万里路不如有高人指路, 高人指路还需自己顿悟", 对自己做好定位, 在进步中度过每一天, 相信生活还是很美好的.
走进编程, 看看为什么
这段时间学了 Servlet 和 JSP, 做到了应用层, 但没有做深入研究, 对 Servlet 的接收请求和响应处理, Servlet 的 ServletContext 域对象的使用, 以及页面的转发和重定向的使用做了一些案例, 后来学 JSP, 学了 JSP 中各种语法声明, 标签引入, 脚本语法, 内置对象等, 结合 JSP+JavaBean 模式和 JSP+Servlet+JavaBean(MVC)模式做了一些案例应用. 虽然对这些知识点会用了, 但我觉得应该转换一下思维, 应该先提出为什么, 有了问题之后查询并解决问题.
比如说:
为什么说 JSP 是 Servlet?
为什么 JSP 中有内置对象, 不用实例化就能使用?
为什么 <%! %> 中写声明 , <% %>中写逻辑代码片段 , <%=%>中写表达式?
为什么要用 EL 表达式和 JSTL?
为什么 JSP 使用的人越来越少?
为什么............?
思维决定高度
先说为什么说 JSP 是 Servlet, 不解释, 看源码就知道了. 之前做的好多案例用的案例都是 IDEA, 这次用 Myeclipse 演示, 当然换工具是有原因的, 方便查看源码.
首先, 找到你的 tomcat 安装包, 在安装包中的 work 文件夹下找到你的 web 项目, 再找到如下图所示的源文件.
在 Web 项目中的 index.jsp 上我写了如下图所示的代码, 观察这些脚本语句在类中的位置
我在这描述一下, 然后你再对应着图去看
首先看声明
声明的位置出现在类体中, 它是一个成员变量, 有默认值, 所以不赋值也能直接输出.
再看代码片段和输出表达式
代码片段在一个方法体中, 所以 <%%> 代表方法体, 而 <%=i%> 相当于 out.print(i );, 我想对应到这, 应该能看明白点什么吧, 还有那些内置对象, 都封装到了类中, 所以你在 JSP 中使用的时候能直接使用不用去实例化对象. 所以说, JSP 就是 Servlet 类, 你如果明白原理, 对应于类中, 学起来就不会那么难了(至少我是这样认为的).
明白这些再看, JSP 中写那些代码片段的时候, 是不是感觉很麻烦, 对, 确实很麻烦, 这时候就出现了一个叫 JSTL 的东西, 它简化了在 JSP 中 Java 片段的书写, 用一些标签就能实现一些复杂的功能, 但是这个东西是别人封装的, 你虽然会用, 但终究是别人的, 如果你觉得不服气, 你也可以自定义标签, 自己封装一个标签库, 在 JSP 中快速开发, 之前 JSP 很火的时候许多公司都有自己的标签库, 对, 很火的时候, 那现在为什么 JSP 不火了呢? 按我的理解, 应该是现在有各种端口, 安卓端, 移动端, 等等, 用的多的是前后端分离开发, 对 JSP 的解析太局限, 不像 JSON, 任何端口中都能解析........... 点到为止吧, 在这只是听说, 不敢自己瞎说了, 怕误导别人, 如果有大佬路过, 求指教.
结束
此篇让你先从类的角度认识 JSP, 对 JSP 多一些理解, 下篇我会说到 JSTL 和自定义标签, 欲知后篇如何, 请看下回讲解.
*****************************************************************************************************
我的博客园地址: https://www.cnblogs.com/zyx110/
来源: https://www.cnblogs.com/zyx110/p/11260219.html