《某公司JAVA培训(第五讲)2004年7月.ppt》由会员分享,可在线阅读,更多相关《某公司JAVA培训(第五讲)2004年7月.ppt(25页珍藏版)》请在三一办公上搜索。
1、,第五讲 JSP与ServLet技术(一),JSP是Java Server Pages的缩写,是一种动态网页技术标准。Servlet是运行在Web服务器或应用服务器上的Java程序,它是一个中间层,负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库或应用程序。某种程度上,可以将servlet看作是含有HTML的Java程序;将JSP看作是含有Java代码的HTML页面。二者在功能上基本相同。一般说来,对于面向处理的任务,servlet是最佳选择。对于面向表示的任务,JSP是最佳选择。在实际开发过程中,可以将二者结合起来使用。,1.服务器的安装与配置,1.1 安装Ja
2、va开发环境(略)1.2 安装Apache Tomcat服务器下载网址1:http:/下载网址2:http:/jakarta.Apache.org 本课程所用软件为:,软件优点:完全免费,源代码完全公开,对servlet和JSP支持最好,帮助文档齐全,简单易学,安全性好;软件缺点:需要系统管理员手工文本方式配置服务器。,版本说明:Tomcat4.0 支持servlet2.3和JSP1.2Tomcat5.0支持serlet2.4和JSP2.0,1.服务器的安装与配置续1,Tomcat4.0服务器的安装步骤(WIN2000/NT/XP):(1)安装好SunJDK并正确设置系统环境变量 classp
3、ath和path。(2)设置系统环境变量java_home的值为e:jdk1.3.0_02(3)安装Tomcat4.0软件到e盘Apache Tomcat4.0目录。(4)设置系统环境变量tomcat_home的值为 e:Apache Tomcat4.0(5)配置WEB服务(端口号,虚拟目录等)演示说明(6)禁用IIS,启动Tomcat服务器。重新启动系统。,1.服务器的安装与配置续2,1.3 测试Tomcat默认网页,演示说明,1.4 测试用户WEB目录与第一个JSP页面,演示说明,E:MyWebindex.jsp JSP Page 1加到100的和为:abcdef);%,2.JSP语法,2
4、.1 JSP页面的基本结构JSP页面由以下五种基本元素构成:(1)普通的HTML标签(2)JSP标签 指令标签 动作标签(3)全局变量、方法与类声明(4)Java程序片(5)Java表达式,2.JSP语法 续1,2.2 JSP指令标签,2.2.1 page指令 language属性定义JSP页面使用的脚本语言,该属性值目前只能取java。如:,2.JSP语法 续2,import属性为JSP页面引入Java包和类。如:JSP页面默认已经有如下属性值:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*conten
5、tType属性定义JSP页响应的MIME(Multipurpose Internet Mail Extention)类型和JSP页面的字符编码。如:,2.JSP语法 续3,contentType属性的默认值是text/html;charset=ISO-8859-1。session属性用于设置是否需要使用内置的session对象。如:session的默认属性值是=true。buffer属性设置输出缓冲区大小,默认属性值为8kb。如:,2.JSP语法 续4,autoFush属性当输出缓冲区被填满时,是否自动刷新。默认值为true。isThreadSafe属性设置JSP页面是否可多线程访问。其默认值
6、为true。info属性属性值为任意一个字符串。当JSP页面被转译成Java文件时,转译成的类是servlet的一个子类,所以在JSP页面中,可以使用servlet类的getServletInfo()方法获取info的属性值。例1 getServletInfo()的使用。,2.JSP语法 续4,E:MyWebj1.jsp你们是谁?+s);%,2.JSP语法 续5,2.2.2 include指令静态包含文件指令。,2.3 JSP动作标签,2.3.1 include动作标签 动态包含文件指令。,2.JSP语法 续5,2.3.2 forward动作标签 或者2.3.3 plugin动作标签 提示信息
7、:用来提示用户的浏览器是否支持插件下载,2.JSP语法 续6,2.3.4 param动作标签 或者与jsp:include等标签配合使用,向加载的文件提供参数。在jsp程序片中,由request对象的getParameter方法可以获得参数值。例2 jsp:include与jsp:param动作标签的使用。E:MyWebj2.jsp j2_1.jsp,2.JSP语法 续7,加载文件效果:,从1到的连续和是:,2.JSP语法 续8,2.3.5 useBean动作标签(略)2.4 全局变量、方法与类的声明2.4.1 声明变量如:在之间声明的变量在整个JSP页面内都有效。当JSP引擎将JSP页面转变
8、成JavaServlet文件时,将这些变量作为Servlet子类的成员变量,这些变量的内在空间直到服务,2.JSP语法 续9,器关闭后才释放。当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程,这些线程由JSP引擎服务来管理,这些线程共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量的操作的结果,都会影响到其他用户。当多个线程需要修改共享变量时,可以将线程共享变量放入一个synchronized块,或将修改该变量的方法用synchronized来修饰。这样一来,当某个线程在修改该变量时,其他线程必需等待,直到该线程执行完该方法或同步块。例3用全局变量统计页面访问人数。
9、E:MyWebj3.jsp,2.JSP语法 续10,您是第个访问本页的客户。2.4.2 声明方法(略)2.4.3 声明类例4声明类的例子。E:MyWebj4.jsp,2.JSP语法 续11,请输入圆的半径 圆的面积是:,2.JSP语法 续12,2.5 Java程序片可以在之间加入Java程序片。程序片中的变量属于每个客户的线程,它们在该页面内的所有程序片中以及表达式部分有效。2.6 表达式 等效于2.7 JSP页面中的注释2.7.1 HTML注释 2.7.2 JSP注释,3.JSP的内置对象,3.1 request对象该对象存储客户端请求提交的信息。其常用方法有:(1)getParameter
10、(String s)获取表单提交的参数。(2)getProtocol()获取客户向服务器提交信息所用的通信协议。(3)getServletPath()获取客户请求的JSP页面文件的目录。(4)getContentLength()获取客户提交的整个信息的长度。(5)getMethod()获取客户提交信息的方式,比如post或者get。(6)getHeader(String s)获取HTTP头文件中由参数s指定的头名字的值。(7)getRemoteAddr()获取客户的IP地址。(8)getRemoteHost()获取客户机的名称。(9)getServerName()获取服务器的名字。(10)ge
11、tServerPort()获取服务器的端口号。,3.JSP的内置对象 续1,3.2 response对象我们可以用该对象对客户的请求作出动态响应,向客户端发送数据。3.2.1 动态响应contentType属性 response.setContentType(String s)该方法设置动态响应的MIME类型,形参s的取值可以是:text/html text/plain application/x-msexcel application/msword例5改变页面的MIME类型。E:MyWebj5.jsp这是一个改变页面MIME类型的例子。将当前页面用word文档打开吗?,3.2.2 respo
12、nse的HTTP文件头(略)3.2.3 response的状态行(略)3.2.3 response的重定向 response.sendRedirect(URL url)3.3 session对象该对象与每个客户对应,一般用于建立与客户有关的信息。其主要方法有:public void setAttribute(String key,Object obj)public Object getAttribute(String key),3.JSP的内置对象 续2,3.JSP的内置对象 续3,如:String s=new String(Lihua);session.setAttribute(name,s
13、);session.setAttribute(age,new Integer(20);String str=(String)session.getAttribute(name);int n=(Integer)session.getAtrribute(age).intValue();n+;session.setAttribute(age,new Integer(n);,3.4 application对象该对象对应于一个JSP页面,由访问该页面的多线程(用户)共享。其主要方法是:,3.JSP的内置对象 续4,public void setAttribute(String key,Object obj)public Object getAttribute(String key)3.5 out对象out.print();out.println();out.newLine();/换行 例6 简单日历E:MyWebj6.jsp,现在的时间是年月日点分秒,3.JSP的内置对象 续5,