重温 JSP 与 Servlet

  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 核心编程》第二版第一卷。(网上可下载)

原文地址:https://www.cnblogs.com/muyun/p/7427941.html