前言:前一段时间写了好多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. windows server 2008 r2 安装 vs2017 无法进入安装界面问题解决方法

    在 windows server 2008 r2 版本操作系统上安装 vs2017 经常出现下载进度条结束后没有任何反应问题,一般是因为安装程序兼容性造成的,解决方案如下: 将 C:\Program ...

  2. java基础(31):网络通信协议、UDP、TCP

    1. 网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通 ...

  3. php实现基础排序算法

    <?php header("content-type:text/html;charset=utf-8"); $testArr = array(); $time1 = micr ...

  4. INSTALL_FAILED_NO_MATCHING_ABIS解决办法

    解决方法: 在project切换到Android状态下的build.grade(Module:app)中添加如下内容即可: splits { abi { enable true reset() inc ...

  5. Activit 5.13 工作流部署新版本后回退到上一个版本

    有时因为某些原因Activit流程部署新版本后,还没有发起流程,回退到上一个版本.操作过程: 1.查询版本更新记录,记录字段ID_值,假设值为100: select to_char(t.deploy_ ...

  6. linux环境下安装selenium+chrom+chromdriver.exe

    原文:https://blog.csdn.net/yoyocat915/article/details/80580066 原文:https://blog.csdn.net/hanxue6898/art ...

  7. Linux根目录下各目录含义

    /boot:系统启动的相关文件,比如内核,grub /etc:配置文件 /dev:设备文件 /root:root用户的家目录 /home:用户家目录 /lib:库文件 /bin:用户的命令文件 /sb ...

  8. Python异常类型及处理、自定义异常类型、断言

    异常的概念.识别报错信息 异常处理 断言的基本使用 异常类型(异常就是报错) 常见异常 NameError:名称错误 SyntaxError:语法错误 TypeError:类型错误 错误回溯 查看报错 ...

  9. OSI网络模型和网络连接设备

    OSI网络模型和网络连接设备 OSI模型 7层之间传输的协议传输单元(PDU)的专业叫法. 第7-5层(应用层)传输的pdu叫:data 第4层(传输层)传输的pdu叫:segment(数据段) 第3 ...

  10. Shell命令-搜索文件或目录之which、find

    文件及内容处理 - which.find 1. which:查找二进制命令,按环境变量PATH路径查找 which命令的功能说明 which 命令用于查找文件.which 指令会在环境变量 $PATH ...