《web应用开发》PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ServletContext接口
• Servlet context: • 存储在Servlet context中的信息,同一应用中的 servlet/JSP/JavaBean都可以访问。 • 通过ServletConfig对象上的getServletContext()方 法可获得servlet上下文对象 • ServletContext接口常用方法:
背景知识
• 常用的Web服务器
– IIS – Tomcat
• 通常的动态网页技术
– – – – – – CGI (Common GateWay Interface) API常用的有(NSAPI,ISAPI) ASP(Active Server Page) PHP(Personal Home Page) JSP(Java Server Page) Servlet
HttpServlet类中的方法
• javax.servlet.http.HttpServlet
public void doGet(HttpServletRequest req,HttpServletResponse res)
doGet() 方法处理客户端作出的 GET 请求。 public void doPost(HttpServletRequest req,HttpServletResponse res) doPost() 方法处理客户端作出的 POST 请求。 public void init() 初始化代码可写在此方法中 public void service() 客户端有请求过来,服务器会调用service()方法, service()方法根据请 求来决定调用doGet还是doPost方法 public void destory() 删除实例时会调用,释放资源的代码可写在此方法中
– – – – getContentType getMethod getRequestURI Host
获取CGI变量
• CGI变量:
1.基于HTTP请求的行和头; 2.来自于套结字 3.来自于服务器的安装参数
• 通过HttpServletRequest的相关方法来访问这些变量 • 常用的CGI变量
☆WEB应用开发精品课程
Web请求处理
案例任务引入
• 演示:一个学生信息管理系统的登录页面
• 任务: 用Servlet实现登录验证,如果用户、 密码正确,转到主界面,否则再回到登录页 面
目标
• • • • • • • • • 案例任务引入 掌握如何编写配置Servlet 理解Servlet的生命周期 掌握利用servlet读取表单数据 Servlet跳转 掌握处理HTTP报头信息方法 掌握会话跟踪的几种方法 ServletContext用法 编写线程安全的servlea.io.*; import javax.servlet.*; import javax.servlet.http.*;
继承HttpServlet
public class HelloWorld extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType(―text/html;charset=GBK‖); PrintWriter out= response.getWriter(); out.println(―<html><body> Hello world!</body></html>‖); } }
String[] favor = request.getParameterValues("Favor");
…… }
读取html表单中兴趣数组
Servlet页面跳转
在Servlet中通过验证后经常需要跳转到其他页面 显示 1. SendRedirect方式
response.sendRedirect(url)
– – – – – – CONTENT_TYPE—getContentType() PATH_INFO---getPathInfo() REMOTE_ADDR---getRemoteAddr() QUERY_STRING---getQueryString() SERVER_NAME---getServerName() SERVER_PORT---getServerPort()
总结
• Servlet是运行在服务器上的java类, 要运行 它需要先在web.xml里进行配置 • Servlet的生命周期(初如化,服务,销毁) • 多个客户端共享同一个Servlet实例 • 会话跟踪(cookie,session,URL重写) • ServletContext接口 • 编写线程安全的servlet
HttpSession中的常用方法
• • • • • • • • getAttributeNames()/getAttribute() getCreateTime() getId() getMaxInactiveInterval() invalidate() isNew() setAttribute() setMaxInactivateInterval()
– – – – setName(String name)/getName() setValue(String value)/getValue() setMaxAge(int age)/getMaxAge() 利用HttpServletResponse的addCookie(Cookie)方法 将它设置到客户端 – 利用HttpServletRequest的getCookies()方法来读取客 户端的所有Cookie,返回一个Cookie数组
HttpServletRequest中的会话管理方法
getRequestedSessionId(): 返回随客户端请求到来的会话ID。可能与当前的会话ID相同,也可能不同。 getSession(boolean isNew):如果会话已经存在,则返回一个HttpSession 会话不存在:getSession(true)新建一个HttpSession, getSession(false)返回null isRequestedSessionIdFromCookie(): 当前的Session ID如果是从Cookie获得,为true isRequestedSessionIdFromURL(): 当前Session ID如果是由URL获得,为true isRequestedSessionIdValid():如果客户端的会话ID代表的是有效会话, 则返回true。否则(比如,会话过期或根本不存在),返回false
目标
• • • • • • JavaBean基础 <jsp:useBean> JavaBean作用范围 JSP和Servlet的交互 MVC模式的用途 JSP+Servlet+JavaBean实现MVC
JavaBean
• JavaBean 是可重用组件 • JavaBean是遵守某些严格协议的Java类 • JavaBean由三部分组成:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { String personName,personPwd; 读取html表单中姓名和密码框的值 personName = request.getParameter("PersonName"); personPwd = request.getParameter("PersonPwd");
重写HttpServlet中的doGet方法
在web.xml中配置servlet
Servlet类的别名 <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>chap03.HelloWorld</servletclass> 包含路径的真实的 两个名称必须相同 Servlet类名 </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> 供浏览器使用的地址
什么是Servlet技术
Servlet是在Java2平台下取代 CGI 的一种技 术,是一个接收请求,作出响应的网络服 务Java类。
–Servlet是服务器小应用程序; –Servlet用来完成B/S架构下,客户端请求 的响应处理; –Servlet平台独立,性能优良,能以线程方 式运行; –Servlet API为Servlet提供了统一的编程接口。
2. Forward方式
request.getRequestDispatcher(url).forward (request,response)
获取Http请求头
• 不同于表单数据 • 请求头直接由浏览器设置,在初始的Get/Post请求行之后 立即发送 • 可以获得客户端/服务器端的一些配置信息 • 获取请求头很简单,直接通过HttpServletRequest的 getHeader方法。 • 头的名称不区分大小写 • 常用的头信息:
Servlet 的生命周期
• 生命周期全过程:
实例化
Servlet 容器创建 Servlet 的实例
初始化 服务 销毁 不可用
该容器调用 init() 方法
如果请求 Servlet,则容器调用 service() 方法
销毁实例之前调用 destroy() 方法 销毁实例并标记为垃圾收集
利用Servlet读取html表单数据
– getRealPath() – setAttribute()/getAttribute()/removeAttribute() – getInitParameter()/getInitParameterNames()
编写线程安全的servlet
• servlet是非线程安全的,多个客户端共享同 一个servlet实例 • 对于全局变量的访问可能全带来安全问题, 因此最好不要使用全局变量,如需使用,请使 用同步 • Servlet2.4中废弃SingleThreadModel接口
☆WEB应用开发精品课程
企业逻辑实现
案例导入
• 项目
长沙民政职业技术学院单招报名系统中,实现数 据库操作的JAVABEAN
• 任务
将对数据库增,删,改,查封装成JavaBean。
• 技术要点(关键字)
1. JavaBean编写规范 2. JSP或Servlet调用JavaBean 3. JavaBean整合JDBC技术
会话跟踪
一次会话是从客户端发送请求开始的,在server端, servlet引擎用javax.servlet.http.HttpSession 的一个实 例(session)来记录一次会话。 会话的维持由servlet容器与客户端浏览器协调进行: •通过cookie保存在客户端 •URL重写 将会话 ID 添加到 URL 结尾,以标识该会话 如hello.jsp?jsessionid=1234
Cookie
• 什么是Cookie?
是一种可以让服务器端的连接在客户端保存和 获取信息的机制。
• 为什么要用Cookie?

HTTP协议是一个无状态的协议,每一次响应和请求 结束后服务器和客户端的连接就结束了 – 服务器可利用Cookie跟踪浏览器客户端
如何使用Cookie?
• Cookie以“名-值”对的形式保存数据 • 创建Cookie:new Cookie(name,value) • 可以使用Cookie 的setXXX方法来设定一些相应 的值
相关文档
最新文档