JSP是Servlet详解
前言:前一段时间写了好多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详解的更多相关文章
- Servlet详解
原文出处:http://blog.csdn.net/q547550831/article/details/50458456 Servlet详解 基本概述 Session在计算机中,尤其是在网络应用中, ...
- JSP 注释的详解及简单实例
转自:https://www.jb51.net/article/124727.htm JSP 注释的详解及简单实例 一 三种格式 二 举例 ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- Java Servlet详解(体系结构+注解配置+生命周期)
Java Servlet详解(注解配置+生命周期) 什么是Servlet : (Server applet)? 顾名思义:服务端的小程序 Servlet只是一个接口,定义了Java被浏览器访问到(To ...
- Java Web(一) Servlet详解!!
这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本个人觉得很棒的书,<Java Web 整合开发王者归来>,现在写的这一系列基 ...
- (转)Java Web(一) Servlet详解!!
https://www.cnblogs.com/whgk/p/6399262.html 这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本 ...
- web开发(一)-Servlet详解
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6399262.html>,在此仅供学习参考之用. 一.什么 ...
- jsp pageEncoding属性详解
Java pageEncoding原理详解 首先看下文章解释: 意思是jsp文件本身的编码 巨大的疑问:这里有一个很大的问题,既然你都已经从jsp中读到了这条属性,证明内容读取正确,那你还需要知道这条 ...
- JavaEE系列之(一)JSP基础知识详解
一.JSP基础语法 1.JSP简介 JSP(Java Server Pages),其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签.JSP是一种动态网页 ...
- JSP执行过程详解
复习JSP的概念 JSP是Java Server Page的缩写,在传统的HTML页面中加入JSP标签和java的程序片段就构成了JSP. JSP的基本语法:两种注释类型.三个脚本元素.三个元素指令. ...
随机推荐
- MySQL 表和列的注释
像代码一样,可以为表以及表中的列添加注释,方便其他人知晓其功能.对于一些字段,在经过一定时间后,创建者未必也能想起其具体的含意,所以注释显得尤为重要. 注释的添加 注释的添加是通过在定义表或列的时候在 ...
- GO基础之函数
一.Go语言函数的格式 函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func.函数名.参数列表.返回值.函数体和返回语句,每一个程序都包含很多的函数,函数是基本的代码块. 函 ...
- window启动webpack打包的三种方法
1.在cmd终端执行 npx webpack命令 2.在package.json文件同级建立webpack.config.js文件,内容如下: const path = require('path') ...
- Linux 下Postgresql 命令:
关闭:service postgresql stop 启动:service postgresql start 启动数据库:pg_ctl start -D /data/postgres 重启数据库: p ...
- IntelliJ IDEA UML插件
在IntelliJ IDEA Ultimate 版本中自带了一个UML插件:UMLSupport 查看了Community版本和AndroidStudio 发现没有这个插件. 要使用这个插件导出需要的 ...
- MongoDB 最近遇到的几个小问题
(1)连接数据库时报错 ERROR Topshelf.Hosts.ConsoleRunHost.Run An exception occurred System.TimeoutException: A ...
- [日常] lscpu查看cpu的详细信息
查看自己电脑的cpu的详细信息 root@tao-PC:/home/tao# lscpu Architecture: x86_64 CPU op-mode(s): -bit, -bit Byte Or ...
- 13.Java基础_数组内存图
单个数组内存图 new int[3]: 在堆内存里申请一块空间存储int类型的变量(初始化时值都为0) int[] array: 在栈内存申请一块内存存储堆内存里数组的首地址 array[i]: 通过 ...
- 如何在Pycharm中添加新的模块
在使用Pycharm编写程序时,我们时常需要调用某些模块,但有些模块事先是没有的,我们需要把模块添加上去. 最近在学习爬虫,写了下面几行代码: 结果出现错误 错误ModuleNotFoundError ...
- [C1] 线性回归(Linear Regression)
线性回归(Linear Regression with One / Multiple Variable) 定义符号(Symbol Definition) m = 数据集中训练样本的数量 n = 特征的 ...