JSP内置对象讲解教案

时间:2019-05-12 23:33:46下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《JSP内置对象讲解教案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《JSP内置对象讲解教案》。

第一篇:JSP内置对象讲解教案

第5章 JSP内置对象

在JSP中预先定义好了一些常用的对象,在Web应用中可以直接使用这些对象。内置对象的应用大大简化了Web开发工作。

5.1 JSP内置对象概述

因为java是区分大小写的,所以在JSP中对象名要注意字母的大小写。

JSP内置对象有9个  request对象  response对象  out对象  session对象  application对象  exception对象  page对象

 pageContext对象  config对象

5.2 request对象

 request对象用于接收客户端通过HTTP协议传送给服务器端的数据。

 而response对象主要用来向客户发送信息,它包含了Web服务器对客户的响应信息。

 request和response对象是JSP中很重要的两个内置对象,是实现客户端和服务器交互的基础。

5.2.1 request对象的功能

 request对象用来接收客户端提交的请求

例如:接收用户提交的表单信息

在xxx.jsp文件中需要用request对象接收表单信息。request对象用的比较多的方法是getParameter()方法

5.2.2 getParameter方法

 request对象的getParameter()方法根据指定的参数,获取客户端提交的信息。 其语法规则如下:

<% String name=request.getParameter(“txtName”)%>

其中,name是一个字符串变量。txtName是客户端提交信息中的一个字段名。

5.2.3获取客户提交信息案例 【例5.1】 request对象应用。

 提交页面上有两个文本框,在文本框中输入姓名和电话号码,单击“提交”按钮后,由服务器端应用程序接收提交的表单信息并显示出来。

 其中的infoInput.html为用户的输入页面,提交的信息由服务器端的文件infoReceive.jsp接收并显示。

infoInput.html页面主要代码:

姓名:


电话:


infoReceive.jsp代码

<% String str1=request.getParameter(“RdName”);%> <% String str2=request.getParameter(“PhName”);%> 您输入的信息为:
姓名: <%=str1%>

电话: <%=str2%>
5.2.4 request对象常用方法

 在客户访问页面时,向服务器的JSP引擎提交一个HTTP请求,该请求包含一个请求行、主机头和上载信息。例如:

◦ POST /chapt5/infoReceive.jsp HTTP/1.1

//请求行 ◦ Host localhost

//头,host是头名字

 request对象也提供了一些其他方法,用来获得客户传来信息的其他部分。 request对象常用方法:

1.getProtocol():获取客户端向服务器端传送数据所使用的协议名称和版本号 2.getServerName():获得服务器的名字

3.getServerPort():获得服务器所使用的端口号。4.getRemoteAddr():获得客户端的IP地址。

5.getRemoteHost():获得客户端主机的名字,若失败,则返回客户端的IP地址。6.getMethod():返回客户端向服务器端传送数据的方法,一般方法为get或post。

7.getCookies():返回客户端的cookie对象,结果是一个cookie数组。如果客户端没有发送cookie,则返回空值。

8.getSession(boolean create):返回和当前客户端请求相关联的HttpSession对象,如果当前客户端请求没有和任何HttpSession对象关联,那么当create变量为true,则创建一个HttpSession对象并返回;反之,返回null。9.getHeader(String name):获得http协议定义的传送文件头信息。

10.getAttribute(String name):返回name指定的属性值,若不存在指定的属性,就返回null。

11.getAttributeNames():返回request对象所有属性的名字,结果集是一个Enumeration(枚举)类的实例。12.getHeaderNames():返回所有request header的名字,结果集是一个Enumeration(枚举)类的实例。

13.getHeaders(String name):返回指定名字的request header的所有值,结果集是一个Enumeration(枚举)类的实例。

14.getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回null。通常是表单中的参数.15.getParameterNames():返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返回null。

16.getParameterValues(String name):以字符串数组的形式返回指定参数所有值。

17.getQueryString():返回查询字符串,该字符串由客户端以GET方法向服务器端传送。18.getRequestURI():获得发出请求字符串的客户端地址

19.getServletPath():获得客户端所请求的脚本文件的文件路径。

20.setAttribute(String name,Java.lang.Object o):设定名字为name的request参数值,该值由Object类型的o指定。

21.getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。22.getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,那么返回-1。23.getInputStream():以二进制的形式将客户端的请求以一个ServletInputStream的形式返回。使用此方法可以获得客户端的multipart/form-data数据,可以实现文件上传。

24.isSecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false。25.getDateHeader():返回一个long类型的数据,表示客户端发送到服务器的头信息中的时间信息。26.getInitHeader():获取客户端发送到服务器端的头信息中的某一个特定的信息,并转换为int类型。27.getContextPath():返回环境路径.对于JSP来说,一般是当前Web应用程序的根目录。

28.isRequestedSessionIdValid():返回一个指示客户端请求发送Session ID是否仍然有效的布尔值。

29.isRequestedSessionIdFromCookie():返回一个指示客户端请求发送Session ID是否存在于Cookie中的布尔值。

30.isRequestedSessionIdFromURL():返回一个指示客户端请求发送Session ID是否存在于URL中的布尔值。

5.2.5 request对象常用方法应用案例

【例5.2】 使用request对象的常用方法,获取客户端提交信息的不同部分。

本例中的用户输入页面infoInput2.html只需要把例5.1的文件infoInput.html的form的action属性值改为infoReceive2.jsp即可。infoReceive2.jsp主要代码

<%

out.println(“姓名文本框提交信息:” + request.getParameter(“RdName”)+ “
”);out.println(“电话文本框提交信息:” + request.getParameter(“PhName”)+ “
”);out.println(“客户端协议名和版本号:” + request.getProtocol()+ “
”);out.println(“客户机名:” + request.getRemoteHost()+ “
”);out.println(“客户机的IP地址:” + request.getRemoteAddr()+ “
”);out.println(“客户提交信息的长度:” + request.getContentLength()+ “
”);

%> out.println(“---------
”);

out.println(“getContextPath:” +request.getContextPath()+ “
”);out.println(“requestURI=” + request.getRequestURI()+ “
”);out.println(“requestURL=” + request.getRequestURL()+ “
”);out.println(“servletPath=” + request.getServletPath()+ “
”);// getServletPath 不建议使用 因为当servlet映射成/*时 无法获得

String uri = request.getRequestURI();String servletPath = uri.substring(request.getContextPath().length());out.println(“servletPath=” + servletPath + “
”);总结:

request.getRequestURI()与request.getRequestURL()与request.getServletPath()区别

a)getRequestURI()获得的信息:/day6/servlet/RequestServlet b)getRequestURL()获得的信息:http://localhost/day6/servlet/RequestServlet c)getServletPath()获得的信息: servlet/RequestServlet

getServletPath 不建议使用

因为当servlet映射成/*时 无法获得。

d)request.getContextPath()获得的信息: /day6

那如何获取serverpath String uri = request.getRequestURI();

// /day06aaa/servlet/RequestDemo1

String servletPath = uri.substring(request.getContextPath().length());

System.out.println(“servletPath=” + servletPath);5.3 response对象

◦ ◦ 把服务器端的数据以HTTP的格式发送到客户端浏览器 它的功能和request对象的功能相反

 request对象用于得到用户提交的信息  而response对象是向用户发送信息

 两者结合起来完成动态页面的交互功能。

5.3.1 response对象的功能

 response对象提供的几种输出结果的主要方法:

◦ sendRedirect():页面重定向方法。◦ setStatus():设置状态行方法。

◦ setContentType():设置文本类型方法。

5.3.2 sendRedirect()方法

 将客户端浏览器转向新的页面,页面中重定向语句后的代码不再被执行。 它可以根据用户的不同要求转向不同的页面。 例如:防盗链。(第3章 http协议中讲解)

【例5-3】response对象的使用。

 用户在登录界面输入用户名和密码,提交后验证登录者输入的用户名和密码是否正确,根据判断结果转向不同的页面。

◦ 其中userLogin.html为用户输入界面

◦ userReceive.jsp为接收用户输入信息并判断输入是否正确页面

◦ loginCorrect.html和loginError.html分别为登录成功界面和登录失败界面。

userLogin.html页面主要代码:

姓 名:
密 码:

userReceive.jsp页面源代码:

<% String Name = request.getParameter(“RdName”);String Passwd = request.getParameter(“RdPasswd”);if(Name.equals(“Mary”)&& Passwd.equals(“123456”))

response.sendRedirect(“loginCorrect.html”);else

response.sendRedirect(“loginError.html”);%>

 需要注意的是,在实际的Web开发中,用户的信息保存在数据库中,判断用户登录时所输入的用户名和密码是否正确需要连接到数据库,和数据库中的数据进行匹配。此处为了演示sendRedirect方法的使用,简单的和常量进行比较。

5.3.3 response的状态行

1.状态行的作用

当页面出现错误时,服务器会自动响应,将相应的出错信息返回客户端。状态行包含3位数字的状态代码,代表错误的性质和处理方法。共有5类状态码,如下:

1XX(1开头的3位数):主要是实验性质的。例如101表示服务器正在升级协议。

2XX:表示请求成功。如200表示请求成功。

3XX:表示在请求满足之前应采取的进一步行动。如302请求重定向; 305表示请求必须通过代理来访问。

4XX:浏览器不能满足请求时,返回的状态码。如404表示请求的页面不存在。

5XX:服务器执行出现错误时,返回的状态码。如500表示服务器内部发生错误,不能服务。

2.setStatus()方法

程序中可以使用response对象的setStatus()方法设置状态码。在一般情况下,不需要在程序中设置状态码。页面出现问题时,服务器会自动响应,并发送相应的状态码提示用户。

 使用response.setStatus(int n)方法设置状态行

◦ 例如response.setStatus(501)取得错误信息为501的出错信息,返回该出错页面到客户端。◦ 如果状态代码为出错码,页面中 response.setStatus()后面的语句将不被执行。

[例5-4]状态行的应用

本例包含4个文件 : StatueCode.html

responde对象状态行应用案例

显示不同的状态行


href=“statusCode200.jsp”>200请求成功信息


404请求资源不可用信息


501不支持请求的部分功能


第二篇:JSP内置对象实验报告

JSP程序设计实验报告

(三)院系:计算机科学与工程学院

【实验题目】

JSP内置对象

【实验目的】

1、了解JSP中4个内置对象request、reponse、session、pagecontext的基本概念。

2、理解JSP内置对象的常用方法的功能。

3、掌握JSP内置对象的应用。

【实验内容】

1、request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。

2、response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。

3、session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

4、pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者。

5、练习(自己完成)

【实验代码】

实验1 request对象使用

<%@ page language=“java” import=“java.util.*” pageEncoding=“GBK”%> <%

%>

”>

My JSP 'index.jsp' starting page String path = request.getContextPath();String basePath = request.getScheme()+ “://”

+ request.getServerName()+ “:” + request.getServerPort()+ path + “/”;

请求方式:<%=request.getMethod()%>
请求的资源:<%=request.getRequestURI()%>

请求用的协议:<%=request.getProtocol()%>
请求的文件名:<%=request.getServletPath()%>
请求的服务器的IP:<%=request.getServerName()%>
请求服务器的端口:<%=request.getServerPort()%>
客户端IP地址:<%=request.getRemoteAddr()%>
客户端主机名:<%=request.getRemoteHost()%>

表单提交来的值:<%=request.getParameter(”qwe“)%>
<%

%> String str = ”“;if(request.getParameter(”qwe“)!= null){ Enumeration enumt = request.getParameterNames();while(enumt.hasMoreElements()){ str = enumt.nextElement().toString();out.println(str + ”:“ + request.getParameter(str)+ ”
");} }

第三篇:感恩教案jsp

洪常小学一年级语文上册第一单元“基于标准的教学”教学设计

第三课 童心 “基于标准的教学”教学设计

(总第 20 学时)

课型:新授课

案序:第三单元

设计者:万金辉

学习目标:

1.让学生了解感恩,即让学生懂得为什么要感恩。

2.让学生懂得怎样去感恩,通过活动让学生真真学会如何做人。3.引导学生畅谈理想,展开想象对自己的未来进行美好憧憬。

学习重点:

让学生了解感恩,即让学生懂得为什么要感恩,在有理想的目标中怀着感恩心去实现,自己理想.学习难点:

让学生懂得怎样去感恩。自己脚踏实地的努力去实现。

评价方案:

兴趣激励:让学生明确学习的重要价 值,优化导入设计,教师通过精心设 汁教学过程,适当补充与学生生活相关联的教学材料,激发学生的学习。

氛围激励;正确运用肯定和奖励,采 取适当的竞争方法,适度的竞争,营造民主、平等、和谐、积极向上的课堂氛围。充分、恰当地运用教材、录音、录像等多媒体,让学生全感官参与学习。

教学过程活动化:组织多种形式的课堂教学讨论、交流、等活动形式,完成教学目标,在教学中注重学生自学、指导学生学会自由学习、指导学生学会自我评价。

课前准备:

搜集与主题相关的歌曲,如《感恩的心》 洪常小学一年级语文上册第一单元“基于标准的教学”教学设计搜集相关的学生对感恩的认识,和对自己理想的憧憬,了解学生。

教学预设:

我们每一个人都获得过别人的帮助和支持,应该时刻感谢这些帮助你的人,感谢上天的眷顾。一个人的成长,要感谢父母的恩惠,感谢朋友的恩惠,感谢师长的恩惠,感谢社会的恩惠。

一、讨论:自己怎样认识感恩的?

学生1:所谓“感恩”,就是要记住别人对自己的恩惠,学会报答那些给自己帮助的人。

学生2:我认为我们在生活中就是要多帮助父母,多体谅老师,那就是感恩。

学生3:感恩是一种品德,是一种生活态度。我们只有学会了感恩,生活才会快乐,生活中才会有真挚的情感。

学生4:生活中我们要感恩父母,感恩老师,感恩一切帮助过我的人。教师总结:

刚才几位同学都说了自己对“感恩”的理解,非常好。老师想,在生活中,我们首先要感恩的是父母,因为他们生养了我们;其次,我们要感恩的是老师,因为他们教育了我们;另外,我们还要感恩朋友和对手,因为他们促进了我们的成长;甚至我们还要感恩自然,因为自然给了我们阳光雨露,蓝天碧树,四季变换。可以这样说,面对生活,我们就要怀着一颗感恩之心。

二、讨论:

1.为什么要感恩父母?

2.为什么要感恩老师?为什么要感恩自然和身边的人? 学生先自己考虑,然后再进行小组交流。

三、继续讨论: 1.怎样感恩父母? 洪常小学一年级语文上册第一单元“基于标准的教学”教学设计2.怎样感恩老师?

3.怎样感恩自然和身边其他的人?

学生针对以上三个问题进行讨论,而后教师总结。1.分组讨论发言 2.教师总结

四、下面进行现场调查:

问题:

1、你母亲的生日?

2、你给父亲买过生日礼物吗?

3、你母亲最喜欢的是哪套衣服?

4、你父母的结婚纪念日?

5、你爸爸今天40几岁?属什么的?

6、你爸爸喜欢喝白酒吗?那他一般喝什么牌子的?

7、你父亲喜欢吃的菜是? „„„

总结:通过刚刚的调查我们发现,并不是每个同学都十分了解自己的父母,可是反过来如果被问的是父母,不用调查也会知道结果,父母会对我们的一切记忆的都很深刻!感恩方法大奉献:(1)为劳累的父母、长辈倒一杯茶,揉揉肩,洗洗脚,说说笑话。

(2)每天好好学习,学会尊重、关心老师,给老师一个好心情。(3)体谅、理解父母、老师的苦楚,不顶嘴、争吵,多为他们着想。(4)每天分担些力所能及的事,学会说 “谢谢”、“您辛苦了!”。(5)尊重父母、老师的劳动成果,天天反思过失,学会说“对不起”(6)学会关爱身边的人,存好心,做好人,及时给他人送上温暖。(7)多做善事、好事,尽自己最大的力量报效国家、社会、人民。(8)列一张感恩表,记下感恩的事情,感恩的人,时时图求报答。洪常小学一年级语文上册第一单元“基于标准的教学”教学设计

一起做一个感恩的人吧!感恩父母,感恩老师,感恩社会„„这是我们共同的宣誓,从我做起,从现在做起,总之,希望同学们:1.孝敬父母,学会体贴;2.尊敬老师,努力学习;3.尊重他人,团结友爱。

孩子们,我们带着感恩的心,怀揣自己的理想让我们一起飞翔,理想是灯塔,指引人生前进的方向,照亮人生前进的路程。没有理想,就没有坚定的方向,没有坚定的方向,就没有生活。福尔摩斯也说:世界上最重要的事,不在于我们在何处,而在于我们朝什么方向走。我们头上的一颗指路明星就是——理想。搜集资料:

1.这些有关理想的名人名言是否给同学们一点启示,同学们,我们作为风华正茂的青少年,更应该及早立下自己的志向今天的习作课,我们就一起来畅谈自己的理想。(板书:我的理想)

2、课前同学们不但搜集了关于理想的名言,还搜集了一些故事,下面请同学为大家讲述一个周恩来“为中华崛起而读书”的故事。

总结:理想是美好的,但现在的我们是六年级的小学生,要实现自己远大的理想,那我们应该怎么做呢?

(1)、让学生小组内自由讨论这个问题,并把讨论的结果要点清楚地写下来。

(2)、各小组代表在班上汇报本组的讨论结果。(教师引导学生适当用上“只有„„才„„,虽然„„但是„„”等关联词。)

引路:孩子们,我们一起看一看我们的理想树,你的理想是什么呢?(找学生那自己的理想名片贴在理想树上)

同学们,你有什么样的理想呢?在实现自己理想的旅途中做为五年级的学生你准备怎么做?

学生1:努力学习,按时完成作业。学生2:脚踏实地,做自己应该做的事。

学生3:做事不要急于求成,不要放弃,相信自己会实现。学生4:合理认识自己,有条理安排自己时间去学习。

(引导学生从理想回到现实,从眼前的、力所能及的事做起,以实现人生理想。)总结与鼓励: 洪常小学一年级语文上册第一单元“基于标准的教学”教学设计

理想是还没有实现的东西,是对未来的美好憧憬和希望,这要求我们好好把握今天,努力学习,打下坚实的知识基础,才能拥有美好的明天,理想的实现前提是把握人生。孩子们,我们带着感恩,一起祝福我们实现理想吧!音乐:《感恩的心》,感恩的心,感谢有你,伴我一生,让我有勇气作我自己,感恩的心,感谢命运,花开花落,我依然会珍惜„„

伴随着这动人的歌曲,我宣布“谈感恩,畅理想”到此结束。板书设计:

童 心

学会感恩:父母 老师 朋友 社会 „„ 我的理想:医生 宇航员 科学家 „„课后反思:

第四篇:jsp教案6

湖南城市学院教师备课纸

第 6 次课

JSP内置对象(Exception、application、page、PageContext、config)及其应用

目的要求

掌握Exception、application、page、PageContext、config对象的属性、方法及应用

教学重点

JSP内置对象的含义、属性、方法及使用 教学难点 各对象的综合运用 教学课时 4(含2课时上机)

教学方法 讲解、示例与启发式教学相结合 教学内容和步骤

JSP内置对象是不需要声明,直接可以在JSP中使用的对象,JSP有以下几种内置对象: request, reponse, out, session, application, config, pagecontext, page, exception.6.1 aplication对象 6.1.1 什么是application application是执行javax.Servlet.ServletContext界面的类,主要用于保存用户信息,代码片段的运行环境; 它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享。服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。6.1.2 Application对象常用方法

(1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。

(2)public Object getAttribute(String key): 获取application对象中含有关 键字的对象。(3)public Enumeration getAttributeNames():获取application对象中含存

储的对象的名字。

(4)public void removeAttribute(String name)(5)public String getMajorVersion()取得服务器支持的主版本号。(6)public String getMinorVersion()取得服务器支持的次版本号。(7)public String getServerInfo()(8)public String getRealPath()例1:application.jsp application变量的使用

application变量的使用

<% Object obj = null;String strNum =(String)application.getAttribute(“Num”);int Num = 0;//检查是否Num变量是否可取得 if(strNum!= null)Num = Integer.parseInt(strNum)+ 1;//将取得的值增加1 application.setAttribute(“Num”, String.valueOf(Num));//起始Num变量值 %> application对象中的Num变量值为 <%= Num %>

第五篇:jsp教案8

湖南城市学院教师备课纸

第 8 次课

题 JAVA服务器小程序(ServLet)之Servlet链、编程应用

目的要求 掌握Servlet链的含义及编程应用 教学重点 ServLet链的构建与Shtml的使用 教学难点 ServLet链的构建 教学课时 4(含2课时上机)

教学方法 讲解、示例与启发式教学相结合 教学内容和步骤 8.1 Servlet链

8.1.1 什么是servlet链

Servlet链,它是JvavServer体系结构的高级特征之一, 与UNIX和DOS命令中的管道类似,你也可以将多个servlet以特定顺序链接起来。在servlet链中,一个servlet的输出被当作下一个servlet的输入,而链中最后一个servlet的输出被返回到浏览器。8.1.2表过滤器(Table Filter)我们以表过滤器看看如何编写一个可以被用于链接的servlet,这个表过滤器servlet将分析另一个servlet的输出,查找含有特殊表格式指令的HTML注释,这些指令包括表有多少列、是否显示表头等等。在该表格式指令之后的所有行将会被格式化成一个HTML表格。这样,链中的前一个servlet只要简单地将数据用逗号分割,数据就可以一行一行地直接输出了,而无须将这些数据格式化成HTML表格。同样,当你决定修改这个表格的格式时,你就不必修改产生数据的servlet,而直接修改这个表过滤器servlet就可以了。

这个表过滤器servlet实现了HTTP服务的方法。首先,它必须重复(echo)上一个servlet中设置的头信息。这些信息包括内容类型、调用的URL、远程主机等等。TableFilter.java显示了设置这些头信息的必要代码。

例1:TableFilter.java

package javaservlets.samples;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class TableFilter extends HttpServlet

{

/**

*

Performs an HTTP service request

* @param req The request from the client

* @param resp The response from the servlet

*/

public void service(HttpServletRequest req,HttpServletResponse resp)

throws ServletException, java.io.IOException

{

// Get all headers set by the previous servlet and echo them

java.util.Enumeration e = req.getHeaderNames();

while(e.hasMoreElements()){

String header =(String)e.nextElement();

String value = req.getHeader(header);

resp.setHeader(header, value);

} // 如下述代码所示,接下来的步骤是取得一个可以从前一个servlet的输出流中讲读取数据的输入流,如果该输入流的内容类型是某种我们可以分析的类型(如HTML),我们就继续下一步骤;否则,我们就从输入流中读出所有字节并毫不修改地把它们写回浏览器。

// Get the input and output streams

ServletInputStream in = req.getInputStream();

ServletOutputStream out = resp.getOutputStream();

// Only process if this is a recognized MIME type

String type = req.getContentType();

if(type.equals(“text/html”)||

type.equals(“text/table”)||

type.equals(“application/x-www.xiexiebang.command, process

// the line

if(inTable){

// Search for the end of the table

if(s.startsWith(””);

// Output the table

out.println(“Symbol,Element”);

out.println(“Ac,Actinium”);

out.println(“Ag,Silver”);

out.println(“Al,Aluminum”);

//Etc...out.println(“Y,Yttrium”);

out.println(“Yb,Ytterbium”);

out.println(“Zn,Zinc”);

out.println(“Zr,Zirconium”);

out.println(“”);

// Wrap up

out.println(“”);

out.flush();

out.close();

}

在你浏览器的URL中输出“/Elements”调用我们在Jrun中配置的servlet映射。在刷新时,浏览器向Web服务器发出URL请求,Web服务器找到与这个URL信息对应的servlet映射,然后调用Elemetns Servlet。Elements Servlet处理GET请求并返回未格式化的元素周期表数据给Web服务器。之后,Web服务器发现存在servlet链接,于是将Elements Servlet的输出重定向为servlet链接中下一个servlet,也就是表过滤器的输入。表过滤器重新设置所有HTTP首部,以适应表过滤器的需要,然后读入所有元素周期表数据,表过滤器使用指定的表格格式信息来分析和处理这些数据,最后生成一个格式化的元素周期表。

⑶ Mime类型

触发servlet链接的另外一种方法是将一个servlet与特定Mime类型联系起来。当这种Mime类型的应答产生时,输出就会被发送给与之相联系的servlet。由于MIME类型是在servlet向输出流中写入时才确定的,所以用这种方法你可以轻易地将servlet的输出重定向到其他servlet。

① Java Web Server

如前所述,在所有的工作之前,你必须确认servlet链接功能已经启用(见图4.4)。截止到本书发稿,还没有可以管理MIME类型和servlet映射的图形用户接口(GUI),所以你不得不手工编辑“mimeservlets.properties”文件。这个文件位于目录“//properties/server/javawebserver/webpageservice”。下述代码给出了基本的内容。值得注意的是,MIME类型所映射的servlet名字实际上是该servlet的别名。

# This file maps mime-types to the servlets which process them

# This is used by the filter manager to set up chains of servlets

# where the ouput of one servlet gets piped to the input of

# another servlet based on the mime-type that the servlet specifies

# with setContentType(“mime-type”)

#

# The default servlet for all mime-types is file.Do not set this

# explicitly.#

# Entries in this file should be of the form

# mime-type/servletname

# ie.# foo/bar=fooServlet

# where fooServlet is defined in servlets.properties

java-internal/parsed-html=ssi

java-internal/template-content=template

② Jrun

在JRun中,你可以通过系统管理应用程序设置MIME类型映射。如图4.10所示,你可以把一个servlet和特定的MIME类型联系起来。

MIME类型链接的例子:Indy 500

为了说明如何通过MIME类型来触发servlet链接,让我们编写一个列出Indianapolis 500自1911年起的所有优胜者。就像Elements Servlet一样,我们直接将输入用逗号分隔的各行数据,并用表过滤器将其格式化成HTML表格形式输出。惟一的不同在于我们设置了一个不同的MIME类型,通过这个MIME类型,Web服务器将Indy 500 Servlet的输出重定向为表过滤器servlet的输入(见例3)。

例3 Indy500.java

package javaservlets.samples;

import javax.servlet.*;

import javax.servlet.http.*;

/**

This is a simple servlet that will return a list of

* past Indianapolis 500 winners

*/

public class Indy500 extends HttpServlet

{

/**

*

Performs the HTTP GET operation

* @param req The request from the client

* @param resp The response from the servlet

*/

public void doGet(HttpServletRequest req,HttpServletResponse resp)

throws ServletException, java.io.IOException{

// Create a PrintWriter to write the response

java.io.PrintWriter out =

new java.io.PrintWriter(resp.getOutputStream());

// Set the content type of the response

resp.setContentType(“text/table”);

// Print the HTML header

out.println(“”);

out.println(“”);

out.println(“Java Servlets Sample” + “Planets In Our Solar System”);out.println(“”);out.println(“

”);out.println(“Planets In Our Solar System

”);out.println(“
”);// Output special table formatting instructions for // the TableFilter servlet out.println(“”);out.println(“Planet,Avg.Distance from Sun,” + “Time to orbit,Time to spin,Moons”);out.println(“Mercury,58 million km,88 days,58.6 days,0”);out.println(“Venus,108 million km,225 days,243 days,0”);out.println(“Earth,150 million km,365.25 days,24 hours,1”);out.println(“Mars,228 million km,687 days,24.62 hours,2”);out.println(“Jupiter,778 million km,11.9 years,9.83 hours,16”);out.println(“Saturn,1427 million km,29.5 years,10.65 hours,19”);out.println(“Uranus,2870 million km,84 years,17.23 hours,15”);out.println(“Neptune,4497 million km,164.8 years,16 hours,8”);out.println(“Pluto,5913 million km,248 years,6.375 days,1”);out.println(“”);// Wrap up out.println(“”);out.flush();out.close();

} /** *

Initialize the servlet.This is called once when the * servlet is loaded.It is guaranteed to complete before any * requests are made to the servlet * * @param cfg Servlet configuration information */

public void init(ServletConfig cfg)

throws ServletException{

super.init(cfg);

}

/**

*

Destroy the servlet.This is called once when the servlet

* is unloaded.*/

public void destroy()

super.destroy();

}

}

和前面的servlet一样,Solar System Servlet将直接输出无格式的数据而将格式化的工作交由表过滤器servlet来完成。由于Java Web Server不支持用HTTP请求触发servlet链接,我们将使用JRun。图4.14显示了Solar System Servlet和表过滤器servelt链接起来以后的输出结果。请注意调用servlet时使用的URL,在这种情况下,URL中包含了一个链接在一起的servlet名字,它们之间用逗号来间隔。8.2 Java Servlet 编程及应用 8.2.1服务器端包含

服务器端包含(Server-Side Includes)是Web 页面设计中的一种常用技术,在一个输出很多网页的系统中,经常会有一些网页的组成部分在多个网页中同时出现。Server-Side Includes 是Java Server 体系结构的一个高级特征,它可以在HTML 文档中嵌入servlet,这样就可以利用一个或多个servlet 来组成最终的HTML 文档,这种特殊的包含了Servlet 输出和HTML 标记的文件用扩展名.shtml 表示。

Servlet 标记的语法:

<servlet name=Servlet_name code=Servlet.class codebase=类路径

名称 1 = 参数值 1

名称 2 = 参数值 2

........名称 n = 参数值 n >

<param name =名称 1 value = 参数值 1 param name =名称 2 value = 参数值 2........param name =名称 n value = 参数值 n > </servlet>

编程思路及技巧:下面是一个完整的简单的服务器包含(SSI)的实例,整个shtml 页面由2个Servlet 组成,第1个Servlet是Header.java,代表页头,主要功能是显示标题信息;第2个Servlet 是Footer.java,代表页脚,主要功能是显示页脚的版权信息;Together.shtml 是将2个Servlet 组合在一起显示的服务器包含,它应当从文档根目录(如root)中加载。

例5: Header.java

import javax.servlet.*;import java.io.*;public class Header extends GenericServlet { public void service(ServletRequest req,ServletResponse resp)throws ServletException, IOException

{ res.setContentType(“text/html;charset=gb2312”);

PrintWriter out =res.getWriter();

// Get the title of the page.Set to empty string if

// no title parameter was given

String titles[] = req.getParameterValues(“title”);

String title = “";

if(titles!= null){

if(titles.length > 0){

title = titles[0];

}

}

Footer.java import javax.servlet.*;import java.io.*;public class Footer extends GenericServlet{ public void service(ServletRequest req,ServletResponse resp)throws ServletException, IOException

{ res.setContentType(”text/html;charset=gb2312“);

PrintWriter out =res.getWriter();

// Format the standard header

out.println(”<hr>“=;

out.println(”<p align='center'><i> 版权所有,信息公司</i></p>“=;

// Wrap up

out.flush();

out.close();

}

/** * <p>Returns information about this servlet */ public String getServletInfo(){

return ”Footer “;

} public void init(ServletConfig cfg)throws ServletException

{

super.init(cfg);} public void destroy(){

super.destroy();

} } 8.2.2使用Java Servlet API 进行会话管理

javax.servlet.http.HttpSession 接口封装了HTTP 会话的细节,该会话与一段时间内特定的Web 客户对Web 服务器的多个请求相关。管理会话数据主要涉及到3个方面:会话交换、会话重定位和会话持久性,只有实现了java.io.Serializable 接口的数据对象才能够被交换、重定位和保持。这个接口主要是让对象具有序列化的能力,它可以将对象的状态信息写入任意的输出流中如:文件、网络连接等。

编程思路:下面是实现一个简单在商场购物的例子,当用户选购商品(糖果、收音机和练习簿)放入购物袋中,保存选购的商品信息。编程技巧说明:

在Servlet 中进行会话管理时,首先要获得会话对象。HttpServletRequest.getSession()对象返回与请求相关的当前HttpSession 对象,并且当该对象不存在时就新创建一个对象;HttpServletRequest.getSession(true)实现相同的功能。如果参数是false,当不存在会话对象时,将返回一个null 值。

8.3 小结

在本讲中,我们讨论了servlet链及编程应用,这是JavaServer体系结构的高级特征之一。servlet链接提供了将一个servlet的输出重定向为另一个servlet的输入的能力。这样,你就可以划分工作,从而使用一系列servlet来实现它。另外,你还可以将servlet组织在一起以提供新的功能。

①:用ServLet编程完成向浏览器输出一个九九乘法表的表格 ②:在TOMCAT环境下配置shtml页面的运行环境并完成教案上的例5。教学总结:

上机实验八:ServLet链与Shtml的使用(2课时)

一、实验目的及要求

1.掌握ServLet链在各种WEB服务器中的配置

2.掌握触发ServLet链的各种方法及如何编写ServLet链 3.掌握shtml的使用

二、实验环境

Myeclipse、Tomcat、JDK

三、实验内容

1.上机完成教案上所有的示例

2.编写shtml页面嵌入如下二个servlet并分析运行结果 Header.java

import javax.servlet.*;import java.io.*;public class Header extends GenericServlet { public void service(ServletRequest req,ServletResponse resp)throws ServletException, IOException

{ res.setContentType(”text/html;charset=gb2312“);

PrintWriter out =res.getWriter();

// Get the title of the page.Set to empty string if

// no title parameter was given

String titles[] = req.getParameterValues(”title“);

String title = ”“;

if(titles!= null){

if(titles.length > 0){

title = titles[0];

}

}

Footer.java import javax.servlet.*;import java.io.*;public class Footer extends GenericServlet{ public void service(ServletRequest req,ServletResponse resp)throws ServletException, IOException

{ res.setContentType(”text/html;charset=gb2312“);

PrintWriter out =res.getWriter();

// Format the standard header

out.println(”<hr>“=;

out.println(”<p align='center'><i> 版权所有,信息公司</i></p>“=;

// Wrap up

out.flush();

out.close();

}

/** * <p>Returns information about this servlet */ public String getServletInfo(){

return ”Footer ";

} public void init(ServletConfig cfg)throws ServletException

{

super.init(cfg);} public void destroy(){

super.destroy();

} } 3.在Myeclipse环境下完成教材P143页中习题6-1与6-2

四、实验步骤

五、实验思考

1.怎样利用Servlet实现页面重定向?

2.比较在TOMCAT与JRUN下配置Servlet链的异同

下载JSP内置对象讲解教案word格式文档
下载JSP内置对象讲解教案.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    jsp教案7(推荐5篇)

    湖南城市学院教师备课纸第 7 次课题 JAVA服务器小程序(ServLet)之定义、方法及编程 目的要求 掌握ServLet的定义、方法及编程 教学重点ServLet的含义、步曙、方法与编程 教学......

    jsp教案第一节课

    初识jsp 一、教学分析: (一)单元课程分析 1、分析实践操作课程在日后就业的地位与作用。 2、分析jsp在网页技术中的地位3、分析jsp在笔试时所占百分比(二)学生分析(学习需要分析)1......

    讲解教案

    一个中国孩子的呼声 教学目标 1.认识7个生字,会写14个生字,正确读写:“执行,维护,给予,素质,凯旋,硕士,贡献,呼吁”等词语。 2.联系上下文理解含义深刻的句子。 3.引导学生从小树立热......

    讲解教案

    口语交际:讲解 教学目标: 1、了解讲解的技巧,学会讲演。 2、讲解练习。 3、培养学生的讲解能力。 教学过程: 一、 导入新课 这节口语交际课的内容是讲解。讲解又叫解说,是针对某......

    阵列对象教案

    课题:阵列对象 教学目的: 1、 知识目标:通过本课学习让同学们学会阵列命令,并能分析图形应用阵列命令 2、 技能目标:熟练掌握阵列命令并应用阵列命令快速绘图 3、 情感目标:通过......

    说明文之把握说明对象及特征讲解

    说明文阅读训练 (一 ————说明对象及特征、说明内容 学习目标: 整体感知说明内容,准确判断并概括说明对象及特征。 一、知识导航: 说明对象:就是说明了什么。 说明特征:......

    古诗讲解教案

    古诗讲解教案——《蜂》 准备上课(展示课件第1页) 1、引言(展示课件第2页) 小蜜蜂为酿蜜而劳苦一生,积累甚多而享受甚少。古往今来,不管是作家,还是诗人都对蜜蜂情有独钟。今天就让......

    句型讲解教案

    2016.10.14 教学内容:句型What’s your mum like ? She has +五官 教学目标:熟练运用该句型 教学重点:句型的灵活运用,包括变换人称,五官的特征用英语描述 教学过程:STEP 1 greet......