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

JSP是Servlet详解的更多相关文章

  1. Servlet详解

    原文出处:http://blog.csdn.net/q547550831/article/details/50458456 Servlet详解 基本概述 Session在计算机中,尤其是在网络应用中, ...

  2. JSP 注释的详解及简单实例

    转自:https://www.jb51.net/article/124727.htm JSP 注释的详解及简单实例 一 三种格式 二 举例 ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  3. Java Servlet详解(体系结构+注解配置+生命周期)

    Java Servlet详解(注解配置+生命周期) 什么是Servlet : (Server applet)? 顾名思义:服务端的小程序 Servlet只是一个接口,定义了Java被浏览器访问到(To ...

  4. Java Web(一) Servlet详解!!

    这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本个人觉得很棒的书,<Java Web 整合开发王者归来>,现在写的这一系列基 ...

  5. (转)Java Web(一) Servlet详解!!

    https://www.cnblogs.com/whgk/p/6399262.html 这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本 ...

  6. web开发(一)-Servlet详解

    在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6399262.html>,在此仅供学习参考之用. 一.什么 ...

  7. jsp pageEncoding属性详解

    Java pageEncoding原理详解 首先看下文章解释: 意思是jsp文件本身的编码 巨大的疑问:这里有一个很大的问题,既然你都已经从jsp中读到了这条属性,证明内容读取正确,那你还需要知道这条 ...

  8. JavaEE系列之(一)JSP基础知识详解

    一.JSP基础语法     1.JSP简介        JSP(Java Server Pages),其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签.JSP是一种动态网页 ...

  9. JSP执行过程详解

    复习JSP的概念 JSP是Java Server Page的缩写,在传统的HTML页面中加入JSP标签和java的程序片段就构成了JSP. JSP的基本语法:两种注释类型.三个脚本元素.三个元素指令. ...

随机推荐

  1. SpringBoot(16)—@ConditionalOnBean与@ConditionalOnClass

    @ConditionalOnBean与@ConditionalOnClass 上一篇讲的@Conditional可以通过条件控制是否注入Bean,这篇讲下有关Bean其它几个常用的注解使用方式 @Co ...

  2. MVC教程:MVC区域路由

    一.区域路由 为了管理网站中大量的文件,在ASP.NET MVC 2.0版本中引入了一个新概念:区域(Area). 有了区域以后,可以让我们的项目不至于太复杂而导致管理混乱.每个模块的页面都放入相应的 ...

  3. C# WinForm实现禁止最大化、最小化、双击标题栏、双击图标等操作

    protected override void WndProc(ref Message m) { if (m.Msg==0x112) { switch ((int) m.WParam) { //禁止双 ...

  4. Java的23种设计模式,详细讲解(二)

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  5. JAVA的基本语法1

    1.关键字 关键字的定义和特点 定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(单词). 就是在java语言编程的时候,在关键的地方使用的单词,体现关键的地方的含义.这些单词都是特有的,并且 ...

  6. Python爬虫动态User-Agent

    下载库fake_useragent 然后就可以随心所欲的使用不同UA了

  7. 阿里云CDN接入踩坑记录

    最近负责的系统安全要求接入CDN,避免DDOS之类攻击,然后华丽丽踩了两个大坑.回顾问题原因后,发现还是相关人员都对CDN原理不够熟悉.了解导致. 坑一:默认支持的文件上传最大是300M 问题现象: ...

  8. Material 风格的搜索框MaterialSearchView的使用

    大多数App中都有搜索的功能,虽然国内实实在在的遵循Google material design设计语言来设计的App实在不多,但个人感觉MD真的是非常值得研究,这次给大家介绍的是 Material ...

  9. [Go] 分页计算页码的主要逻辑

    当使用imap进行读取邮件体的时候,有个函数可以根据传入的开始和结束索引来一次读取多条邮件内容主要逻辑类似这样,从1开始, 1,10   11,20     21,30 或者 1,31   32,63 ...

  10. arm-linux-gcc-5.4.0安装方法

    首先需要下载arm-linux-gcc的安装包 这里提供一个5.4.0版本的安装包,如有需要自行下载. 下载链接:https://pan.baidu.com/s/1prpdmVNWBFzg79OXQs ...