Java编程与应用教程 教学课件 ppt 作者 张莉 java_08

上传人:E**** 文档编号:89368503 上传时间:2019-05-24 格式:PPT 页数:35 大小:344KB
返回 下载 相关 举报
Java编程与应用教程 教学课件 ppt 作者  张莉 java_08_第1页
第1页 / 共35页
Java编程与应用教程 教学课件 ppt 作者  张莉 java_08_第2页
第2页 / 共35页
Java编程与应用教程 教学课件 ppt 作者  张莉 java_08_第3页
第3页 / 共35页
Java编程与应用教程 教学课件 ppt 作者  张莉 java_08_第4页
第4页 / 共35页
Java编程与应用教程 教学课件 ppt 作者  张莉 java_08_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《Java编程与应用教程 教学课件 ppt 作者 张莉 java_08》由会员分享,可在线阅读,更多相关《Java编程与应用教程 教学课件 ppt 作者 张莉 java_08(35页珍藏版)》请在金锄头文库上搜索。

1、第8章 Java Servlet常规应用,本章主要内容有: 输出纯文本方式的Servlet 输出HTML网页方式的Servle Servlet的生命周期 处理表单数据 客户端请求 访问标准CGI变量 服务器端响应 处理Cookie 有关Cookie的工具函数,8.1 Java Servlet输出,1. 输出纯文本方式的Servlet 以纯文本方式输出一行字符。(源程序HelloServlet.java) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet

2、 extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException PrintWriter out = response.getWriter(); out.println(“Welcome to Servlet“); /输出字符串 ,8.1 Java Servlet输出,输出纯文本的HelloServlet,8.1 Java Servlet输出,2. 输出HTML网页方式的Servlet 以网页HT

3、ML方式输出一行字符。(源程序HelloHTML.java) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloHTML extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(“text/html“); / ,P

4、rintWriter out = response.getWriter(); out.println(“n“ + “n“ + “HelloHTMLn“ + “n“ + “The second Servlet:HelloHTML!n“ + “); / ,8.1 Java Servlet输出,生成HTML的Servlet,8.2 Servlet的生命周期,1. 加载并实例化 Servlet引擎 Servlet Servlet引擎,8.2 Servlet的生命周期,2. 初始化 形式是: public void init(ServletConfig Config) throws ServletExc

5、eption super.init(config); /Initialization code ,8.2 Servlet的生命周期,3. 执行Servlet 形式如下: public void service (HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException ,8.2 Servlet的生命周期,SingleThreadModel接口的形式为: Public class ThreadModel extends HttpServlet implements Si

6、ngleThreadModel ,8.2 Servlet的生命周期,4. 卸载Servlet 形式为: public void destroy() ,8.2 Servlet的生命周期,生命周期示意图,8.3 处理表单数据,http:/ 这个URL中位于问号后面的部分,即“word=servlet&tn=baiduos&cl=3&ct=0&f=5&lm=0”,就是表单数据。,8.3 处理表单数据,表单数据的读取有两种方法: post方法和get方法。 当使用post方法时,数据由标准的输入设备读入, 当使用get方法时,数据由CGI变量QUERY_STRING传递给表单数据处理程序。,8.3 处

7、理表单数据,1. 读取Web有限个参数 html前端通过 语句和服务器端的Servlet发生联系。 注意:.html文件要保存在根目录下,Servlet文件保存在classes目录中。,8.3 处理表单数据,Parameter.html前端,8.3 处理表单数据,Parameter Servlet的输出,8.3 处理表单数据,2. 中文问题 Java 语言默认的编码方式是unicode,而中国人通常使用的文件和数据库都是基于 GB2312 或者 BIG5 等方式编码的,且中文字符集不只一个,不同的操作系统对中文字符的支持也不尽相同,所以会有许多和汉字编码处理有关的问题在我们进行应用开发中困扰着

8、我们。,8.3 处理表单数据,3. 处理多值参数 利用javax Servlet不仅能获取一个Web参数,每个参数只能有一个值。本节中给出的例子更具有通用性,可以处理多值参数,而且处理参数的值可以为空或为多个值。,8.4 客户端请求,常用的请求头 getHeader:读取传入头 getCookies:返回Cookie头的内容 getAuthType和getRemoteUser:用于将Authorization头拆分为不同的组件。 getContentLength:返回Content-Length头的值 getContentType:返回Content-Type头的值 getDateHeader

9、和getIntHeader:读取指定的头,8.4 客户端请求,getHeaderNames:取得请求中接收到的所有头的名称 getHeaders:返回头首次出现的值,或返回包含头出现时的所有值 getMethod:返回请求的方法 getRequestURI:返回URL中主机和端口之后、表单数据之前的部分 getProtocol:返回请求行的第三部分,8.4 客户端请求,实现客户端程序向服务器发送请求。(源程序RequestHeader.java) import java.io.*; import java.util.*; import javax.servlet.*; import javax

10、.servlet.http.*; public class RequestHeader extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException response.setContentType(“text/html“); PrintWriter out = response.getWriter(); Enumeration e = request.getHeaderNames(); whi

11、le (e.hasMoreElements() String name = (String)e.nextElement(); String value = request.getHeader(name); out.println(name + “ = “ + value); ,8.4 客户端请求,读取HTTP请求头,8.5 访问标准的CGI变量,CGI变量和Servlet的等价映射方式 AUTH_TYPE:如果在请求中指定了Authorization头,则这个变量将会被赋值(basic 或 digest) 。 CONTENT_LENGTH:表示传送的数据的字节数。Servlet的等价方式是St

12、ring.valueOf(request.getContentLength()返回一个字符串(String)或request.getContentLength(),返回一个整数(int)。 CONTENT_TYPE:表示指定附件数据的MIME类型。 DOCUMENT_ROOT:和网站根目录对应的实际路径getServletContext().getRealPath(“/“)可用于访问该变量。在以前的Servlet标准中:request.getRealPath(“/“)。 HTTP_XXX_YYY:访问任意HTTP请求头的方式 PATH_INFO:改变量提供了在URL中Servlet地址之后、查

13、询数据之前的所有路径信息。,PATH_TRANSLATED:在服务器上被映射为web目录的目录的真实路径的信息。可以使用request.getPathTranslated()访问该变量。 QUERY_STRING:如果用GET方法发出请求(requests),这个变量中将会存放请求的数据,其形式为经过URL编码的一个字符串。在servlet中,用request.getParameter方法来访问某个特定的请求数据。如果希望得到原始数据,可以使用request.getQueryString()方法。 REMOTE_ADDR:客户端的IP地址,是String类型的。其形式类似于 “202.205.

14、80.133“。可以使用request.getRemoteAddr()方法访问该变量。 REMOTE_HOST:指定了执行请求的客户端的域名(例如. ““)。可以使用request.getRemoteHost()方法访问该变量。 REMOTE_USER:如果服务器提供了Authorization头并已经进行了解码,则该变量将会提供用户名,用于受保护站点的会话跟踪。使用request.getRemoteUser()方法可以访问改变量,REQUEST_METHOD:指定请求的类型。通常为GET或POST,但也可能是HEAD,PUT,DELETE,OPTIONS,或者TRACE。使用request.

15、getMethod()方法可以访问该变量。 SCRIPT_NAME:Servlet相对于服务器的根目录路径,可以通过request.getServletPath()方法访问改变量。 SERVER_NAME:服务器的名称,通过request.getServerName()方法访问。 SERVER_PORT:服务器的端口,可以使用String.valueOf(request.getServerPort()方法,返回String类型或request.getServerPort()方法,返回int类型进行访问。 SERVER_PROTOCOL:指定了请求命令行中用的协议的版本号,可以通过request

16、.getProtocol()方法访问改变量。 SERVER_SOFTWARE:有关Web服务器的识别信息,可以通过 getServletContext().getServerInfo()访问改变量。,8.6 服务器端响应,1. HTTP状态码 Web服务器端响应浏览器或客户端请求时,其应答由一个状态行,几个应答头,一个空行,内容文档组成,形式如下所示: HTTP/1.1 200 OK Content-Type:text/plain Hello Servlet,8.6 服务器端响应,设置状态码的方法是使用HttpServletResponse的setStatus方法 有两种特殊情况可以使用快捷方法设置状态码: a. 使用sendEr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号