ImageVerifierCode 换一换
格式:DOC , 页数:31 ,大小:123KB ,
资源ID:120834      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-120834.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(达内Servlet笔记整理.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

达内Servlet笔记整理.doc

1、“*“表示重要性,星号越多越重要 day1 一、 Web 应用基础 1.B-S 架构 (*) 架构的发展 c/s vs. b/s c/s 架构 (client 客户端 -server 服务端 ) (胖客户端 :要求客户端运行业务;把业务放到服务器端,则是瘦客户端 ) 典型的 c/s 应用: ftp 工具、 QQ、邮件系统、杀毒软件 . 1.建立在 tcp/ip 协议之上,有自己的通信规则 (建立业务 ) 2.需要相互配合才能完成一个完整业务逻辑 3.允许多个客户端程序同时接入一个 server 程序 (并发 ) 4.每一个 client(机器 )都必须安装客户软件 5.修改了 server 程

2、序,通常 client 程序都要修改 (升级 ) 优点:利用客户端的计算能力,分担服务器的负荷 (大型网络游戏就利用这点 ) 缺点:用户必须安装客户端程序;客户端需要升级 (麻烦 ) b/s 架构 (browser - web server(cluster 集群 ) (极瘦客户端 :最低 限度地减少客户端程序,只需要 browser(浏览器 ) 1.基于 http 协议 (应用层 ) 2.几乎所有的业务逻辑处理都在 server 完成 3.支持并发 4.client 要求很少,只需要安装 browser(浏览器 ) 5.修改 server 之后, client 不需要任何变化 6.server

3、 端开发技术: html/js,xhtml,. php,asp,jsp,servlet 缺点:所有业务都在服务器 端完成,服务器负荷大。 优点:支持高并发访问;不需另外安装软件 (只需浏览器 ),免去更新的麻烦。 2.开发一个静态的 Web 应用 (*) 1)下载一个 tomcat 服务器 2)web 服务器 -Tomcat 的启动和配置 (熟练使用和配置 ) 先进入 Tomcat 主目录下的 bin 目录 / %catalina_home%/bin window 平台:启动 -startup.bat 关闭 -shutdown.bat Linux 平台:启 动 -startup.sh 或 ca

4、talina.sh run /catalina 单次启动; startup 启动直至shutdown 关闭 -shutdown.sh 或 Ctrl+C 测试: 打开浏览器,访问 Tomcat 首页: http:/localhost:8080 或者 http:/127.0.0.1:8080/ 获取进程 Id 强行杀死 tomcat 进程 ps ef|grep tomcat -查看 tomcat 的进程 id kill -9 tomcat 进程 Id号 - 强行杀死 tomcat 进程 3)介绍 Web 应用的结构 严格定义为两部分 Web 应用的根目录下有一个特定的子目录称为 WEB-INF,其

5、中包含不能被客户访问的专用 Web 应用程序软件, 包括 Servlet 类文件、部署描述符 web.xml、外部库以及其他任何由此应用程序使用的专用文件。 所有位于 WEB-INF 之外的文件都被看作是公共的,它们可以从客户端被访问。资源包括 HTML页面、 JSP 页面和图像等。 web.xml的模板 (一个 web.xml中可以配置多个 Servlet): servlet 的名字 1 /servlet 的逻辑名 servlet 类全名 1 /类的完全限定名 servlet 的名字 2 servlet 类全名 2 servlet 的名字 1 /要和 servlet 标签中的相同 指定 se

6、rvlet相对于应用目录的路径 /servlet的访问路径 servlet 的名字 2 指定 servlet 相对于应用目录的路径 index.jsp/指定默认的欢迎页面 4)注意事项 3.介绍 Web 服务器的一些特点 什么是静态内容?什么是动态内容? 静态:返回页面每个客户端都相同。 动态:各个 客户端的页面各不相同。 产生动态内容的 Web 辅助应用: CGI Post()方法 ; 其他方法: Head, Trace, Put, Delete, Connect 等 Get()方法: Http 最简单的方法,其最主要的任务:从服务器上获取资源 Post()方法:更强大的请求方法,不仅可以请

7、求资源,还可以向服务器发送表单数据 4)分析 http 请求的信息 客户端向服务器发送一个请求,请求头包含: 1.请求的方法; 2.URI; 3.协议版本; 4.以及包含请求修饰符; 5.客户信息和内容的类似于 MIME 的消息结构 5)分析 http 响应的信息 截获内容: HTTP/1.1 200 OK / HTTP/1.1 是 web 服务器使用的版本; 200 是状态码;OK 是状态码的文本版本 ETag: W/“472-1198101802343“ Last-Modified: Wed, 19 Dec 2007 22:03:22 GMT Content-Type: text/html

8、 / MIME 类型:告诉浏览器所要接收的是哪一类型的数据。以供浏览器显示。 Content-Length: 472 Date: Wed, 19 Dec 2007 22:05:44 GMT Server: Apache-Coyote/1.1 /以上是 Http 响应的首部 /响应体中包含了 Html以及其他要显示的内容 User Login Http 响应状态码分析 (具体代码含义参看 http 代码对照表 ): 1xx:信息响应类,表示接收到请求并且继续处理 2xx:处理成功响应类,表示动作被成功接收、理解和接受 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理 4xx:客户端错

9、误,客户请求包含语法错误或者是不能正确执行 如: 404 无法找到,表示无法找到指定位置的资源。 5xx:服务端错误,服务器不能正确执行一个正确的请求 二、 Servlet 基础 1.介绍 Servlet 的基本概念 (*) (Servlet、 Servlet 容器、 Servlet vs. CGI) 图示 1)它是由 java 编写的、服务端的小程序。相对而言, Applet 和 javaScript 是客户端小程序。 2)基于 Http 协议的,运行在 web 服务器内的。 Servlet 和 CGI 都是运 行在 Web 服务器上 ,用来生成 Web 页面。 3)没有 main 方法。是

10、接受来自网络的请求 (form 表单,以及其他的请求 ),并对不同请求作出不同的响应。 4)由容器管理和调用。这个 web 容器可以控制 Servlet 对象的生命周期,控制请求由 Servlet对象处理。 5)Web 服务器的辅助应用,处理特定的用户请求,并返回响应。 web 服务器,这里的服务器不是硬件概念,而是软件,常用的 web 服务器有 Tomcat,Jboss 等 Tomcat 是一个用 java 语言编写的 web 服务器,所以需 要有相应的 java 运行环境,也就是 JVM,还要配置 tomcat 的具体路径。 6)继承 java 的优点,与协议、平台无关 2.开发第一个 S

11、ervlet 应用 (*) Web 应用的结构 开发一个 Servlet 应用的步骤 1)建立 Web 应用目录 (注意细节 :各目录的位置、名称与包含的内容 ) 2)编写 Java 代码,如: HelloWorld.java 把生成的 .class 文件放置到 WebRoot/WEB-INF/classes 目录下 3)编 写配置文件: web.xml 放置到 WebRoot/WEB-INF/ 目录下 4)把整个 web 应用放到 %catalina_home%/webapps /放到 tomcat 的 webapps 目录下 3.分析 Servlet 应用 (*) 1)Servlet 的继

12、承体系 javax.servlet.Servlet 接口 GenericServlet 抽象类 HttpServlet 自定义类 所有的 servlet 都必须实现该接口 处理各种协议 (包括 http) 专职处理 http 协议 也可继承 GenericServlet 2)Servlet 接口; GenericServlet 抽象类; HttpServlet 类 Servlet 接口 (位置: javax.servlet.Servlet) 定义了特定的生命周期方法: init(ServletConfig config) service(HttpServletRequest request,

13、HttpServletResponse response) destroy() GenericServlet implements Servlet 实现了 init(ServletConfig config)、 destroy()等方法;并提供了 init()方法。 还实现了 ServletConfig 接口。由于这是抽象类,所以必须实现抽象方法: service() HttpServlet extends GenericServlet (位置: javax.servlet.http.HttpServlet) 具有父类 GenericServlet 类似的方法和对象,是使用 Servlet 编

14、程常用的类 支持 HTTP 的 post 和 get 等方法。 3)容器如何找到指定的 Servlet? (图示 ) Servlet 有 3 个 “名字 “: url 名、 应用中的逻辑名、 实际的名字 配置文件 web.xml 都把这几个名字一一对应起来了 Servlet 是受容器管理的 request 对象、 response对象都是容器根据客户端请求而产生 的。 容器根据 url请求,通过 DD(web.xml)配置 (url名,内部逻辑名,完全限定名 )定位具体的 servlet。 容器根据客户请求创建 /分配一个线程,并调用 servlet 的 service()方法,把 reque

15、st 对象、respone 对象作为参数传过去 service()方法会根据客户端请求的 Http 方法调用不同的 HttpServlet 的方法(doGet(),doPost(),.); Servlet 使用 response 对象把处理完的结果响应到客户端。 service()方法结束后,线程要么撤销,要么返回容器的线程池; request 对象、 response对象都被 gc 回收。 4.使用 Servlet 来发送用户输入的信息 1)开发用户登录的应用 2)如何使用 Form 表单来提交数据 (1)action: 表单提交给服务器的哪个资源处理 “login“ 为在 web.xml

16、中配置的 url-pattern 或者是 jsp、 html 文件等。 (2)Get vs. Post 方法的比较 (使用 Http Monitor) GET-通过 URL 提交表单信息,由于受到 URL 长度的限制 ,只能传递大约 1024(1K)字节。 通过 http monitor 工具截获请求信息 (下面仅写出请求行,请求首部略 ): GET /welcome/login.html?username=zhangsanq=0.5 . Host: 127.0.0.1 . /从请求行以下到这行,都是请求首部 username=zhangsan charset=utf-8“); (2)获取数据

17、过程中,处理中文输入 乱码 (3 种方法 ): 方法一:设置字符编码来解决 post 方法提交表单中文乱码问题。 request.setCharacterEncoding(“gbk“); response.setContentType(“text/html;charset=utf-8“); 必须在第一个 request.getParameter(“name“); 之前执行上面的语句。 方法二:重新生成指定编码的字符串 String name = new String(request.getParamete(“name“).getBytes(“iso-8859-1“); 方法三:修改服务器的编码

18、设置 解决 get 方法提交表单中文乱码问题 例如: Tomcat,通过修改 %TOMCAT%/conf/server.xml 加入 URIEncoding=“utf-8“ (3)静态 html 页面的中文化问题 6.请求路径 请求路径是把请求导向到一个 servlet 来响应服务。它是由几个重要的部分来组成的。 通过 HttpRequest 对象,暴露了如下信息 (对照应用的目录结构 ): 1)上下文路径 (Context Path) 该路径的前缀是和 ServletContext 相关的。 如果 Context 就是 Web 服务器的 URL 命名空间的缺省的根上下文时,那么上下文路径将会

19、是一个空的字符串。 如果上下文并不是服务器的命名空间的根,则上下文路径就以“ /”开始,但不能以“ /”结束。 2)Servlet 路径 (Servlet Path) 该路径就是直接与激活该请求的相应映射,它也是以“ /”开头。 但要注意的是,如果指定的请求是与“ /”模式相匹配,则此时 Servlet 路径就是一个空字符串。 3)路径信息 (PathInfo) 请求路径中除了上下文路径和 Servlet 路径以外的部分。 当没有额外的路径时路径信息就是空的 (null),或者它会以“ /”开始的字符串。 在 HttpServletRequest 接口中定义如下的方法来访问请求路径的相应信息:

20、 getContextPath(); getServletPath(); getPathInfo(); 值得注意的是,请求 URI 和路径的各部分之间的 URL 编码的不同之外,下面的等式恒成立: requestURI = contextPath + servletPath + pathInfo Day2 1.配置开发环境 如何利用 IDE开发 (构建 )一个 web project 部署 web project 到 Tomcat 结果是把 WebRoot 下的内容打成包,发布到 webapps 中 2.在集成环境开发过程中的注意事项 如果修改了 Java 文件 (修改了方法签名除外 ),无需

21、重启,也无需重部署 如果修改了 html文件,无需重启,但需要重部署 修改了 web.xml,系统会自动重部署 3.Servlet 的生命周期 生 命周期有哪几个过程 (4个 )? 每个过程都对应有特殊的生命周期方法 装载 /其实是调用 GenericServlet的 init(config) /这里的 config只是方法内部的变量。如果其它方法中需调用,还得: this.config=config;给成员变量的 config 赋值 B.其他地方 (包括在 init()方法中 ),可以使用 Servlet API 本身的方法 this.getServletConfig(); /任何方法中都可

22、以调用,包括 init(ServletConfig config)方法 注:这也是为什么把这个知识点放在这里的原因 4)如何获取 ServletContext A.config.getServletContext();/前提是 config 在之前已获取 B.Servlet API 提供了 this.getServletContext();/没有 config 也可以用 5)注意:不能在 Servlet 中使用 this.getServletConfig 或者 this.getServletContext()来初始化成员变量 因为创建成员变量优先于构造方法和 init 方法;而 config

23、和 context 只有调用了 init 方法之后才初始化 6)利用 ServletContext.log()来写日志 如: this.log(“String“+(new Date(); 7)例子 使用 ServletContext 来获取 参数 使用 SerlvetConfig 来获取 Servlet 的 5.产生动态内容的另一个方面:根据业务逻辑进行请求传递 (页面跳转 ) RequestDispatcher(请求分发器 ) forward(request, response)/跳转到其他资源 include(request, response)/包含其他资源 如何获取 RequestDi

24、spatcher request.getRequestDispatcher(page) servletcontext.getRequestDispatcher(page); 两者之间的区别? (后面会详细讲述 ) 6.网上书店 (打折优惠 ) SerlvetConfig 来获取 Servlet 的 ServletContext 来获取 参数 RequestDispatcher 进行页面包含 Day3 访 问资源, Servlet 如何与数据库构建应用系统 1.两种访问 DB的方法 1)直接连接 DB,通过 JDBC API 2)配置 Tomcat的连接池 server.xml配置 web.xm

25、l:应用引用资源 init():通过 JNDI API 来获取 DB Connection 2 种方法都需要在 Servlet 的 init()方法中,把 DB Connection 注入到 Servlet 中 2、用 Tomcat 的 jndi服务获取数据源 第一步:为 Tomcat 配置连 接池: 修改 tomcat/conf/server.xml 在 节点中加入 Resource 配置 /Web 应用的根 第二步:在应用中配置资源引用 (此步骤可以省略 ) 修改 web.xml jdbc/tarena /资源引用名 javax.sql.DataSource /资源的类型 Containe

26、r /Application Shareable /Unshareable 第三步:在 Servlet 的 init 方法中通过 JNDI 接口来获取 DataSource Context ctx=new InitialContext(); DataSource ds=(DataSource)ctx.lookup(“java:comp/env/jdbc/tarena“); Connection con=ds.getConnection(); 3.如何构建一个 Web 应用系统 (Servlet + JDBC + DB) 分层设计的思想:表示层 (view) + Dao 层 Servlet 层的设计: 废弃“为每个请求提供一个 Servlet”的做法,引入 Action 接口与参数控制 Dao 模式 工厂模式 :DaoFactory day4 会话管理

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。