资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
六、JavaWeb程序开发总结,Java Web程序开发总结,6.1 Java Web程序开发总结,6.2 JSP程序开发作业,Java的运行机制,本地计算机系统,Java虚拟机(JVM),.class 二进制字节码文件,.java Java源程序文件,编译,JVM 加上基础的API,可以运行Java程序,但是不能进行程序的开发,JVM 、JRE加上所有的API,编译、开发工具和文档,用于Java程序的开发,Java的环境,Java 的开发工具,Javac:Java编译器,用来将java程序编译成Bytecode。 Java:Java解释器,执行已经转换成Bytecode的Java应用程序。 Jdb:Java调试器, 用来调试java程序。 Javap:反编译,将类文件还原回方法和变量。 Javadoc:文档生成器,创建HTML文件。 Appletviewer:Applet解释器, 用来解释已经转换成Bytecode的java小应用程序。,Web方式的网络应用,HTTP协议的工作方式,HTTP协议,Web方式的网络应用,HTTP协议的主要特点 典型的C/S结构的工作方式; 简单快速、数据传输较少; 可以通过HTTP协议传输任意类型的数据对象; HTTP是面向一次连接的网络协议; HTTP协议是无状态协议 ;,HTTP协议,HTTP协议,一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,开发Web应用的常用方式,Applet 由Java 语言编写Applet 的源程序,然后编译成字节代码。 当浏览器解译HTML脚本时,按照标记的URL向服务器建立发送请求,通过HTTP协议得到Java Applet 的字节代码。 浏览器启动Java 虚拟机,解释执行Java Applet 的字节代码。,Java语言的Web开发方式,开发Web应用的常用方式,Java语言的Web开发方式,开发Web应用的常用方式,Servlet/JSP Servlet运行在服务器端的Java程序 JSP(Java Server Page Java服务页面)运行在服务器端的用Java语言编写的脚本程序 和其他脚本语言(PHP,ASP)的直接解释执行不同,JSP的运行需要先将JSP的脚本编译为Servlet然后运行在服务器端的Java虚拟机上,开发Web应用的常用方式,Java语言的Web开发方式,Java的Web开发架构,Java的Web开发架构,Java 的三个版本: J2SE:针对普通PC应用的J2SE(Java 2 Standard Edition); J2EE:针对企业网应用的J2EE(Java 2 Enterprise Edition); J2ME:针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本; Java Web开发的三个层次: Servlet/JSP 轻量级J2EE开发 EJB开发,J2EE架构,容器:Web容器、EJB容器、Applet容器、客户端容器 组件:Servlet、JSP、EJB、JDBC、JMS、JNDI、JTA、JCA、JXM、JAAS、JACC、JAXR、SAAJ,轻量级J2EE开发框架,Servlet 的基本概念,Servlet角色 - Web中间件,请求,响应,DataBase,旧系统,Java应用,B2B应用,JDBC,JNI,RMI,XML,Web服务器,客户端,Servlet的基本结构,Servlet的工作过程,Servlet的工作过程,编写Servlet,响应HTTP请求的Servlet需要继承HttpServlet类 它是GenericServlet类的扩充,提供了一个处理HTTP协议的框架 同样需要实现三个方法: init():其中包含对Servlet进行初始化的代码 service():其中包含对用户请求进行处理的方法 通过HttpServletRequest对象得到用户Http请求 通过HttpServletResponse对象发送处理后的Http响应 destroy():其中包含卸载Servlet时需要的代码,编写HTTP Servlet,编写Servlet,在HttpServlet类中对service方法进行了扩充以响应不同的HTTP请求 HttpServlet类中的service方法包括 doGet() doPost() doDelete() doHead() doOptions() doPut() doTrace() 不同的HTTP请求会发往不同的service方法,只有无法识别的HTTP请求才需要发往service()方法。,编写HTTP Servlet,编写Servlet,运行Servelt的方式 安装JDK和应用服务器(Resin) 配置好应用服务器 建立存放程序的Web目录 将编译好的class文件考入到Web目录下的相应文件夹 在web.xml里对Servlet进行设置 虚拟路径的设置 初始化参数的设置 在浏览器中通过URL访问Servlet,运行Servlet,使用Eclipse 开发Web应用,安装JDK 安装Resin 安装Eclipse 配置Eclipse WorkSpace 设置Resin集成环境 创建Java Web Project 配置Resin 配置Web应用,运行Servlet,Web的目录结构 classes文件夹:此应用中编译生成所有class文放在此处 lib文件夹:以JAR/zip形式表现的库文件和所有需要用到的第三方Java库文件存放此处 web.xml文件:此应用的初始化配置文件,使用web.xml配置应用,Web.xml 是应用程序自己的配置文件,采用XML格式的文件描述了Web应用的各类配置 Servlet的配置和定义 初始化参数的定义和配置 初始化页面的定义 出错页面的配置 其他灵活的配置,动态HTML的生成,Servlet只是封装了Web应用处理的外壳,负责接收用户请求,给用户反馈响应; 响应的结果以HTML的形式进行展现,HTML只是展响应结果的一个样式描述; 如何处理用户的请求,仍需要程序逻辑来实现,使用标准的Java程序完成相应的逻辑处理,完成用户的请求,按照用户的需求反馈正确的响应,这才是Web应用核心;,接收用户的输入,用户输入的处理由客户端和服务器端两部分完成 客户端通过表单等方式采集并提交用户的输入; 服务器端的Servlet对客户端提交的表单数据进行分析和封装; 业务逻辑通过Request对象的相应方法获得用户输入并进行处理; 采集用户输入的三种方式 固定参数输入 动态参数输入 URL参数输入,从servlet读取请求,获取HTTP请求的详细信息,可以更加准确的获取用户请求的详细信息,并进行具体的处理 处理多语言问题 处理浏览器兼容问题 处理服务器安全问题 处理用户会话 获取HTTP的请求包括两部分,获得请求行和请求请求头,从servlet返回响应,Servlet通过处理状态行及响应头可执行各种处理,控制和用户的交互以及浏览器的响应方式 拒绝用户的访问 将用户转送到其它网站 标明附加的文档是图像、Word文件或HTML文件 处理用户的会话 对HTTP响应的处理包括两部分,对响应状态的处理和对响应头的处理,保持用户会话,HTTP协议无状态记忆和一次连接的的特点导致Servlet不能自动记忆用户的访问状态; Servlet的线程运行的特点,也不允许Servlet自动记忆用户的访问状态,否则将出现线程不安全的情况; Web程序保持用户会话方法都是将用户会话信息保存在浏览器端,当用户下次访问的时候,通过浏览器告知服务器上次会话的状态 Web程序保持用户会话的三种通用方式 Cookie URL重写 隐藏表单域,Cookie的工作方式 服务器在发给用户浏览器的HTTP响应头中包含所要相应的Cookie信息; 浏览器接收到Cookie后,将Cookie保存在客户端的文件系统中; 浏览器再次访问该Web服务器时,自动在发往服务器的HTTP请求头中的加入该服务器所保存的Cookie; 服务器通过Cookie得到用户上次访问的状态;,Cookie的概念,在Servlet中处理Cookie,建立cookie: new Cookie(name,value) 在响应头中放置cookie:HttpServletResponse.addCookie(); 从请求中读取cookie: HttpServletRequest.getCookies(); 得到Cookie的属性 getValue()得到Cookie的值 getName()得到Cookie的名字 getPath()得到Cookie的路径 getDomain()得到Cookie的域名 getMaxAge()得到Cookie的失效时间,Session 使用Cookie保持用户会话比较麻烦,同时将大量用户的隐私信息放在Cookie中保存也非常不安全; 在Servlet中提供了Session机制,通过Session用以保持用户会话; Session指的是用户操作某个应用的时间概念,例如从用户打开浏览器访问某个网站到用户关闭浏览器离开该网站,这就是一个Session,或者是一个用户会话; Session的实现是以Cookie为基础的;,Session的基本概念,Session的工作方式 Servlet已经生成一个可以唯一标识用户Session的序列号Session Id; 将Session Id作为Cookie的值反馈给浏览器; 以Session Id为文件名,在服务器文件系统(或内存中)中建立一个文件,保存用户会话的内容; 当浏览器将Session Id作为Cookie发送给Web服务器时,Web服务器根据Session Id查找相应的文件,并读取文件的内容,获得用户会话;,Session的基本概念,在Servlet中处理Session,查找与当前请求相关关的HttpSession对象 HttpServletRequest.getSession,查找session 查找保存的会话信息 session.getAttribute,从session中提取之前存储的值 对会话信息进行处理 session.setAttribute 设置属性值 session.removeAttribute 取消属性值 session.invalidate 使会话不活动,JSP 的概念 Java服务器页面(Java Server Pages); 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片断(Scriptlet)和JSP标记,就构成了JSP网页(*.jsp); 将静态HTML与动态内容相结合,用 将动态部份的代码括起来。,JSP的基本概念,JSP的执行过程 接收客户端发出的HTTP请求; JSP 容器将JSP转译成Servlet的源代码; 将产生的Servlet 源代码编译成Class 加载Class到内存执行; 把处理结果封装成结果响应至客户端。 JSP程序的执行分为两个阶段:转译期(Translation Time)和请求期(Request Time) 转译期:JSP网页转译成Servlet类 请求期:Servlet类执行后,响应结果至客户端 反复调用的时候,如果已经转译过一次,就不会再次进行,而是直接执行编译后的的Servlet 类,JSP的基本概念,JSP的基本概念,JSP/Servlet的对应关系 所有的JSP在执行时都会被转译成servlet 可以在WEB-INF/work/_jsp目录下查看转译后的自动生成的.java文件和编译后的.class文件 JSP API javax.servlet.jsp.* JSP容器将JSP脚本转换为Servlet时实现了三个接口方法: jspInit() 对JSP进行初始化 jspDesto
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号