Servlet课件。。。。PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
什么是Servlet
定义:Servlet 是一个 Java程序,是在服务器上 运行以处理客户端请求、业务逻辑并做出响应的 程序
需要运行在服务器端 需要Web容器的支持 Java编写
请求 响应 Servlet 运行 于服务器端
3
Servlet的生命周期
Servlet的处理流程
1、客户端使用浏览器(get/post)提交,并调用Servlet 的doGet或者doPost方法 2、服务器接收到请求后,如果该Servlet第一次被调用, 实例化这个Servlet 3、服务器调用该Servlet对象的service()方法 4、Servlet产生动态的回复内容 5、服务器发送回复内容给客户端浏览器
如何访问Servlet
9
获得Servlet初始化参数
在WEB-INF\web.xml中部署Servlet的时候,可以为其配置一些初始化 参数,格式为,在<servlet> </servlet>标签中嵌入:
<init-param> <param-name>parametername</param-name> <param-value>parametervalue</param-value> </init-param>
这些初始化参数通常可在Servlet被装载实例化时获取;即在init()方法 中,通过ServletConfig接口的getInitParameter(String name)方法获 得这些参数值。 由于HttpServlet实现了ServletConfig接口,故可在HttpServlet的子类 方法中直接调用getInitParameter(String name)方法。 应用:一些通用性信息,如数据库的连接信息,可设置在web.xml中, 在Servlet初始化的时候读取。
context.lookup(" jdbc/s1 ") 应用程序 jdbc/s2 数据源
21
jdbc/s1 Connection
12
转向控制
数据的传递方式
从页面到Servlet
request.getParameter(“param”);
从Servlet到Servlet或JSP页面
RequestDispatcher对象的forward()方法 JSP的forward动作实质是RequestDispatcher技术 String pass = request.getParameter("password"); String user = request.getParameter("loginName");
8
Servlet的配置
在web.xml文件中配置Servlet
<web-app> 为了方便使用Servlet,取个别名 为了方便使用 , <servlet> <servlet-name> HelloServlet </servlet-name> <servlet-class> y2javaee.sg.ch02.HelloServlet </servlet-class> </servlet> 完整的包名+类名 两个名称必须相同 完整的包名+类名 <servlet-mapping> <servlet-name> HelloServlet </servlet-name> <url-pattern> /HelloServlet </url-pattern> </servlet-mapping> 访问Servlet的URL 访问 的 </web-app>
7
Servlet编程模式
Servlet编程基本模式
处理Get和Post请求
import java.io.IOException; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //doGet方法体内容 方法体内容 使用Get方法提交,触发 方法提交, 使用 方法提交 触发doGet()方法 方法 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //doPost方法体内容 方法体内容 使用Post方法提交,触发 方法提交, 使用 方法提交 触发doPost()方法 方法 } }
多次重复操作 请求 响应 操作 结果
数 据 库
要求高效、 要求高效、稳健的数据访问层
19
数据源简介
数据源(DataSource)
javax.sql.DataSource接口负责建立与数据库的连接 从Tomcat的数据源获得连接 把连接保存在连接池中
连接池
Connection1 想要获得连接 应用程序 返回一个连接 连接池中的连接对象 是由谁创建的呢? 是由谁创建的呢? Connection3 Connection2
FORM表单提交的方法
Get和Post
<%@ page contentType="text/html;charset=gbk" %> <html> <html> <head> <head> <title>MyJsp</title> <title>MyJsp</title> </head> </head> <body> FORM的方法有哪些? 的方法有哪些? 的方法有哪些 <body> my JSP page. <br> This is <form action="helloservlet" method=" ? " name="form1“> </body> </html> <!-- 表单内容 --> Get | Post </form> Get、Post提交数据与 、 提交数据与 </body> Get 与 Post有什么区别? 有什么区别? 有什么区别 Servlet有什么关系吗? 有什么关系吗? 有什么关系吗 </html>
数 据 库
20
JNDI介绍
如何获得DataSource对象
数据源由Tomcat提供,不能在程序中创建实例 使用JNDI获得DataSource引用
什么是JNDI
JNDI(Java Naming and Directory Interface,Java命 名和目录接口)是一组在Java应用中访问命名和目录 服务的API 数据源名称 javax.namming.Context接口的lookup()方法
Servlet 调用 JavaBean 访问 返回数据
JavaBean数据 数据 模型进行业务逻 辑和访问数据库
数 据 库16来自MVC的优点MVC设计模式的优点 设计模式的优点
MVC 的优点
代码的重用性
有利于开发的分工
各司其职、 各司其职、互不干涉
17
MVC的Model层
1、如何理解MVC中的Model? MVC设计模式
11
Servlet中常用的接口或类
RequestDispatcher
Servlet协作,它可以把一个请求转发到另一个Servlet forward(ServletRequest request, ServletResponse response), 把请求转 发到服务器上的另一个资源 include(ServletRequest request, ServletResponse response), 把服务器 上的另一个资源包含到响应中
ServletConfig
与Servlet的配置相关,包括Servlet的名字、初始化参数和ServletContext 对象。JSP中的内置对象config即为ServletConfig的一个实例。 getInitParameter(String name), 返回特定名字的初始化参数值 getInitParameterNames(), 返回所有的初始化参数的名字 getServletContext(), 返回ServletContext对象,如jsp中的application
视图:提供可交互的客户界面, 视图:提供可交互的客户界面,向客户显示模型数据
控制器:根据客户的请求来操纵模型, 控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户
15
Web程序的MVC
Web容器处理请求过程
请求 响应 客户端 转向 JSP视图动 视图动 态显示数据 JSP页面 页面 执行 Servlet控制器,用 控制器, 控制器 于接收请求和控制 于接收请求和控制 应用程序的流程
13
MVC设计模式(2-1)
MVC设计模式
模型 ----视图 ----控制器 ----Model View Controller
MVC 模式
模型
视图
控制器
JavaBean
JSP
Servlet
14
MVC设计模式(2-2)
MVC设计模式的模块组成 设计模式的模块组成
模型: 模型:代表应用程序状态和业务逻辑
10
Servlet中常用的接口或类
HttpServletRequest jsp中的内置对象request即为一个HttpServletRequest 的实例。 HttpServletResponse jsp中的内置对象response即为一个 HttpServletResponse HttpServletResponse的实例。 HttpSession jsp中的内置对象session即为一个HttpSession的实例。 可通过客户端Cookie或者重写URL来维持一个session ServletContext jsp中的内置对象application即为一个ServletContext的 实例。
Servlet
Servlet介绍
Java技术细分为三个子平台
Java SE :Client/Server结构开发 Java EE :Browser/Server结构开发 Java ME :手机嵌入式开发
Servlet历史
1995年,Java技术正式推出 1997年,Servlet紧接着被推出 Java的Web编程技术还包括我们后面需要讲解的: JavaBean、Struts1.X、Struts2.X、Spring、 Hiberante等……
模型 ----视图 ----控制器 ----Model层主要是进行 层主要是进行 业务逻辑处理、 业务逻辑处理、访问 数据库和封装数据
Model View Controller
MVC 对象
模型
视图
控制器
?
JSP
Servlet
18
企业级开发对Model层的要求
企业级开发需要稳健和高效的数据访问层
完成对数据库的CRUD操作 传统的JDBC已经 传统的 已经 能够处理数据库发生的各种错误 无法满足需求, 无法满足需求,那 怎么办呢? 怎么办呢? 可以灵活的修改配置 提供方便使用的工具 打开连接, 打开连接,操作数 据库, 据库,关闭连接 高性能
存储要传递的数据
if (user.equals("accp") && pass.equals("accp")) { 定义一个转发器 request.setAttribute("loginname", user); RequestDispatcher dispatcher = request.getRequestDispatcher("/ch02/ok.jsp"); 进行转发 dispatcher.forward(request, response); } else { response.sendRedirect("/ch02/register.jsp"); }
4
Servlet的生命周期
Servlet生命周期的各个阶段
5
如何创建Servlet
前台页面的创建
FORM表单的编写
后台Servlet的创建
使用Eclipse的Servlet向导创建Servlet代码模板 根据表单提交方法,确定接收方法 接收请求数据、处理数据、返回响应页面
6
FORM表单的method属性
相关文档
最新文档