Servlet,JSP

上传人:206****923 文档编号:41768474 上传时间:2018-05-30 格式:DOC 页数:34 大小:103KB
返回 下载 相关 举报
Servlet,JSP_第1页
第1页 / 共34页
Servlet,JSP_第2页
第2页 / 共34页
Servlet,JSP_第3页
第3页 / 共34页
Servlet,JSP_第4页
第4页 / 共34页
Servlet,JSP_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《Servlet,JSP》由会员分享,可在线阅读,更多相关《Servlet,JSP(34页珍藏版)》请在金锄头文库上搜索。

1、day012013 年 8 月 30 日 10:091.web 开发的背景知识1)三层的 client/servera.基本结构:数据库:负责数据的存储与检索应用服务器:处理所有的业务逻辑客户端:提供操作的界面,并且显示处理的结果。b.优缺点优点:移植性好,比如换数据库,因为业务逻辑都写在应用服务器上,所以影响不大。换应用服务器所在的平台(不管是换操作系统还是硬件,只要有 JVM,应用服务器都能运行。)缺点:客户端需要单独安装和维护。另外,开发相对复杂,因为需要自定义协议,并且开发相应的通信层。2)brower/servera.基本结构数据库:负责数据的存储与检索。web 服务器:处理所有的业

2、务逻辑浏览器:提供操作界面,并且显示处理的结果。b.优点:客户端不再需要单独的安装了,开发相对简单一些,因为不再需要开发自定义协议,通信层已经开发好了(浏览器,web 服务器,都提供了响应的通信层)。2.servlet 是什么?sun 公司制订的一种用来扩展 web 服务器功能的组件规范。1)用来扩展 web 服务器功能早期的 web 服务器(比如,apache 提供的 web server)不能够处理动态资源(就是说,要依据请求参数进行计算生成页面)的请求。要让 web 服务器能够处理动态资源的请求,就必须扩展其功能。早期,使用的是 cgi 程序来扩展。cgi 是一个规范,可以使用 c,pr

3、al 等语言开发。但是 cgi 开发相对复杂,而且可移植性不好,性能也比较差。2)组件规范a.什么是组件?符合某个规范,实现部分功能的并且可以部署到响应的容器里面运行的软件模块。servlet 就是一个组件,必须部署到 servlet 容器里才能运行。b.什么是容器?符合某个规范,为组件提供一些基础服务的程序。比如,servlet 容器会为 servlet 提供网络相关的基础服务,开发人员在使用 servlet 时不需要编写网络的相关代码。3.如何开发一个 servlet?step1.写一个 java 类,实现 servlet 接口或者继承 HttpServlet 抽象类。step2.编译st

4、ep3,打包一个组件就是建一个文件夹 appname WEB-INF class(字节码文件)lib(可选,jar 文件)web.xml(部署描述文件)注意:appname 可以自定义名称,其他必须按照以上结构来写。step4:部署就是拷贝:将 step3 生成的整个文件夹拷贝到 servlet 容器指定的某个文件夹下面(比如 tomcat 一般拷贝到 webapps 文件夹下面)。或者也可以将 step3 生成的整个文件夹使用的 jar 命令压缩,生成.war 文件,然后再拷贝。step5.启动 servlet 容器,访问 servlethttp:/ip:port/appname/servl

5、et-urlip:servlet 容器所在的机器的 ip 地址servlet-url:web.xml 文件当中的配置4.安装 tomcat(是一个开源的 servlet 容器)5.使用 myeclipse 开发一个 servletstep1.先让 myeclipse 管理 tomcatstep.2 创建一个 web 工程6.servlet 是如何运行的?比如,在浏览器地址栏输入 http:/ip:port/web01/hello step1.依据 ip,port 建立与 web 服务器之间连接(注意:tomcat 等 servlet容器同时也是一个简单的 web 服务器)step2.浏览器将需

6、要发送给 web 服务器的数据打包(按照 http 协议,即请求数据包),然后发送。step3.web 服务器解析清秀数据包(即拆包),将解析之后得到的数据封装到 request 对象上,同时,还会创建 request 对象。step4.web 服务器依据请求资源路径(“web01/hello“)找到 servlet 的配置,然后创建 servlet 对象。step5.web 服务器调用 servlet 的 service 方法,在调用该方法是,会将事先建好的 request,response 对象作为参数传递给 service 方法。step6.在 service 方法里,可以通过 requ

7、est 对象获得请求参数,并进行相应处理,然后将处理结果写到 response 对象里。step7.web 服务器会从 response 对象中取出处理结果,打包(即响应数据包),然后发送给浏览器。step8.浏览器拆包(即解析响应数据包)取出数据,生成相应的页面。day022013 年 9 月 2 日 9:521.常见的错误以及解决方式1)404404 是一个状态码(是一个三位数字。由 w3c 定义的,表示 web 服务器的一种状态,即 web 服务器在处理客户端的请求时是否正常),404 表示依据请求地址,找不到对应的请求资源。a.产生 404 错误的原因及解决方式:a1.请求地址写错,仔

8、细检查请求地址(http:/ip:port/appname/servlet/url)。a2.web.xml 文件中,servlet-name 写错。检查 servlet-name.2)500a.产生 500 错误的原因及解决方式a1.程序在运行时发生了异常,仔细检查 java 源代码a2.web.xml 文件当中,servlet-class 写错。按照实际包名类名a3.类没有继承 HttpServlet.3)405a.产生 405 错误的原因及解决方式servlet 的 service 方法不正确。2.http 协议(超文本传输协议)1)http 协议是什么?由 w3c 制订的一种应用层协议,

9、该协议规定了浏览器和 web 服务器之间如何通讯以及通讯时所使用的数据格式。a.如何通讯step1.浏览器建立与 web 服务器之间的连接step2.浏览器将请求数据打包,发送请求数据包给 web 服务器。step3.web 服务器处理结果打包,发送响应数据包给浏览器。step4.web 服务器关闭连接。b.特点:一次请求,一次连接。c.优点:效率高,即 web 服务器可以利用有限的连接为尽可能多的客户端(浏览器)服务。2)请求数据包和响应数据包1)请求数据包a.请求行:请求方式 请求资源路径 协议类型和版本b.若干消息头:消息头是一些 key-value 键值对,一般由 w3c 来订制,浏览

10、器与 web 服务器之间可以通过发送一些消息头来传递特定的信息,比如,浏览器可以通过“user-agent“消息头,告诉 web 服务器浏览器的类型和版本。c.实体内容:只有当发送 post 请求时,浏览器才会将请求参数添加到这。如果是 get 请求,浏览器会将请求参数添加到请求资源路径的后面。2)响应数据包a.状态行:协议类型和版本 状态码 状态码的描述。状态码是一个三位数字,由 w3c 定义,有 web 服务器发送给浏览器,告诉浏览器 web 服务器是否正确地处理了请求。200:正确404:依据请求地址找不到对应的资源500:程序运行出错b.若干消息头web 服务器也可以发送一些消息头给浏

11、览器,比如“content-type“,告诉浏览器,服务器返回的数据类型。c.实体内容程序处理的结果。3.get 请求与 post 请求1)哪一些情况下,浏览器会发送 get 请求?a.浏览器地址栏直接输入某个地址b.点击链接c.表单默认提交的方式2)哪一些情况下,浏览器会发送 post 请求?a.设置表单的 method 属性等于“post“.3)get 请求的特点:a.会将请求参数添加到请求资源路径的后面。因为请求行能够添加的数据很少,所以 get 方式只适合提交少量的数据。b.get 方式会将请求参数显示在浏览器地址栏,不安全(路由器会记录 url)。4)post 请求的特点:a.会将请

12、求参数添加到实体内容里面。能够提交的数据很多。b.post 方式不会将请求参数显示在浏览器地址栏,相对安全一些。如果有敏感数据需要提交给服务器,一般使用 https 协议(该协议会对请求参数加密)。4.如何获得请求参数值?1)String request.getParameter(String paraname);注意:a.paraname 不能写错,否则会获得 nulllb.如果参数没有复制,会获得“url“2)String request.getParameterValues(String paramname);注意:(1)有多个参数名相同的时候,用这个方法。比如:hello?city=b

13、j b.方式二:step1.同上step2.String str2 = new String(str1.getBytes(“iso-8859-1“),“utf-8“);4)servlet 如何输出中文?response.setContentType(“text/html;charset=utf-8“);该方法的作用:1)返回一个消息头 content-type,告诉浏览器,返回的数据类型和编码格式2)通过 response 获得的流(out)会使用制定的编码格式对数据进行编码day032013 年 9 月 3 日 9:561.servlet 访问数据库1)编程步骤step1.将 JDBC 的驱

14、动(.jar 文件)拷贝到 WEB-INFlib 下Tomcat 提供了自己的 classloader,会查找 WEB-INFlib 下的文件。step2.注意异常的处理2.重定向1)什么是重定向?服务器通知浏览器立即向一个新地址发请求。即服务器可以发送一个302 状态码和一个 Location 消息头(值为一个地址,成为重定向地址)。浏览器收到之后,会立即向重定向地址发请求2)编程 response.sendRedirecr(String url); url:重定向地址。3)注意两个问题a.重定向之前,不能够调用 out.close()b.重定向之前,servlet 容器会先清空 respo

15、nse 对象上缓存的数据4)特点a.重定向的地址是任意的。3.将中文插入到数据库a.数据库要支持中文b.要保证 JDBC 驱动程序支持中文.JDBC 驱动程序在访问数据库时,需要做正确的编码(插入数据)和解码(查询)。有部分 JDBC 驱动程序不能正确地进行编码和解码。解决方式:方式一.换驱动程序。方式二,对于 mysql 数据库,可以 jdbc:mysql:localhost:3306:/day042013 年 9 月 4 日 11:081.servlet 容器如何处理请求资源路径?比如,在浏览器地址栏输入 http:/ip:port/web04_2/abc.html 浏览器会将“/web0

16、4_2/abc.html“作为请求资源路径发送给容器。容器首先依据请求资源路径中的应用名(“/web04_2“)找到应用所在的文件夹。接下来,容器会先假设访问的是一个 servlet,看 web.xml 文件中是否有匹配的 servlet:a.精确匹配:要求 url-pattern 与路径完全一致,比如对于上面的请求,要求/abc.htmlb.通配符匹配:即使用“*“(0 个或者多个)匹配任意的字符。比如:/*/abc/*c.后缀匹配:使用“*.“开头,后接任意的多个字符。比如:*.do 以上会匹配所有以 do 结尾的请求。2.如何让一个 servlet 处理多个请求?step1.使用后缀匹配模式,比如: *.do step2.在 servlet 的 service 方法里面,获得请求资源路径,通过分析路径然后调用不同的分支来处理。String url = request.getRequestURI();3.servlet 的生命周期1)什么是 servlet 的生命周期?servlet 容器如何创建 servlet 对象、如何初始化、如何调用servlet 对象的方

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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