《JSP高级编程》PPT课件.ppt_第1页
《JSP高级编程》PPT课件.ppt_第2页
《JSP高级编程》PPT课件.ppt_第3页
《JSP高级编程》PPT课件.ppt_第4页
《JSP高级编程》PPT课件.ppt_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP高级编程,第一讲 简介,1.1 动态网站技术,动态网站的需求 传统的CGI ASP技术,1.2 Sun 的企业级解决方案,Servlet技术 Servlet的优势 - 运行效率高 - 可移植 - 廉价 - 安全 - 主流,JSP技术 (JavaServer Pages) 关于容器,系统文件,servlet容器,浏览器,容器种类 Standalone,默认管理者,Servlet管理者,JSP管理者,In-process Out-of-process,1.3准备运行环境,安装配置JDK 安装配置Tomcat,1.4编写运行第一个Servlet/JSP程序,创建HelloWorld Servlet 创建目录结构 - /WEB-INF/web.xml - /WEB-INF/classes - /WEB-INF/lib/,package _a.example import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet public void doGet ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException response.setContentType(“text/html“); PrintWriter out = response.getWriter(); out.println(“); out.println(“Hello, World!“); out.println(“); out.println(“Hello, World !“); out.println(“); out.println(“) out.close(); ,1.5 Web应用程序的构成,JSP/Servlet的规范 配置文件 静态文件和JSP/Servlet 类文件和包,本章总结: 本章主要对Servlet和JSP作了较为简单的介绍.同时以Tomcat为例配置了相应的Web应用环境 本章重点: 了解运行环境Tomcat,第二讲 Servlet基础,什么是servlet? Servlet的优点是什么?,Servlet是针对CGI的问题而设计的,用于创建高性能的、健壮 的服务器端程序。,Servlet有自己的生命周期,使用多线程而不是昂贵的进程处理 客户请求,因而大大提高了性能,2.1 javax.servlet包,javax.servlet包中的接口 javax.servlet包中的类 javax.servlet包中的异常,2.2 servlet生命周期,Servlet的生命周期是由Servlet 服务器负责管理的 方法 Init() Destroy() getServletConfig() getServletInfo() Service(),Package _a.example; Import javax.servlet.*; Import java.io.IOException; Public class ServletLife implements Serclet puvlic void init(ServletConfig config) throws ServletException System.out.println(“调用init().”); public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException System.out.println(“调用service().”); public void destroy() System.out.println(“调用destroy().”); public String getServletInfo() return null; public ServletConfig getServletConfig() return null; ,2.3 ServletRequest/ServletResponse接口,ServletRequest接口 声明方法 getParameterNames() 取得参数名称 getParameter() 取得特定参数的参数值 getRemoteAddress() 取得远程主机的地址 getRemotedHost() 取得远程主机名称,ServletResponse接口 主要方法 getWrite(),2.4 GenericServlet包装类,包装类(Wrapper) GenericServlet实现的接口 Servlet ServletConfig java.io.Serializable,2.5 Servlet配置信息,获取Servlet的配置信息 方法及用途 getInitParameter() 取得Servlet起始参数值(String) getInitParameterNames() 取得Servlet起始参数名(Enumeration) getServletContext() 取得ServletContext对象(ServletContext) getServletName() 取得Servlet的名称(String) 保留Servlet的配置信息,2.6 ServletContext 接口,初始化Web应用参数 获取容器的信息 使用绑定在Servlet间共享信息,本章总结 介绍Servlet的基础,以及接口与类. 本章重点 ServletRequest接口 ServletResponse接口 ServletContext接口,第三讲 HttpServlet,3.1 Http协议,Http - Hypertext Transfer Protocol 生活类比: 人与人交流大多靠语言:中国人用中文交流,美国人用英文交流;而如果你只会中文,而你想交流的美国人不会中文,你们就无法交流,因为你们的语言不通!语言是有一定的结构、语义等,这些规则就是协议 请求 . 响应和头信息 例如: GET/index.html HTTP/1.0 GET 是HTTP已经定义的方法 /index.html 是资源的名称 HTTP/1.0 是客户端使用HTTP协议的版本号,3.2 HttpServlet 包,HttpServlet类 该类继承GenericServlet类,并增加了7个方法: doGet() doPost() doPut() doHead() doOptions() doDelete() doTrace(),doGet方法 doPost方法,当客户端发送HTTP请求使用GET方法时就调用doGet()方法。 HTTP的缺省方法就是GET。,当客户端发送HTTP请求使用POST方法时就调用doPost()方法。,3.3 HttpServletReponse 接口,控制HTTP响应报头 addHeader() containsHeader() setHeader() setIntHeader() setDateHeader() addIntHeader() addDateHeader(),响应重定向 自动刷新/等待 特殊字符处理,3.4 HttpServletRequest 接口,HttpServletRequest接口定义的方法:,String getAuthType() String getContextPath() Cookie getCookies() long getDateHeader(java.lang.String name) String getHeader(java.lang.String name) Enumeration getHeaderNames() Enumeration getHeaders(java.lang.String name) getIntHeader(java.lang.String name) String getMethod() String getPathInfo() String getPathTranslated() String getQueryString() String getRemoteUser(),String getRequestedSessionId() String getRequestURI() StringBuffer getRequestURL() String getServletPath() HttpSession getSession() HttpSession getSession(boolean create) java.security.Principal getUserPrincipal() boolean isRequestedSessionIdFromCookie() boolean isRequestedSessionIdFromUrl() boolean isRequestedSessionIdFromURL() boolean isRequestedSessionIdValid() boolean isUserInRole(java.lang.String role),请求报头信息 表单数据和参数,getHeader() getHeaders() getHeaderNames() getIntHeader() getDateHeader(),getParameter() getParameters() getParameterNames(),请求委托和请求域 使用RequestDispather对象的方法: 使用 ServletContext对象的getRequestDispatcher()方法 使用 ServletRequest对象的getRequestDispatcher()方法 使用 ServletContext对象的getNamedDispatcher()方法,本章总结 叙述了HTTP的相关内容 介绍了Servlet的主要接口,第四讲 从Servlet访问数据库,4.1 JDBC简介,Java.sql包 访问数据库的API DriverManager类 Connection接口 Statement接口 ResultSet接口 PreparedStatement接口 ResultSetMetaData接口,DriverManager类的主要方法 就是提供了getConnection()方法,返回了一个Connection对象 Connection接口的主要方法 Public void close() throws SQLException 立即关闭,释放Connection对象 Public boolean isClose() throws SQLException 测试Conncetion对象是否已经关闭 Public Statement createStatement() throws SQLException Public Statement createStatement(int resultSetType,int resultSetConcurrency)throws SQLException 用于创建给数据库发送SQL语句的Statement对象 Public PreparedStatement PreparedStatement()throws SQL Exception 用于创建PreparedStatement对象,Public boolean getAutoCommit() throws SQLException 如果自动提交置为enable,该方法返回ture,否则返回false Public void setAutoCommit(Boolean autocommit)throws SQL Exception 设置是否允许Connection对象自动提交事务 Public void commit() throws SQLException 用于提交事务 Public roolback() throws SQLException 用于回滚事务,Statement接口的主要方法 Public ResultSet excuteQuery(String sql) throws SQLException 在数据库上执行一个查询SQL语句,并返回一个ResultSet对象(结果集) Public int excuteUpdate(String sql) throws SQLException 在数据库上执行insert,update,delete SQL语句和DDL,ResultSet接口 Public Boolean isFirst() throws SQLException Public Boolean isLast() throws SQLException Public Boolean next() throws SQLException Public ResultSetMetaData getMetaData() throws SQLException Public XXX getXXX(int columnlndex) throws SQLException PreparedStatement接口 Public int getColumnCount() throws SQLException Public String getColumnName(int columnIndex) throws SQLException,4.2 访问数据库五步曲,访问数据库分以下几步: 加载JDBC驱动程序 指定数据库连接URL 创建Connection对象 创建statement对象 创建resultset对象,加载JDBC驱动程序 JDBC-ODBC桥,本机API Java驱动程序,网络协议Java驱动程序,数据库协议纯Java驱动程序,定义数据库连接的URL,创建Connection对象,Try String sqlServerURL=“jdbc:microsoft:sqlserver:/SERVER:port;DatabaseName”; String username=”; String password=”; Connection con=DriverManager.getConnnection(sqlServerURL,username,password); catch (SQLException e) ,创建Statement对象 创建结果集,4.4 数据库的高级操作,PreparedStatement CallableStatement 事务处理,4.5 数据库连接池(Connection Pool),数据源(Data Source) 连接池(Connection Pool) JNDI(Java命名与目录接口) Tomcat5+SQL server 2000数据库连接池配置,本章总结 讨论了数据库如何与Servlet相结合 JNDI获得数据库连接的方式 本章重点 能够建立与数据库的连接,并操纵数据库。 了解数据库连接池的原理,第五讲 状态和会话管理,5.1 客户端状态管理解决方案,客户端管理的3种解决方案 Cookie URL重写 隐藏域(hiddenfield) 隐藏域(hiddenfield) 优点:简单,任何浏览器都支持 缺点:总是需要一个表单(From),并且不安全,Cookie 什么是Cookie? Cookie不是 Cookie而是 Cookie的应用范围? 在电子商务会话中标识用户 记录用户名和密码 定制站点 定向广告,Cookie是 一个在HTTP请求响应之间 往来传输的信息片断, 它最初是由Netscape公司发明的, 主要用于记录客户端信息, 并将该信息存放在客户端,Cookie 的发送和接受 向客户程序发送cookie 创建cookie对象 设置最大时效 将cookie放入到HTTP响应报头 从客户端读取cookie 调用request.getCookies 对数组进行循环,调用每个cookie的getName方法,直到找到感兴趣的cookie为止,会话和持久Cookie URL重写,5.2 会话的管理使用HttpSession,会话的实现机制 客户端保存session id的方案 采用cookie 采用URL重写 采用隐藏域 使用HttpSession对象,本章总结 主要介绍了状态和会话管理的方法及特点 本章重点 Cookie的使用 HttpSession的使用,第六讲 JSP概述,6.1 对JSP的需求及JSP的优点,对JSP的需求 Servlet的不足 Servlet中HTML的编写和维护都比较困难 不能使用标准的HTML工具 非Java开发人员难以处理这些HTML JSP模型,JSP的好处 JSP中HTML的编写与维护更为简单 能够使用标准的网站开发工具 可以对开发团队进行划分,翻译JSP页面 编译 装载 创建实例 调用jspInit()方法(只调用一次) 为每次客户请求调用_jspService()方法 JSP被容器销毁调用jspDestroy()方法,6.2 JSP的生命周期,6.3 JSP语言基础,JSP2.0规范可以分成以下几个部分: JSP JavaBean 自定义标签(Custom Tags)和JSP片断(JSP Fragments) EL(Expression Language),JSP元素和模板数据 JSP元素分为3类: 脚本元素(scripting element) 指示符(directive) 动作(action) JSP中的脚本元素(scripting element) Scriptlet 小脚本 Expression 表达式 Declaration 声明,Scriptlet 小脚本,expression 表达式,declaration 声明,JSP语法 或 code fragment 后者称为XML语法,JSP语法 XML语法 expression; ,JSP语法 XML语法 declaration;declaration;+ ,JSP中的指示符(directiv) Page 指示符 Taglib 指示符 Include 指示符,Page 指示符 JSP语法 XML语法 ,属性 contentType属性 pageEncoding属性 Language属性 isELIgnored属性 Import属性 Info属性 Session属性 Buffer属性 autoFlush属性 isThreadSafe属性 errorPage属性 isErrorPage属性 Extends属性,Include指示符(静态包含) JSP语法 XML语法 taglib指示符,JSP规范动作Action 语法: 其他JSP规范动作,注释 客户端的注释格式 开发程序员的注释格式 关于引号和Escape字符,隐含对象和JSP文档,Servlet相关的隐含对象 Page对象 PageInfo Page隐含对象 Page Info = ,Config对象 输入输出对象 Request对象 Response对象 Out对象,上下文关系对象 Session对象 Application对象 pageContext对象,PageContext类取得其它隐含对象的方法,PageContext类取得属性的方法,PageContext类提供的范围变量,PageContext.jsp PageConext.jsp 当前application范围内所有的属性 “); % ,举一个例子使大家能够更加明白,异常处理对象 Exception对象, Exception exception对象 Exception: Message: Localized Message: Stack Trace: ,6.7 Web应用中的异常处理,基于页面的解决方案 Servlet作为异常处理页面 基于web.xml配置的异常处理方案,本章总结 对JSP做了简单的说明,理解JSP和Servlet的区别 能够建立简单的jsp页面 本章重点 JSP的特点 JSP语言基础,第七讲 JavaBean和表达式语言,7.1 JSP组件模型,7.2 JavaBean基础,JavaBean的规范主要包括: JavaBean是一个公有类,即使用public来修饰的类 JavaBean必须有一个无参数的构造函数 JavaBean不应该有公开的变量,所有变量都通过方法访问(读取与设置) 设置或访问JavaBean的属性必须通过setXXX和getXXX方法。这里XXX表示属性,7.3 在Servlet/JSP中访问JavaBean,在Servlet中使用JavaBean 用于获得输入 ShowBeanPage.jsp, Passing a value 请输入一个字符串 , ShowBeanPage / value is ,在JSP中使用JavaBean 优势 分离HTML和Java代码 JavaBean重用 ,的用法,语法 :, useBean Example The date/time is ,的用法,语法 :, useB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论