Servlet课件PPT
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
session的关闭
请求
22
JavaBean介绍
JavaBean的来源
Bean:豆子 JavaBean是应用程序的
组成部分
JavaBean的分类
封装数据
封装业务方法
public class SecondLevelTitle { public SecondLevelTitle() { } private int id; private String titleName; private int parentTitleId; private String creator; public int getId() { return this.id; } public void setId(int id) { this.id=id; } …//其它setter、getter方法 }
JavaBean、Struts1.X、Struts2.X、Spring、 Hiberante等……
2
什么是Servlet
定义:Servlet 是一个 Java程序,是在服务器上 运行以处理客户端请求、业务逻辑并做出响应的 程序
需要运行在服务器端
需要Web容器的支持 Java编写
请求 响应 Servlet 运行 于服务器端
Model View Controller
MVC 对象
模型
视图
控制器
?
JSP
Servlet
17
企业级开发对Model层的要求
企业级开发需要稳健和高效的数据访问层
完成对数据库的CRUD操作
传统的JDBC已经 能够处理数据库发生的各种错误 无法满足需求,那 怎么办呢? 可以灵活的修改配置
Servlet
Servlet介绍
Java技术细分为三个子平台
SE :Client/Server结构开发 Java EE :Browser/Server结构开发 Java ME :手机嵌入式开发
Java
Servlet历史
1995年,Java技术正式推出 1997年,Servlet紧接着被推出 Java的Web编程技术还包括我们后面需要讲解的:
7
Servlet的生命周期
Servlet生命周期的各个阶段
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>
String pass = request.getParameter("password"); String user = request.getParameter("loginName");
存储要传递的数据
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"); }
作一个会话
请求 1 请求 2 ……. 请求 n
20
会话的创建和使用
会话的创建
使用HttpServletRequest
的 getSession() 方法创建会
话, public HttpSession getSession(); 语法如下:
public HttpSession getSession( boolean value);
提供方便使用的工具 高性能
打开连接,操作数 据库,关闭连接 多次重复操作
请求 响应
操作 结果
数 据 库
要求高效、稳健的数据访问层
18
会话跟踪(2-1)
HttpSession对象
服务器为每个会话创建一个HttpSession对象
每个会话对象都有一个唯一的ID 把用户的数据保存在相应的HttpSession对象内
21
session对象的存在周期
session对象的存在周期
session的创建
浏览器访问服务器时,服务器为每个浏览器创建不同的session对象 调用session. invalidate()方法,使session对象失效 访问时间间隔大于非活动时间间隔, session对象失效 关闭浏览器时,session对象失效 在内存开辟空间 保存数据信息 清空内存内当前浏 览器相关数据信息
11
转向控制
数据的传递方式
从页面到Servlet
request.getParameter(“param”);
从Servlet到Servlet或JSP页面
RequestDispatcher对象的forward()方法 JSP的forward动作实质是RequestDispatcher技术
控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户
14
Web程序的MVC
Web容器处理请求过程
请求 响应
客户端 转向 JSP视图动 态显示数据 JSP页面
执行
Servlet控制器,用 于接收请求和控制 应用程序的流程
Servlet 调用 JavaBean 访问
JavaBean数据 模型进行业务逻 辑和访问数据库
返回数据
数 据 库
15
MVC的优点
MVC设计模式的优点
MVC 的优点
代码的重用性
有利于开发的分工
各司其职、互不干涉
16
MVC的Model层
1、如何理解MVC中的Model?
MVC设计模式
模型
---- 视图 ---- 控制器 ----Model层主要是进行 业务逻辑处理、访问 数据库和封装数据
ServletConfig
与Servlet的配置相关,包括Servlet的名字、初始化参数和ServletContext 对象。JSP中的内置对象config即为ServletConfig的一个实例。 getInitParameter(String name), 返回特定名字的初始化参数值 getInitParameterNames(), 返回所有的初始化参数的名字 getServletContext(), 返回ServletContext对象,如jsp中的application
如何访问Servlet
9
Servlet中常用的接口或类
HttpServletRequest jsp中的内置对象request即为一个HttpServletRequest 的实例。 HttpServletResponse jsp中的内置对象response即为一个 HttpServletResponse的实例。 HttpSession jsp中的内置对象session即为一个HttpSession的实例。 可通过客户端Cookie或者重写URL来维持一个session ServletContext jsp中的内置对象application即为一个ServletContext的 实例。
5
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()方法 } }
10
Servlet中常用的接口或类
RequestDispatcher
Servlet协作,它可以把一个请求转发到另一个Servlet forward(ServletRequest request, ServletResponse response), 把请求转 发到服务器上的另一个资源 include(ServletRequest request, ServletResponse response), 把服务器 上的另一个资源包含到响应中
根据ID号服务器寻找 服务器创建一个 HttpSession对象 内存中相应的数据 并把该对象的ID返回给用户
第二次请求把ID一 第一次请求 起发送给服务器 响应 把ID发送给客户端 同时,服务器在内存中开辟 一空间,用来保存该对象数据
19
会话跟踪(2-2)
什么是会话
当前浏览器与服务器间多次的请求、响应关系,被称
获取session true 使用HttpSession接口的方法,进行 对象的方法 保存数据: getSession(boolean bool ) 取出数据:
会话的使用
getSession( )
getSession( true )
返回与当前关联的 会话,如果没有就 创建后将其返回
返回与当前关联 public void setAttribute(String param,Object value); false 的会话,如果没 public Object getAttribute(String param); 有返回null 使用时,将其转换成原来数据类型
<%@ page contentType="text/html;charset=gbk" %> <html> <html> <head> <head> <title>MyJsp</title> <title>MyJsp</title> </head> </head> <body> FORM的方法有哪些? <body> This is my JSP page. <br> <form action="helloservlet" method=" ? " name="form1“> </body> </html> <!-- 表单内容 --> Get | Post </form> Get、Post提交数据与 </body> Get 与 Post有什么区别? Servlet有什么关系吗? </html>
6
Servlet的生命周期
Servlet的处理流程
1、客户端使用浏览器(get/post)提交,并调用Servlet
的doGet或者doPost方法 2、服务器接收到请求后,如果该Servlet第一次被调用, 实例化这个Servlet 3、服务器调用该Servlet对象的service()方法 4、Servlet产生动态的回复内容 5、服务器发送回复内容给客户端浏览器
3
如何创建Servlet
前台页面的创建
FORM表单的编写
后台Servlet的创建
使用Eclipse的Servlet向导创建Servlet代码模板 根据表单提交方法,确定接收方法 接收请求数据、处理数据、返回响应页面
4
FORM表单的method属性
FORM表单提交的方法
Get和Post
12
MVC设计模式(2-1)
MVC设计模式
模型
---- 视图 ---- 控制器 -----
Model View Controller
MVC 模式
模型
视图
控制器பைடு நூலகம்
JavaBean
JSP
Servlet
13
MVC设计模式(2-2)
MVC设计模式的模块组成
模型:代表应用程序状态和业务逻辑
视图:提供可交互的客户界面,向客户显示模型数据