Java_Web基础

上传人:油条 文档编号:48841075 上传时间:2018-07-21 格式:PPTX 页数:107 大小:474.17KB
返回 下载 相关 举报
Java_Web基础_第1页
第1页 / 共107页
Java_Web基础_第2页
第2页 / 共107页
Java_Web基础_第3页
第3页 / 共107页
Java_Web基础_第4页
第4页 / 共107页
Java_Web基础_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《Java_Web基础》由会员分享,可在线阅读,更多相关《Java_Web基础(107页珍藏版)》请在金锄头文库上搜索。

1、Java Web基础信息技术研究所 袁超Web 应用程序特点o B-S结构应用程序 n用户使用浏览器(Browser)访问Web应用程序,如:用户注册 ,通过浏览器填写用户信息 n程序运行于Web服务器(Server),如:实现保存用户注册信 息功能的程序代码由Web服务器完成。 o 动态网站的运行机制(以用户注册为例)2提交注册数据Web服务器浏览器5 解释HTML文档4返回HTML文档3 执行注册应用程序1 填写注册表单执行结果 html文档 ASP网页编程技术 微软低端B-S结构、IIS(不跨平台)、解释型、简单(脚本与 HTML混杂编码)、小型应用 ASP.NET网页编程技术 微软高端

2、B-S结构、基于.net framework运行(不跨平台)、支 持面向对象 JavaWeb编程技术 Sun公司倡导,许多公司参与制订的Web软件开发规范,与 ASP.NET属同层次的软件开发技术 跨平台,很容易在不同平台之间移置 开源,便于Java开发人员学习和运用,由于技术标准开源, 很多大公司将自己的产品绑定到Java技术规范上,如Oralce 、IBM、JBOSS等主流Web技术介绍Java Web主要技术介绍o Java web技术主要包括两种技术:JSP和Servlet nJSP技术 oJSP:Java Server Pages o与ASP类似,在传统的网页HTML文件中,加入Ja

3、va程序片段和JSP标记就 构成了JSP网页,简单易学。 oJSP是一种编译性程序,首次执行时编译,再次访问时直接执行,效率高。 nServlet技术 oServlet:小服务程序,是一种特殊的Java类,该类可以被Web服务器解释 执行,并生成HTML文档。 o优点: Servlet技术是JSP技术的基础,它比JSP的效率高、安全性更好。 o缺点:它利用输出HTML语句来实现动态网页,不易实现面向表示的任务。 o JSP与Servlet相结合 n面向表示的任务采用JSP技术,对于面向处理的任务采用Servlet技术。Java Web程序环境配置oJava Web开发运行环境 n开发环境 o直

4、接开发:JDK+Web服务器+记事本 o工具开发:eclipse,NetBeans(JDK+Tomcat+可视化环境) o辅助工具:Dreamweaver n运行环境 oJRE(Java运行环境)Web服务器 oJDK安装与配置 oWeb服务器介绍 n支持Java Web的Web服务器有很多 oApache Tomcat开源免费 oGlassFish开源免费,JavaEE服务器 oJBoss开源免费,JavaEE服务器oBea Weblogic oIBM WebSphere oMacromedia JRunTomcat的目录结构o Tomcat6的目录结构比Tomcat5有所精减n/bin:存

5、放启动和停止Tomcat服务的脚本文件 n/conf:存放Tomcat服务器的各种配置文件,其中最重要的是 server.xml n/lib:存放Tomcat服务器所需的各种JAR文件 n/logs:存入Tomcat的日志文件 n/webapps:Web应用目录,将Web应用程序部署于此(每一个 子文件夹对应一个Web应用) n/work:Tomcat把由JSP生成的Servlet放于此目录下 o 配置Web服务器Tomcatn配置环境变量(不是必须的) oTomcat的启动文件会自动配置环境; o如果采用命令启动方式,自动配置会失效,此时需要手工配置 环境变量浏览器与Web服务器的动态交互

6、提交按钮,点此Button将 把FORM内的数据传送到服 务器各种输入控件,接 受用户输入。Method属性指定了 数据传送方式,可 以是GET或POSTGET方式将数据接在URL后面传送给服务器端程序, 如:http:/url?name1=abc/ 使用 “out“把应答内容发送到浏览器public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException 服务器只创建每个Servlet的单一实例,每个用户请求都会引发新的线程。 创建Ser

7、vlet实例时,会调用init()方法,针对每个用户请求都会创建一个线程,该线程调用前面创建实例的service()方法,由service()方法依据接收到的HTTP请求的类型,调用相应的doXxx方法,比如doGet(),最后调用destroy()方法销毁。Servlet生命周期Servlet生命周期Servlet工作原理Web服务器doGet()方法doPost()方法HTTP GET请求HTTP POST请求响应响应客户机Servlet容器环境在HTTP通信和web服务器平台之间实现了一个抽象层。 Servlet容器负责把请求传递给Servlet,并把结果返回给客户。 在使用Servle

8、t的过程中,并发访问的问题由Servlet容器处理,当多个用户请求 同一个Servlet的时候,Servlet容器负责为每个用户启动一个线程,这些线程的 运行和销毁由Servlet容器负责,而在传统的CGI程序中,是为每一个用户启动一 个进程,因此Servlet的运行效率就要比CGI的高出很多。 doGet 和 doPost 方法的参数都是 HttpServletRequest 和 HttpServletResponse 对 象。其中HttpServletRequest 对象代表了客户端的 请求,servlet 通过这个对象获得客户 端 的 请 求 数 据; HttpServletRespon

9、se对象代表了servlet对 客户端请求的响应,sevlet用这个对象向客户端返回 数据。HttpServletRequest/ 参数为FORM 内某输入控件的名字 通过HttpServletResponse对象向客户端返回数据 protected void doGet(HttpServletRequest request, HttpServletResponse response) PrintWriter out = response.getWriter(); / 获取输出流对象out.println(“); / 通过输出流对象 向客户端返回HTML文本HttpServletRequest

10、 多个值的读取request.getParameterValues(); 参数名的查找request.getParameterNames();request.getParameterMap(); 原始表单数据的读取以及对上载文件的分析request.getReader();request.getInputStream(); 多字符集输入的读取request.setCharacterEncoding(“utf-8”);Servlet处理用户请求简介 普通设置方法setHeader(String headerName, String headerValue) HttpServletResponse

11、提供的方法setDateHeader(String header, long milliseconds)setIntHeader(Stirng header, int headerValue)setContentType(String mimeType)setContentLength(int length)Servlet设置响应报头servlet激活器 invokerorg.apache.catalina.servlets.InvokerServlet2在conf/web.xml下配置servlet激活器 invoker /servlet/*缺省servlet 某个servlet的映射路径仅

12、仅是一个“/“ 在web.xml中找不到对应的servlet,将交给这个servlet处理访 问静态的html文件或图片时,实际是这个缺省的Servlet处理 的返回结果,当然它也可以对那些非法请求给出相应的处理 结果缺省servletdefaultorg.apache.catalina.servlets.DefaultServlet default / HTTP无状态性 HTTP是Hyper Text Transfer Protocol的缩写,顾名思义,这个协议支持着超文本的 传输。那么什么是超文本呢?说白了就是使用HTML编写的页面。通常,我们使用 客户端浏览器访问服务器的资源,最常见的U

13、RL也是以html为后缀的文件。因此 ,我们可以说超文本是网络上最主要的资源。 既然HTTP协议的目的在于支持超文本的传输,更加广义一些就是支持资源的传输 ,那么在客户端浏览器向HTTP服务器发送请求,继而HTTP服务器将相应的资源发 回给客户端这样一个过程中,无论对于客户端还是服务器,都没有必要记录这个 过程,因为每一次请求和响应都是相对独立的,就好像你在自动售货机前投下硬 币购买商品一样,谁都不会也不需要记住这样一个交易过程。一般而言,一个URL对应着唯一的超文本,而HTTP服务器也绝对公平公正,不管你是 Michael, 还是Jordon,它都会根据接收到的URL请求返回相同的超文本。正

14、是因为这样的 唯一性,使得记录用户的行为状态变得毫无意义,所以,HTTP协议被设计为无状 态的连接协议符合它本身的需求。 然而,随着时间的推移,人们发现静态的HTML着实无聊而乏味,增加动态生成的 内容才会令Web应用程序变得更加有用。于是乎,HTML的语法在不断膨胀,其中 最重要的是增加了表单(Form);客户端也增加了诸如脚本处理、DOM处理等功 能;对于服务器,则相应的出现了CGI(Common Gateway Interface)以处理包含 表单提交在内的动态请求。在这种客户端与服务器进行动态交互的Web应用程序 出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需

15、要 承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则 是Session。 HTTP是无状态协议,它没有提供内置方法来对一系列由相同用户发起的请求进 行识别。客户程序每次读取Web页面,都打开到Web服务器的单独的连接,并且 服务器也不自动维护客户的上下文信息。 因此如果Web应用程序如果想要为来自同一个用户的请求保留状态或数据的话( 比如购物车程序,用户会在不同网页间切换来选购商品,因此要求Web应用程序 必须要能记住一个用户选购的所有商品),这一般可以通过以下几个方法实现 : Cookie

16、URL重写 隐藏表单项目会话跟踪 Cookie cookie是是一些由服务器发向浏览器并且还能由浏览器读回来的小段的文 本信息。Web服务器将它发送到浏览器,之后在访问同一网站或域时,浏览 器又将它原封不动的返回。一般用于记录用户名密码、根据用户的偏好定 制站点、定向广告。 cookie的内容主要包括:名字,值,过期时间,路径和域。 -域可以指定某一个域比如。 -路径就是跟在域名后面的URL路径 ,比如/news。解决HTTP无状态的方法 Cookie代码样例Cookie userCookie = new Cookie(“uesr”, “uid1234”); userCookie.setMaxAge(60*60*24*265); /一年 response.a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号