2
©2004 Marty Hall JSP, Servlet, & Struts Training Courses: servlets
Available in US, China, Taiwan, HK, and Worldwide
JSP and Servlet Books from Sun Press: servlets
Available in English, Chinese (simplified and traditional script),
and 12 other languages
用JSP脚本元素调用Java
代码
议程
•静态和动态文本
•动态代码和好的JSP设计
•JSP表达式
•servlet和JSP页面对类似任务的处理
•JSP scriptlet
•JSP声明
•预定义变量
•表达式、scriptlet和声明之间的对比
4JSP/servlet/Struts/JSF training: servlets 不同JSP 构造的应用
•脚本元素直接调用servlet 代码
•脚本元素间接调用servlet 代码(通过实用工具类)
•bean
•servlet/JSP 的组合(MVC)
•MVC 连同JSP 表达式语言
•定制标签
简单应用复杂应用
设计策略:限制JSP 页面内的Java 代码
•有两种选择:
–将25行Java 代码直接放在JSP 页面中
–将这25行代码放在单独的Java 类中,在JSP 页面中用一行代码调用它
•为什么第二种选择更好?
java和jsp–开发。我们可以在Java 开发环境(编辑器或IDE )中编写单独的类,而非在HTML 环境中。
–调试。如果代码中含有语法错误,在编译时就能够直接看到。简单的打印语句可以直接看到结果。–测试。我们可以编写测试过程,每次更改后都通过循环进行上万次的测试。
–重用。多个页面都可以使用同一个类。
6JSP/servlet/Struts/JSF training: servlets 基本语法
•HTML 文本
–<H1>Blah</H1>
–不加更改地传递给客户。实际上是由类似于下面的servlet 代码生成:
•out.print("<H1>Blah</H1>");
•HTML 注释
–<!–注释内容-->
–和其他HTMl 一样:直接传递给客户•JSP 注释
–<%--注释内容--%>
–并不发送给客户
•要输出<%,使用<\%
脚本元素的类型
•表达式
–格式:<%= expression %>
–求值并插入到servlet 的输出中。也就是会产生类似于out.print(expression)的语句•scriptlet
–格式:<% code %>
–逐字地插入到servlet 的_jspService 方法中(由service 调用)
•声明
–格式:<%! code %>
–逐字地插入到servlet 类的定义体中,不在任何方法之内
8JSP/servlet/Struts/JSF training: servlets JSP 表达式
•格式
–<%=Java Expression %>
•结果
–表达式被求值,转换成字符串,将按照它在JSP 页面中出现的位置插入到HTML 页面中。
–即,表达式在out.print 内放置在That is, expression placed in _jspService inside out.print •示例
–当前时间:<%= new java.util.Date() %>–您的主机名:<%= RemoteHost() %>•XML 兼容的语法
–<jsp:expression>Java Expression </jsp:expression>–在单个页面中不能混合使用不同的版本。如果使用jsp:expression 就必须整个页面都使用XML 。JSP/servlet 的对应
•原始的JSP
<H1>A Random Number</H1>
<%= Math.random() %>
•所产生的具有代表性的servlet 代码
public void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {response.setContentType("text/html");
HttpSession session = Session(true);JspWriter out = Writer();out.println("<H1>A Random Number</H1>");out.println(Math.random());
...
}
10JSP/servlet/Struts/JSF training: servlets JSP 表达式:示例
…<BODY>
<H2>JSP Expressions</H2>
<UL>
<LI>Current time: <%= new java.util.Date() %><LI>Server: <%= ServerInfo() %><LI>Session ID: <%= Id() %>
<LI>The <CODE>testParam</CODE> form parameter:<%= Parameter("testParam") %></UL>
</BODY></HTML>
预定义变量
•request
–HttpServletRequest (service/doGet 的第一个参数)•response
–HttpServletResponse (service/doGet 的第二个参数)•out
–用来将输出发送到客户程序的Writer (JspWriter 带缓冲的版本)
•session –与请求关联的HttpSession (除非用page 指令的session 属性将之禁止)
•application
–ServletContext (用于数据共享),可通过

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。