前言:前一段时间写了好多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/

【原创声明】此篇为作者原创,未经本人同意不得转载,经本人同意转载请说明出处。

我不能保证我所说的都是对的,但我能保证每一篇都是用心去写的,我始终认同“分享的越多,你的价值增值越大”,欢迎大家关注我的技术分享“Java匹马行天下”和学习心得分享“匹马行天下”,在分享中进步,越努力越幸运,人生赢在转折处,改变从现在开始!

支持我的朋友们记得点波推荐哦,您的肯定就是我前进的动力。

转载于:https://www.cnblogs.com/zyx110/p/11260219.html

编程没点为什么,生活就是十万个为什么相关推荐

  1. java没思路_Java编程没思路写不出代码怎么办

    成功不是你想要就能得到的,而是需要你不断努力争取的.时间飞逝转眼间已经学习java编程近一个月了.从零基础到现在能够自己独立完成一段完整的代码,成就感驱使着我学习更多的知识,做出更加优秀的作品. 1. ...

  2. 编程没基础学python多长时间-今天就来告诉你,没有编程基础的人适不适合学python...

    对于0基础的人,直接学 Python 编程合适吗? 小编只能说 非常合适 ,因为在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,非常容易上手,Python 可以让你更好的理解编 ...

  3. 编程没基础学python多长时间-零基础学Python的过程有多难?需要多久?

    Python是一门简单高效,应用范围广泛的计算机语言.先我们要知道Python已经算是一门相对其他编程语言而言,最适合零基础新手学习的开发语言,换句话说,如果连Python都学不进去就不要考虑进入IT ...

  4. 编程没基础学python多长时间--零基础学Python,从入门到精通需要多长时间

    求一份小甲鱼的<零基础入门学习Python>视频教程 评论 本系列教程面向础的同学,是一个深入浅通俗易懂的Python3视频教程. 适群 完全零基础入门,不需要任何前置知识. 教程概述 前 ...

  5. 刚学c++window编程没多久写了一个整人小软件有些bug

    #include<windows.h> #include<iostream> #include<fstream> using namespace std; int ...

  6. 学编程没人带?推荐10个免费学编程的最佳网站给你

    学习编程是开启你的移动端应用开发和Web开发职业生涯的一种绝佳方式和必要途径.本文将分享10个有助你学编程的最佳网站. 1.Codecademy 它是学编程最流行的网站之一.事实上,2000万人已经使 ...

  7. 没计划的生活就是浪费时间

    此标题的目地是为了警醒自己.          一眨眼,国庆就过去了六天.      但这六天似乎过的并不怎么安稳.本来想打算在这个国庆能够做一些事情,结果还是一件未做,真是自己败给了自己.      ...

  8. 儿童python编程培训加盟

    就在上个月,著名的少儿编程品牌"妙小程"暴雷,课程停摆,上海总部人去楼空. 就在一年前,妙小程还融到了A轮近千万美金. 但业内人士说,妙小程做过大规模广告,招生却不如人意,B轮融资 ...

  9. Python3 与 C# 并发编程之~ Net篇

    NetCore并发编程 示例代码:https://github.com/lotapp/BaseCode/tree/master/netcore/4_Concurrency 先简单说下概念(其实之前也有 ...

最新文章

  1. php连接plc,PLC 几种常见的连接口和通讯协议
  2. Qt 读取XML文档的简单示例
  3. jtabel 遍历_使用抽象表模型获取JTable中选定的行
  4. 工作流实战_13_flowable 待办任务列表查询
  5. php 导出excel 特殊字符,PHPEXCEL导出,存在特殊字符遇到的问题
  6. Linux 下 Oracle 内核参数优化
  7. 第七章——DMVs和DMFs(4)——用DMV和DMF监控磁盘IO
  8. 51单片机1602、18B20电子钟--C51源代码
  9. JProfiler 9.1.1部署及使用
  10. Java Web架构演变
  11. 拓端tecdat|R语言分段线性回归分析预测车辆的制动距离
  12. oracle blob 转 varchar2,oracle varchar2与clob、blob互转
  13. yaml 格式错误 did not find expected key
  14. 服务器磁盘配置信息,服务器磁盘阵列配置
  15. 【POWER BI商业数据分析】销售目标分解
  16. dw css规则中文翻译,DW-CS5-CSS规则英汉对照表.docx
  17. 【保卫萝卜】笔记 1
  18. wer 流程图编程_孩子学完各个阶段的编程课能够参加哪些比赛?
  19. pycharm怎么快速注释-块注释
  20. 阿里云后台测试短信模板

热门文章

  1. Problem D. Nothing is Impossible
  2. 操作系统 多线程之优先级翻转
  3. 数据库期末总结笔记( 零基础 )--数据库安全性与完整性-范式-E-R图
  4. UnityShader17:光照属性与阴影
  5. UnityShader9:光照基础回顾
  6. Unity3D之NGUI基础2:使用NGUI
  7. 利用SQL建立数据库
  8. matlab 四种取整函数(fix floor ceil round)的区别
  9. Ubuntu 20.04安装python3.6版本后terminal终端无法打开
  10. 19年全国数学建模比赛A题代码(简单的迭代思想)