Java Web使用SSH框架多了,很多基础的 JSP 与 Servlet 的东西都忘记了。最近在 JSP 标签 和 Struts2 包装的 Session 对象的混合使用时弄晕了,就翻书温习下。

JSP 和 Servlet 作为 Java Web 的 SSM/SSH框架的底层支撑技术,还是有必要熟练掌握的。

本文主要参考《Servlet 和 JSP 核心编程》第二版第一卷,基本是该书内容的缩减版。

书本P6:

Servlet可看作是含有 HTML 的Java程序,JSP可看作是含有 Java 代码的 HTML页面。

实际上二者(JSP和Servlet)是相同的。JSP文档只不过是编写 Servlet 的另一种方式。JSP 页面会被翻译成 Servlet,Servlet 会被编译,在请求期间运行的就是 Servlet。

P227

JSP脚本元素有3种形式:

1. 形如 <%=  Java Expression  %> ,他们在求职之后插入到 Servlet 的输出之中。

2. 形如 <% Java Code %> 的 scriptlet ,它们将插入到 servlet 的 _jspService 方法(由service方法调用)中。

(博主注:一般JSP报错的时候,可以看到这个 _jspService)

3. 形如 <%! Field/Method Declaration %> 的声明,它们将插入到 servlet 类的定义中,不属于任何已有的方法。

  P303

用Servlet 生产 HTML十分冗长,并且难以修改。这就是引入 JSP 的原因。

...(博主注:但是用JSP就够了么,并不够)

如果需要依据接收到的数据给出完全不同的结果时,应该怎么做呢?虽然脚本表达式.....很强大,但并不能克服JSP页面只能定义相对固定的高层页面外观这一局限。。类似地,如果需要复杂的计算和推理才能确定当前需要的数据,该怎么办呢。JSP在处理商业逻辑上很薄弱。

于是,解决办法就是既使用 JSP ,又使用 Servlet。通过MVC模式,可以发挥各自所长。

=====文中讲了很多 Bean 对象,类似框架的实体类。

=====待写。书的 P306

本文参考《Servlet 和 JSP 核心编程》第二版第一卷。(网上可下载)

重温 JSP 与 Servlet的更多相关文章

  1. 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例

    初步学习JavaEE,对其中jsp与Servlet之间的传值没弄清楚,查看网上资料,发现一篇超详细的文章,收获大大,特此记录下来.具体链接:http://blog.csdn.net/ssy_shand ...

  2. JSP和Servlet的中文乱码处理

    JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我 ...

  3. 一、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)

    背景: 目前业界很流行的MVC(model-view-control)开发模式,理解为 模型是Bean, 视图是 Html/Jsp, 控制是Servlet, 关联数据库的Dao web的运行机制: 数 ...

  4. jsp和servlet中文乱码

    jsp和servlet之间出现中文乱码的集中原因和解决方法详解:http://blog.csdn.net/longyuhome/article/details/7856270

  5. Jsp与servlet本质上的区别

    1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长 ...

  6. Jsp与servlet的区别 1

     Jsp与servlet的区别 2011-12-09 16:27:47 分类: Java 1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识 ...

  7. Jsp与servlet的区别

     Jsp与servlet的区别 2011-12-09 16:27:47 分类: Java 1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识 ...

  8. 如何查看JSP和Servlet版本

    我们在java web开发的过程中,有时在资料上可能会提到环境所要支持的JSP,Servlet版本.如果版本低就可能出现测试错误. 方法:打开tomcat的common/lib 目录下,有两个JAR文 ...

  9. JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?

    JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么? 联系: JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达. JSP编译后是& ...

随机推荐

  1. java8List集合根据对象的属性去重

    import static java.util.Comparator.comparingLong; import static java.util.stream.Collectors.collecti ...

  2. ie9下网页设计兼容模式

    个人实践使用:ie9下使用低版本ie兼容模式,在网站第一个页面的<head>标签后使用<meta http-equiv="X-UA-Compatible" con ...

  3. spring使用redisTemplate

    连接工厂:spring data redis 2.0中提供了两种redis客户端实现 LettuceConnectionFactory JedisConnectionFactory 区别: Lettu ...

  4. jenkins相关下载链接

    Jenkins官网:https://jenkins.io/ 下载rpm安装包:   https://pkg.jenkins.io     http://mirrors.jenkins-ci.org/s ...

  5. maven项目打包分析及打包后war包缺少配置文件报错的原因分析,使用progard混淆时配置分析

    1.maven打包: 一直以来我都没太注意过在myeclipse下使用run as来clean居然对项目的target目录没有进行操作,要让操作有效,需要进入到maven build...选项下,进行 ...

  6. ubuntu 的 python从2.* 升级到3.*

    1.在ubuntu 的终端中用代码下载最新的Python sudo apt-get install python3 2.用命令删除usr/bin/目录下的默认python link文件root@sal ...

  7. js:数组里面获取键名和键值

    在写php时用ajax异步传回的返回数组时是json格式,在js里面处理时有时需要用到键名,此时可以用in来处理 js只有数字索引: <script> var data = new arr ...

  8. .db文件打开方式

    有时在工作中,数据库格式db后缀的格式,直接是打不开的,所以我这里使用了数据库管理工具,步骤如下 1. 在电脑安装 Navicat Premium,安装后在桌面生成图标,点击图标打开程序. 2.打开程 ...

  9. docker exit status 255解决

    一 windows开发整docker就是痛苦,在公司win7电脑想拿起几年没再用的docker 结果直接报错 Error getting IP address: ssh command error: ...

  10. 从零开始的全栈工程师——js篇2.5

    数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单 ...