Java-Web基础教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JavaWeb基础教程广西大学计算机与信息工程学院Web应用程序特点B-S结构应用程序用户使用浏览器(Browser)访问Web应用程序,如:用户注册,通过浏览器填写用户信息程序运行于Web服务器(Server),如:实现保存用户注册信息功能的程序代码由Web服务器完成。动态网站的运行机制(以用户注册为例)2提交注册数据Web服务器浏览器5解释HTML文档4返回HTML文档3执行注册应用程序1填写注册表单执行结果html文档主流Web技术介绍ASP网页编程技术微软低端B-S结构、IIS(不跨平台)、解释型、简单(脚本与HTML混杂编码)、小型应用ASP.NET网页编程技术微软高端B-S结构、基于.netframework运行(不跨平台)、支持面向对象JavaWeb编程技术Sun公司倡导,许多公司参与制订的Web软件开发规范,与ASP.NET属同层次的软件开发技术跨平台,很容易在不同平台之间移置开源,便于Java开发人员学习和运用,由于技术标准开源,很多大公司将自己的产品绑定到Java技术规范上,如Oralce、IBM、JBOSS等JavaWeb主要技术介绍Javaweb技术主要包括两种技术:JSP和ServletJSP技术JSP:JavaServerPages与ASP类似,在传统的网页HTML文件中,加入Java程序片段和JSP标记就构成了JSP网页,简单易学。JSP是一种编译性程序,首次执行时编译,再次访问时直接执行,效率高。Servlet技术Servlet:小服务程序,是一种特殊的Java类,该类可以被Web服务器解释执行,并生成HTML文档。优点:Servlet技术是JSP技术的基础,它比JSP的效率高、安全性更好。缺点:它利用输出HTML语句来实现动态网页,不易实现面向表示的任务。JSP与Servlet相结合面向表示的任务采用JSP技术,对于面向处理的任务采用Servlet技术。JavaWeb程序环境配置JavaWeb开发运行环境开发环境直接开发:JDK+Web服务器+记事本工具开发:eclipse,NetBeans(JDK+Tomcat+可视化环境)辅助工具:Dreamweaver运行环境JRE(Java运行环境)+Web服务器JDK安装与配置Web服务器介绍支持JavaWeb的Web服务器有很多ApacheTomcat-开源免费GlassFish-开源免费,JavaEE服务器JBoss-开源免费,JavaEE服务器BeaWeblogicIBMWebSphereMacromediaJRunTomcat的目录结构Tomcat6的目录结构比Tomcat5有所精减/bin:存放启动和停止Tomcat服务的脚本文件/conf:存放Tomcat服务器的各种配置文件,其中最重要的是server.xml/lib:存放Tomcat服务器所需的各种JAR文件/logs:存入Tomcat的日志文件/webapps:Web应用目录,将Web应用程序部署于此(每一个子文件夹对应一个Web应用)/work:Tomcat把由JSP生成的Servlet放于此目录下配置Web服务器Tomcat配置环境变量(不是必须的)Tomcat的启动文件会自动配置环境;如果采用命令启动方式,自动配置会失效,此时需要手工配置环境变量浏览器与Web服务器的动态交互……FORMACTION=xxx.jspMETHOD=POSTINPUTTYPE=textNAME=param_1BR……INPUTTYPE=submitVALUE=Submit/FORM……提交按钮,点此Button将把FORM内的数据传送到服务器各种输入控件,接受用户输入。Method属性指定了数据传送方式,可以是GET或POSTGET方式将数据接在URL后面传送给服务器端程序,如:=abc&name2=defPOST方式将数据放在HTTP请求的请求头后面发送。Servlet简介Servlet是java语言的CGI实现,与传统的CGI和许多其他类似CGI的技术相比,JavaServlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性。Servlet是一种服务器端的编程语言,是J2EE中比较关键的组成部分,Servlet技术的推出,扩展了Java语言在服务器端开发的功能,巩固了Java语言在服务器端开发中的地位,而且现在使用非常广泛的JSP技术也是基于Servlet的原理,JSP+JavaBeans+Servlet成为实现MVC模式的一种有效的选择。Servlet在本质上就是Java类,编写Servlet需要遵循Java的基本语法,但是与一般Java类所不同的是,Servlet是只能运行在服务器端的Java类,而且必需遵循特殊的规范,在运行的过程中有自己的生命周期,这些特性都是Servlet所独有的。另外Servlet是和HTTP协议是紧密联系的,所以使用Servlet几乎可以处理HTTP协议各个方面的内容,这也正是Servlet收到开发人员青睐的最大原因。Servlet简介高效传统的CGI程序以进程方式运行,而Servlet以线程方式运行。方便Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。功能强大可以完成很多传统的CGI程序很难做到的事情。可移植性好ServletAPI具有完善的标准。Servlet基本结构publicclassSomeServletextendsHttpServlet{//必须继承自HttpServletpublicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//使用“request”读取和请求有关的信息(比如Cookies)和表单数据//使用“response”指定HTTP应答状态代码和应答头(比如指定内容类型,设置Cookie)PrintWriterout=response.getWriter();//使用out把应答内容发送到浏览器}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{……}}Servlet生命周期服务器只创建每个Servlet的单一实例,每个用户请求都会引发新的线程。创建Servlet实例时,会调用init()方法,针对每个用户请求都会创建一个线程,该线程调用前面创建实例的service()方法,由service()方法依据接收到的HTTP请求的类型,调用相应的doXxx方法,比如doGet(),最后调用destroy()方法销毁。Servlet生命周期InitServicegoGet()doPost()Destroy初始化事件请求响应终止事件执行的开发线程Servlet生存周期Servlet工作原理Web服务器doGet()方法doPost()方法HTTPGET请求HTTPPOST请求响应响应客户机Servlet容器环境在HTTP通信和web服务器平台之间实现了一个抽象层。Servlet容器负责把请求传递给Servlet,并把结果返回给客户。在使用Servlet的过程中,并发访问的问题由Servlet容器处理,当多个用户请求同一个Servlet的时候,Servlet容器负责为每个用户启动一个线程,这些线程的运行和销毁由Servlet容器负责,而在传统的CGI程序中,是为每一个用户启动一个进程,因此Servlet的运行效率就要比CGI的高出很多。HttpServletRequest&HttpServletResponsedoGet和doPost方法的参数都是HttpServletRequest和HttpServletResponse对象。其中HttpServletRequest对象代表了客户端的请求,servlet通过这个对象获得客户端的请求数据;HttpServletResponse对象代表了servlet对客户端请求的响应,sevlet用这个对象向客户端返回数据。HttpServletRequest&HttpServletResponse●通过HttpServletRequest对象获取客户请求数据:getParameter()方法protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse){Stringstr=request.getParameter(name);//参数为FORM内某输入控件的名字}●通过HttpServletResponse对象向客户端返回数据protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse){PrintWriterout=response.getWriter();//获取输出流对象out.println(……);//通过输出流对象向客户端返回HTML文本}Servlet处理用户请求简介单个值的读取request.getParameter(“Param1”);多个值的读取request.getParameterValues();参数名的查找request.getParameterNames();request.getParameterMap();原始表单数据的读取以及对上载文件的分析request.getReader();request.getInputStream();多字符集输入的读取request.setCharacterEncoding(“utf-8”);Servlet设置响应报头普通设置方法setHeader(StringheaderName,StringheaderValue)HttpServletResponse提供的方法setDateHeader(Stringheader,longmilliseconds)setIntHeader(Stirngheader,intheaderValue)setContentType(StringmimeType)setContentLength(intlength)servlet激活器servletservlet-nameinvoker/servlet-nameservlet-classorg.apache.catalina.servlets.InvokerServlet/servlet-classload-on-startup2/load-on-startup/servlet在conf/web.xml下配置servlet激活器servlet-mappingservlet-nameinvoker/servlet-nameurl-pattern/servlet/*/url-pattern/servlet-mapping缺省servlet某个servlet的映射路径仅仅是一个/在web.xml中找不到对应的servlet,将交给这个servlet处理访问静态的html文件或图片时,实际是这个缺省的Servlet处理的返回结果,当然它也可以对那些非法请求给出相应的处理结果缺省servletservlet-namedefault/servlet-nameservlet-classorg.apache.catalina.servlets.DefaultServlet/servlet-classservlet-mappingse

1 / 107
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功