1 / 27

JSP 动态 Web 技术

JSP 语法与内置对象. JSP 动态 Web 技术. 广东科学技术职业学院. 内容提要. 1. JSP 语法. 2. 主题网站. 3. 网上调查. 4. 内置对象. 5. 总结与提高. JSP 基本语法. 概念和意义. JSP 内置对象. JSP 的语法规范. 操 作. JSP 内置对象. 常用内置对象应用. 主题网站设计. 使 用. 网上调查. 学习目标. 掌握 JSP 的基本语法 熟练使用 JSP 内置对象 掌握 JSP 开发环境. 项目引入:主题网站. 预备知识 ——page 指令. 实例:

Download Presentation

JSP 动态 Web 技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JSP语法与内置对象 JSP动态Web技术 广东科学技术职业学院

  2. 内容提要 1 JSP语法 2 主题网站 3 网上调查 4 内置对象 5 总结与提高

  3. JSP基本语法 概念和意义 JSP内置对象 JSP的语法规范 操 作 JSP内置对象 常用内置对象应用 主题网站设计 使 用 网上调查 学习目标 • 掌握JSP的基本语法 • 熟练使用JSP内置对象 • 掌握JSP开发环境

  4. 项目引入:主题网站

  5. 预备知识——page指令 • 实例: <%@ page contentType="text/html; charset=GB2312" %> • 作用:指定JSP页面的格式和文字编码(JSP程序必需); • 实例: <%@ page import= " java.io.* ", “java.util.Date " %> • 作用:为JSP页面引入java核心包中的类,可指定多个值。 总结:page指令用来定义整个JSP页面的一些属性和这些属性的值。

  6. 预备知识——静态include指令 • 格式: • <%@include file= “ 要插入的文件名“%> • 说明:文件可以是下列格式: • HTML文件; • JSP文件; • 文本文件; • Java文件 • …… • 分析:被插入的文件是彼此独立完整的文件吗? 总结:把一个文件插入到当前JSP页面,合并成一个新的JSP页面

  7. 知识储备——JSP注释 • JSP程序注释 格式:<%-- 注释内容   --%> 注意:在注释内容中,可以出现除--%>之外的任何内容,若需使用,必须使用转义字符“--%\”表示 • 客户端注释 格式:<!—客户端嵌入注释内容--> • 客户端动态注释: 格式: <!- - 静态注释内容<%=表达式%>静态注释内容 - -> JSP程序注释是对JSP程序进行的注释,服务器不会将其发送到客 户端 客户端注释是指在客户端HTML源码中显示的注释,JSP引擎不做 任何解释,直接输出到客户端HTML源码 客户端注释嵌入动态数据,动态数据通过表达式来表示

  8. JSP 表达式示例 • 使用JSP 表达式进行JSP编程 <body> <h1>JSP表达式</h1> <b>PI 的值: </b><%=Math.PI %><br /> <b>100,99中最大的值 :</b><%=Math.max(100,99) %><br/> <b>100,99中最小的值 :</b><%=Math.min(100,99) %><br/> <b>3+2-5的值 :</b><%=3+2-5 %><br/> <b>(3+2)==5的值 :</b><%=(3+2)==5 %><br/> <b>(3+2)!=5的值 :</b><%=(3+2)!=5 %><br/> </body> 表达式 演示:java表达式

  9. JSP 页面元素 示例 JSP 指令 <%@page contentType="text/html; charset=GBK" language="java" import="java.util.Calendar"%> <%! String getHello(String name) { return "Hi," + name + "!"; } %> <% Calendar now = Calendar.getInstance(); %> JSP声明 Java程序片

  10. JSP 页面元素 • JSP 页面的元素 HTML静态文本 静态内容 以“<%@ ” 开始,以“%> ” 结束。比如: <%@ include file = "Filename" %> 指 令 表达式 <%=Java表达式 %> JSP 页面 <% Java 代码 %> Java程序 <%! 函数或方法 %> 声 明 以“<jsp: 动作名 ” 开始,以“</jsp:动作名> ” 结束 比如:<jsp:include page=" Filename" /> 动作 <!-- 这是注释,但客户端可以查看到 --> <%-- 这也是注释,但客户端不能查看到 --%> 注释

  11. 项目实现 • 新建工程 • 新建Web Application • html文件:head.html、welcome.html、special.htm、connectus.htm • 运用“include”指令,组合页面:          <%@include file= “ 要插入的文件名“%> • JSP文件:welcome.jsp、 special.jsp、 connectus.jsp • 调试、运行

  12. 项目功能改进——请大家完成练习 • 思路: • 减少JSP文件个数; • 超级链接的附带参数; • 实现方法: • 链接方式:修改head.htm文件:<a href="index.jsp?choice=1">专业首页</a> • 获取链接地址:修改index.jsp文件:request.getParameter(choice); • Include指令加载文件

  13. Form标记 分析:传递数据吗? • 功能实现:——Form表单 • 参数如下: • ACTION:表单处理方式,指定数据传送“目的地” • METHOD:数据传输方式,如post或get方法; • ENCTYPE:传送表单数据的编码方式

  14. JSP 页面 请求 请求 客户端 响应 响应 服务器 内置对象 隐式对象

  15. 表示并存储客户端的请求 服务器 客户端 JSP 页面 请求信息 请求 request 对象 request内置对象 • 方法:getParameter(String s) • 作用:获取客户提交的信息; • 使用:reques. getParameter(String s); • 分析:“s”是表单控件的名称; • 实例练习:获取用户提交数据的程序:request.jsp • 分析:如果输入中文,出现什么情况

  16. 中文乱码处理 • String str=request.getParameter(“s”); • Byte b[]=str.getBytes(“ISO-8859-1”); • Str=new String(b); • 简写为: • String str=new String(request.getParameter(“s”). • getBytes(“ISO-8859-1”)); 处理思想:首先,将获取的字符串用ISO-8859-1进行编码,并 将编码存放到一个字节数组中

  17. 使用request对象的其他问题 代码4(最终版): <% String data2=request.getParameter("data"); if(data2==null){ data2="0"; }//空对象处理 double data3,result; try{ data3=Double.parseDouble(data2);//数据类型转换 if(data3>=0){ result=Math.sqrt(data3); %> <%=data2%>的平方根是:<%=result%> <% } else{ %> 请输入一个正数 <%} }catch(NumberFormatException e){ %>请输入数字字符 <% }%> • 实例:文本框中输入一个数字,计算其平方根 代码3: <% String data2=request.getParameter("data"); if(data2==null){ data2="0";}//空对象处理 double data3,result; data3=Double.parseDouble(data2);//数据类型转换 if(data3>=0){ result=Math.sqrt(data3); %> <%=data2%>的平方根是:<%=result%> <%} else{ %> 请输入一个整数 <% }%> 代码2: <% String data2=request.getParameter("data"); double data3,result; data3=Double.parseDouble(data2);//数据类型转换 result=Math.sqrt(data3); %> <%=data2%>的平方根是:<%=result%> 代码1: <% String data2=request.getParameter("data"); result=Math.sqrt(data2); %> <%=data2%>的平方根是:<%=result%>

  18. forward动作标签 • 格式: <jsp:forward page=“要转向的页面”> </jsp:forward> • 作用: 从该指令处停止当前页面的继续执行,而转向其他JSP页面。 • 程序分析:forward.jsp <% double i=Math.random(); if(i>0.5) { %> <jsp:forward page=“index.jsp" > </jsp:forward> <% } %>

  19. param动作标签 • 格式: <jsp:param name=“名字” value=“指定给param的值”> • 作用: 该标签可以与jsp:forward或者jsp:include标签一起使用,可以将param标签中的值传递到include指定或者forward指令要加载/转向的页面中。 <% double i=Math.random(); %> <jsp:forward page="come.jsp" > <jsp:param name="number" value="<%=i%>" /> </jsp:forward> <% String str=request.getParameter("number"); double n=Double.parseDouble(str); %> <P>您传过来的数值是:<BR> <%=n%>

  20. 项目引入——网上调查 • 新建工程 • 页面设计:index.htm、newsselect.jsp、newsok.jsp

  21. 预备知识——session内置对象 • Cookie:是一条极为短小的信息,能够被网站自动地放置在一台电脑的硬盘中。通过Cookie,网站可以识别你是第一次访问,或是又一次访问它。 • 会话:从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开服务器结束,成为一个; • Session用来保存客户端状态信息; • 客户端的每次访问都把上次的session记录传递给Web Server; • Web Server读取客户端提交的session来获取客户端的状态信息;

  22. session常用方法 • public void setAttribute(String key,Object obj); 将Object指定的对象obj添加到session对象中,并为添加的对象指定一个索引关键字; • public Object getAttribute(String key); 获取session对象中含有关键字是key的对象,由于任何对象都可以添加到session对象中,取回对象时,应强制转化为原来类型。 • session.getId();获取session对象的编号 类似方法: session.putValue("namesex",name+sex); String namesex=(String) session.getValue("namesex"); <% if(session.getAttribute(“name”)!=null){ String name = (String) session.setAttribute(“name”); } %> <% session.setAttribute(“name”, “admin”); %>

  23. application对象 • 生命周期:服务器启动——服务器关闭 • 所有客户的application对象都是同一个。 • 例如:聊天室程序、计数器程序、留言板程序。 • 所有客户共享一个application对象 • 常用方法: • getAttribute(String name) • setAttibute(String name,Object value) <% if(application.getAttribute(“ChartRecord”)!=null){ String chartRecord = (String) application.getAttribute(“ChartRecord”); } %> <% application.setAttribute(“ChartRecord”, “hihi”); %>

  24. 服务器 客户端 JSP 页面 创建输出流 请求 在网页上显示输出流 输出流 out 对象 • 表示输出流 • javax.servlet.jsp.JspWriter 类的实例 • 使用 write()、print() 和 println() 方法 创建输出流以显示信息 out 对象

  25. out 对象示例 • 使用out对象进行JSP编程 使用out对象输出 <html> <body> <% out.print(“欢迎来到 JSP:out对象”) ; out.write(“欢迎来到 JSP:out对象”) ; %> … </body> </html> 演示:示例

  26. 总结 • JSP 表达式包括在 <%= %>内; java程序包含在<% %>内;声明包含在<%! %>内 • JSP 指令共有三种类型,即 page、include 和 taglib。JSP 指令包括在 <%@ 和 %>内 • page 指令用于设置 JSP 页面的属性;include 指令用于在 JSP 页面嵌入其他文件 ;forward动作标签用于页面跳转。 • JSP 中的内置对象: request、response、out、session、application

  27. 总结 • JSP隐式对象一般分为输入/输出对象、作用域通信对象 、Servlet 对象 和错误对象四类 • JSP 中的隐式对象包括 page、config、request、response、out、session、application、pageContext 和 exception • JSP 定义的作用域包括 page、request、session 和 application

More Related