《马士兵-servlet_jsp课件》由会员分享,可在线阅读,更多相关《马士兵-servlet_jsp课件(104页珍藏版)》请在金锄头文库上搜索。
1、Servlet,JSP是一种Servlet,背景知识,常用的Web服务器 IIS 应用服务器 Apache web服务器(处理静态页面) Tomcat JSP/Servlet容器 通常的动态网页技术 CGI (Common GateWay Interface) API常用的有(NSAPI,ISAPI) ASP(Active Server Page) PHP(Personal Home Page) JSP/Servlet (Java Server Page),LAMP,tomcat启动与停止,startup shutdown catalina start catalina stop catali
2、na debug 调试错误的时候 run exit help 设置环境变量JAVA_HOME shutdown.bat小心使用,tomcat目录结构,bin: 存放各种平台下启动和关闭Tomcat的脚本文件。 startup.bat是windows下启动tomcat的文件, shutdown.bat是关闭tomcat的文件。 common: 在common目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。 shared: 在shared目录下的lib目录,存放所有web应用能访问的,但Tomcat不能访问的JAR。 server: 在server/webapps目录中
3、,存放Tomcat自带的两个APP-admin和manager应用,来管理Tomcat-web服务用的。 work : Tomcat把各种由jsp生成的servlet文件放在这个目录下。 temp : 临时活页夹,Tomcat运行时候存放临时文件用的。 logs : 存放Tomcat的日志文件 webapps: web应用的发布目录,把 java开发的web站点或war文件放入这个目录下就可以通过tomcat服务器访问了。 conf : Tomcat的各种配置文件,最重要的是 server.xml.,Tomcat配置文件,conf/server.xml 服务器的主配置文件 conf/web.x
4、ml 定义所有Web应用的配置(缺省的Servlet定义和MIME类型定义) conf/tomcat-user.xml 定义了tomcat用户的信息(用于权限与安全),conf/server.xml,顶层类元素: 位于整个配置文件的顶层, ; 连接器类元素Connectors : 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果; 容器类元素Containers: 处理客户请求并且生成响应结果,包含3个: 嵌套类元素Nested Components: 可以加入到容器中的元素,包括: 等 一个包含一个或多个,一个包含唯一一个和一个或多个,多个 共享一个;一个包含多个,每个 定义
5、一个虚拟主机,包含一个或多个web应用; 元素是代表一个在虚拟主机上运行的Web应用。 Please note that for tomcat 5.x, unlike tomcat 4.x, it is NOT recommended to place elements directly in the server.xml file. Instead, put them in the META-INF/context.xml directory of your WAR file or the conf directory as described above.,什么是MIME,Multipur
6、pos Internet Mail Extension 指明白传送内容的格式 最早用于邮件附件 传递文件的头信息 MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。,server.xml的层次结构,HTTP协议基础,HTTP(Hypertext Transfer Protocol, 超文本传输协议) HTTP是以明文方式发送数据的 用于从WWW服务器传输超文本到本地浏览器的传输协议。 HTTP协议是以TCP/IP为基础的高层协议。 现在广泛使用的版本H
7、TTP/1.1 支持持续连接,“100“ : Continue “101“ : witching Protocols “200“ : OK “201“ : Created “202“ : Accepted “203“ : Non-Authoritative Information “204“ : No Content “205“ : Reset Content “206“ : Partial Content “300“ : Multiple Choices “301“ : Moved Permanently “302“ : Found “303“ : See Other “304“ : Not
8、 Modified “305“ : Use Proxy “307“ : Temporary Redirect “400“ : Bad Request “401“ : Unauthorized “402“ : Payment Required “403“ : Forbidden “404“ : Not Found “405“ : Method Not Allowed “406“ : Not Acceptable “407“ : Proxy Authentication Required “408“ : Request Time-out “409“ : Conflict,“410“ : Gone
9、“411“ : Length Required “412“ : Precondition Failed “413“ : Request Entity Too Large “414“ : Request-URI Too Large “415“ : Unsupported Media Type “416“ : Requested range not satisfiable “417“ : Expectation Failed “500“ : Internal Server Error “501“ : Not Implemented “502“ : Bad Gateway “503“ : Servi
10、ce Unavailable “504“ : Gateway Time-out “505“ : HTTP Version not supported GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据 HEAD 请求获取由Request-URI所标识的资源的响应消息报头 PUT 请求服务器存储一个资源,并用Request-URI作为其标识 DELETE 请求服务器删除Request-URI所标识的资源 TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或
11、者查询与资源相关的选项和需求,HTTP协议基础,GET /latest.html HTTP/1.1 Host: Content-Type: text/html 空行 POST /servlet/serv HTTP/1.1 Host: Content-Type: application/x-www-form-urlencoded Content-Length: 32 username=billgates&password=hehe HTTP/1.1 200 OK Date: Fri,31 Dec 2003 10:23:34 GMT Content-Type: text/html Conten
12、t-length: 280 ,服务器端反馈的内容,import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import .Socket; public class TestHTTP public static void main(String args) throws Exception Socket s = new Socket(““, 80);BufferedWriter bw = ne
13、w BufferedWriter(new OutputStreamWriter(s.getOutputStream();bw.write(“OPTIONS(此处写传输方式GET/POST) / HTTP/1.1“);bw.newLine();bw.write(“Host: :80“);bw.newLine();bw.write(“Content-Type: text/html”);指明访问资源类型bw.newLine();bw.newLine(); 空行 代表请求结束bw.flush(); 清空缓冲BufferedReader br = new BufferedReader(new Input
14、StreamReader(s.getInputStream();String str = null;while(str = br.readLine() != null) System.out.println(str); bw.close();br.close();s.close(); ,资源名称(/代表根目录),一个IP配多个域名,Web Application的概念,Web Application Name WEB-INF 静态文件直接放在这,就可访问 web.xml 该web app的配置文件 lib 该web app用到的库文件 classes 存放编译好的servlet META-IN
15、F 存放该web app的上下文信息,符合J2EE标准 Web Application可以直接放在webapp下面 也可以通过配置文件指定到其他目录 里面 ,Tomcat的目录结构,bin/ 二进制可执行文件和脚本catalina start stopcatalina debug run exit common/ Catalina本身和web应用可加载的类目录 conf/ 配置文件目录 logs/ 日志目录 server/ 服务器所需的类库目录 shared/ Web App共享的类库 webapps/ Web应用所存放的目录applications work/ Tomcat的工作目录(存放jsp产生的class文件) temp/ 存放临时产生的文件,Servlet简介,Servlet是服务器小应用程序(http/ftp等) 用来完成B/S架构下,客户端请求的响应处理 平台独立,性能优良,能以线程方式运行 Servlet API为Servlet提供了统一的编程接口 Servlet一般在容器中运行 常见的Servlet容器 Tomcat (其下载、安装和运行请参考视频文件) Jetty / Resin,Servlet示例 HelloWorldServlet.java,需求: 编写一个生成纯文本的简单的Servlet类。 目的: 了解Servlet的基本概念 在web.xml的配置,