Oracle培训(四十一)——Servlet第一章知识点总结——Servlet 基础
Java Web控制器Servlet程序设计
1. WEB应用程序
a) 概念:
i. WEB应用程序是在Internet(国际互联网)之上的一种应用程序
ii. 通常是B/S(浏览器端/服务器端)形式的程序
b) 优势:
i. 用户不需要更新应用程序
ii. 几乎不占用用户的资源
iii. 数据更安全
2. WEB运作的机制
3. 目标
a) 了解公共网关接口(CGI)基本原理
b) 了解servlet基本原理
c) 理解并能够运用servlet
4. 概述
a) Servlet:
i. Java程序设计对象
ii. 基于CGI解决方案的替代品
b) 课程:
i. 开发servlets解决现实问题
ii. 论述servlet开发
iii. 介绍Web 服务器的主要servlet相关功能
5. 课程整体目标
a) 开发简单的超文本传送协议(HTTP) servlet.
b) 表单处理servlet开发.
c) 修改一个数据库访问servlet为使用连接池.
d) 追踪状态
e) 代码过滤器和监听器
f) 部署网络应用程序
6. 课程主要内容
a) Servlets 基础
b) 用Servlets进行表单处理
c) 生命周期
d) 资源访问
e) 在Http Servlets中持久化状态
f) 过滤器开发
g) 网络应用生命周期事件
目标
了解CGI原理
了解servlet原理
理解并熟练掌握如何创建HttpServlet
理解并熟练掌握Servlet开发步骤
知识点预览
通用网关接口
Servlet
通用网关接口(CGI)
1. 定义
a) Common Gateway Interface,简称CGI。是运行在服务器上的一段程序,主要作用是提供同客户端HTML页面的接口。
2. 应用示例
a) 提供网络服务器的入口
b) 返回数据库信息
c) 执行运算
3. CGI 请求/响应
4. CGI 和 HTTP
a) HTTP是被多数网络服务器应用的请求/响应协议
b) HTTP响应的头信息指明响应的数据类型
5. 用C/Perl编写的HelloWorld CGI
6. 如何调用CGI脚本程序
a) 将脚本放置在服务器server_root/cgi-bin/目录下
b) 打开浏览器输入地址进行调用
c) 举例:
d) Helloworld或者helloworld.pl脚本使用以下方式调用:
e) http:// host_name:port/cgi-bin/helloworld
7. CGI应用
a) 大多数网络服务器支持CGI脚本.
b) 大多数网络服务器支持若干个CGI脚本语言:
i. Perl
ii. C
iii. Tool command language (TCL)工具命令语言
Servlet
1. 什么是Servlet
a) 定义
i. 是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
ii. 担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层
b) 作用:
i. 能够使用对象进行编程
ii. 可以保存和使用大量信息
iii. 允许多个用户之间的协作
2. Servlets 请求/响应
3. Servlet容器
a) Servlet需要servlet“容器”来运行
i. Catalina in Tomcat(使用Tomcat7)
b) 支持由具备servlet容器的多个网络服务器提供
i. Apache Web Server
ii. SunONE Web Server
4. Servlet框架
5. 请求响应流程
6. 创建HttpServlet的步骤—“四部曲”
a) 第一步:扩展HttpServlet抽象类
public class HelloServlet extends HttpServlet{}
b) 第二步:覆盖doGet()方法
public void doGet(HttpServletRequest request,
HttpServletResponse response)throws IOException,ServletException{
c) 第三步:获取HTTP请求中的参数信息
String userName=request.getParameter(“userName");……
d) 第四步:生成HTTP响应结果
Response.setContenType()……
7. HelloWorldServlet
8. HttpResponse常用方法—set方法
a) setContentType()方法
设置ContentType
b) setContentLength()方法
设置响应文本长度
c) setHeader(),setIntHeader和setDateHeader()方法
响应头部信息添加的字段信息通过设置.
setHeader(“Author”,”Marry”)-〉<meta name=“Author” contect=“Marry”>
9. HttpResponse常用方法—get方法
a) getWriter()
i. 返回PrintWriter对象
ii. 在返回文本数据时使用
b) getOutputStream()
i. 返回ServletOutputStream对象
ii. 在返回二进制数据时使用
10. ServletContext
a) ServletContext
i. Servlet对象可以通过它来访问容器中的各种资源
ii. 同一个Web应用所有的Servlet对象共享一个ServletContext
iii. Servlet容器在启动一个Web应用时,会为它创建一个ServletContext对象
iv. getServletContext()是ServletContext实例
b) javax.servlet.servletContext 接口
提供两个log方法调试servlets
11. Servlet 调用步骤
a) 使用Eclipse创建HelloWorldServlet.java
b) 创建web.xml 文件以包含这个servlet定义,如
c) 通过以下方式调:
http://127.0.0.1:8080/myapp/helloworld
Servlet基础的回顾
扩展HttpServlet
重写一个服务方法去接受servlet的请求
设置内容类型
使用getPrintWriter()或getServletOutputStream()
利用println方法生成动态HTML
使用output.close()
使用getServletContext().log()记录日志信息