zoukankan      html  css  js  c++  java
  • HeadFirst Jsp 07 (使用 jsp)

    Jsp 变成 Servlet, 容器会查看你的JSP, 把它转换成java源代码, 再编译成完整的Java servlet类.

    Jsp 不需要你的编译, 容器会自动替换成servlet.

    image

    在 jsp中可以使用 scriptlet放入常规的java代码, 所谓scriptlet, 就是放在 <% … %> 标记中的Java代码.

    导入一个包, 多个包用逗号分隔

    <%@ page import=”java.util.*, foo.*;” %>

    多个包

    <%@ page import=”foo.*, java.util.*;”%>

    <%@ %> 表示指令

    <% %> 普通jsp 代码  // 注意这里的内容都是局部变量, 因为jsp再转化成Servlet时, 所有的代码都在一个函数内, 函数内的变量当然是局部变量了.

    <%= %> 表达式 例如 <%= ++count %>   // 注意表达式后边不要分号, 自动会调用 out.print(++count);

    <%! %> 用来声明静态变量和方法, 实例变量和方法, 所有内容都会增加到类中, 而且置于服务方法之外. 这里所时候的类是jsp最后生成的那个类.

    <%! int count=0; %>  // 这是一个实例变量

    <%! int doubleCount() {

        count = count * 2;

        return count;

    }

    %>

    <jsp:include page=”wickedFooter.jsp” />   // 标准动作

    <c: set var=”rate” value=”32” />  // 其他动作

    image

    在开发过程中, 没有必要查看容器生成的代码, 但是可以利用这些代码帮助学习, 一旦了解了容器如何处理JSP的各个不同元素, 就不用再查看容器生成的.java源文件了, 而且有些开发商不准许你查看生成的java源代码,只保留了编译后的.class文件.

    image

    image

    image

    容器自己生成的隐式对象

    image

    在jsp中的注释:

    image

    image

    jsp 生命周期

    image

    image

    image

    image

    image

    image

    JSP 转换成 servlet 只发生1次, JSP一旦得到转换和编译, 就像其他servlet一样了, 而且类似于其他的servlet, 一旦servlet得到加载和初始化, 请求时只会发生一件事, 就是创建或分配一个线程来运行服务方法. 所以创建JSP转换成servlet类只是在第一个请求时发生.

    配置 servlet 初始化参数

    image

    以上的配置, 是针对某个特定的servlet.

    覆盖 jspInit() 方法

    <%!

        public void jspInit() {

        }

    %>

    image

    JSP中可以通过隐式对象, 访问属性

    image

    3 大指令

    注意下边, page是一个指令, 而import是page指令的一个属性.

    image

    image

    即前端开发人员和美工人员, 他们不懂java代码, 所以从这个角度说, 嵌套在一起不好.

    要是 JSP 中有办法使用简单的标记来运行java方法, 而且不用把具体的java代码放在页面中, 那该多好, 一切答案尽在EL中.

    对于JSP的做法, 往往有两大抱怨:

    1) 不应该要求Web页面设计人员必须懂 java.

    2) JSP中的 java代码很难维护和修改.

    EL 即表达式语言(Expression Language)的简写, 从 JSP2.0规范开始, 它已经正式成为规范一部分. 原先能用scriptlet和表达式完成的事情, 都能用EL完成, 而且EL往往更为简单. 但是编写具体的功能(方法代码), 不是EL的用途, EL的用于使提供一种更简单的方法来调用java代码. 但是代码本身放在别的地方. 按照当今的最佳实践, 不能再JSP中编写方法代码, 要把java方法写在别的地方, 再用EL来调用.

    EL 表达式: Please contact: ${applicationScope.mail} 表达式形式: ${something}

    对于 Java程序员来说, 从开发角度看 EL 不一定是显著地进步, 实际上, 在 java程序员看来, 这只是意味着“拜托, 我已经懂java了, 可是又要学一个东西” 不过不能只看你自己, 对于WEB美工人员来说, EL更好学, 更易掌握.

  • 相关阅读:
    js,JavaScript,a标签onclick传递参数不对,A标签调用js函数写法总结
    Java两大测试方法Junit和TestNG的比较
    java简单的测试方法执行了多少时间
    利用Chrome的Performance工具排查页面性能问题(原叫timeline)
    P3317 [SDOI2014]重建(Matrix-tree+期望)
    P2221 [HAOI2012]高速公路(线段树)
    P2473 [SCOI2008]奖励关(期望)
    P3302 [SDOI2013]森林(主席树+启发式合并)
    bzoj3932 / P3168 [CQOI2015]任务查询系统(主席树+差分)
    P2219 [HAOI2007]修筑绿化带(单调队列)
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3396698.html
Copyright © 2011-2022 走看看