Java中的WEB应用程序开发基础知识_第1页
Java中的WEB应用程序开发基础知识_第2页
Java中的WEB应用程序开发基础知识_第3页
全文预览已结束

下载本文档

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

文档简介

Java中的WEB应⽤程序开发基础知识⼀、WEB应⽤程序B/S(browser/server,浏览器/服务器)架构基于HTTP传输协议(超⽂本传输协议,回忆HTML的名字:超⽂本标记语⾔)WEB程序必须要运⾏在web容器上,如Tomcat/Jboss/WebLogic等⼆、HTTP协议HTTP使⽤TCP作为它的⽀撑运输层协议,默认的端⼝是80(缺省端⼝)。超⽂本传输协议(HypertextTransfer,简称HTT是P应Protocol)⽤层协议。HTTP是⼀种请求/响应式的协议,即⼀个客户端与服务器建⽴连接后,向服务器发送⼀个请求;服务器接到请求后,给予相应的响应信息。HTTP请求报⽂HTTP请求报⽂由请求⾏、请求头部、空⾏和请求包体4个部分组成,如下图所⽰:HTTP请求报⽂由请求⾏、请求头部、空⾏和请求包体4个部分组成下⾯对请求报⽂格式进⾏简单的分析:请求⾏:请求⾏由⽅法字段、URL字段和HTTP协议版本字段3个部分组成,他们之间使⽤空格隔开。常⽤的HTTP请求⽅法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;GET:当客户端要从服务器中读取某个资源时,使⽤GET⽅法。GET⽅法要求服务器将URL定位的资源放在响应报⽂的数据部分,回送给客户端,即向服务器请求某个资源。使⽤GET⽅法时,请求参数和对应的值附加在URL后⾯,利⽤⼀个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。POST:当客户端给服务器提供信息较多时可以使⽤POST⽅法,POST⽅法向服务器提交数据,⽐如完成表单数据的提交,将数据提交给服务器处理。GET⼀般⽤于获取/查询资源信息,POST会附带⽤户数据,⼀般⽤于更新资源信息。POST⽅法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输⼤量数据;请求头部:请求头部由关键字/值对组成,每⾏⼀对,关键字和值⽤英⽂冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:User-Agent:产⽣请求的浏览器类型;Accept:客户端可识别的响应内容类型列表;星号“⽤*于按”范围将类型分组,⽤“指*/*⽰可接受”全部类型,⽤“type/*指⽰可接受”type类型的所有⼦类型;Accept-Language:客户端可接受的⾃然语⾔;:客户端可接受的编码压缩格式;:可接受的应答的字符集;:请求的主机名,允许多个域名同处⼀个IP地址,即虚拟主机;connection:连接⽅式(close或keepalive);:存储于客户端扩展字段,向同⼀域名的服务端发送属于该域的cookie;空⾏:最后⼀个请求头之后是⼀个空⾏,发送回车符和换⾏符,通知服务器以下不再有请求头;Accept-EncodingAccept-CharsetHostCookie请求包体:请求包体不在GET⽅法中使⽤,⽽是在POST⽅法中使⽤。POST⽅法适⽤于需要客户填写表单的场合。与请求包体相关的最常使⽤的是包体类型Content-Type和包体长度Content-Length。HTTP响应报⽂HTTP响应报⽂由状态⾏、响应头部、空⾏和响应包体4个部分组成,如下图所⽰:下⾯对响应报⽂格式进⾏简单的分析:状态⾏:状态⾏由HTTP协议版本字段、状态码和状态码的描述⽂本3个部分组成,他们之间使⽤空格隔开;状态码由三位数字组成,第⼀位数字表⽰响应的类型,常⽤的状态码有五⼤类如下所⽰:1xx:表⽰服务器已接收了客户端请求,客户端可继续发送请求;2xx:表⽰服务器已成功接收到请求并进⾏处理;3xx:表⽰服务器要求客户端重定向;4xx:表⽰客户端的请求有⾮法内容;5xx:表⽰服务器未能正常处理客户端的请求⽽出现意外错误;

状态码描述⽂本有如下取值:200OK:表⽰客户端请求成功;400BadRequest:表⽰客户端请求有语法错误,不能被服务器所理解;401Unauthonzed:表⽰请求未经授权,该状态代码必须与WWW-Authenticate报头域⼀起使⽤;403Forbidden:表⽰服务器收到请求,但是拒绝提供服务,通常会在响应正⽂中给出不提供服务的原因;404NotFound:请求的资源不存在,例如,输⼊了错误的URL;500InternalServerError:表⽰服务器发⽣不可预期的错误,导致⽆法完成客户端的请求;503ServiceUnavailable:表⽰服务器当前不能够处理客户端的请求,在⼀段时间之后,服务器可能会恢复正常;三、ServletServlet是javaWEB的核⼼,简单的说就是⽤Java编写的服务器端程序。⽤户进⾏⼀个动态请求(静态请求就是直接请求HTML)时,实际上是请求—个servletWEB容器将Servlet加载到内存通过init⽅法进⾏初始化Service()⽅法根据请求⽅法调⽤对应的处理⽅法doPost()或doGet(),还有⼀些其他的请求⽅法doPut()doOptions()...但这些⽅法不常⽤,并且从安全的⾓度都是建议屏蔽的。当Server不再需要Servlet时(⼀般当Server关闭时),Server调⽤Servlet的destroy()⽅法。四、JSPJavaServerPages是⼀种静态编码町机和动态编码Java混合的技术,也有说法就是将java代码镶嵌在HTML上,在JSP之前,Servlet作为主体,功能⽐较强⼤,设计也很先进,但瑜出HTML页⾯却完全是Java的out.print(),⼀⾏⼀句的输出,对于页⾯编写和修改来说⾮常不⽅便,这才促使SUN公司推出JSP。JSP和ASP、PHP类似都是镶嵌型语⾔。另外补充⼀下,WEB容器后动的时候,会将_JSP编译成Servlet,也有说法JSP是Servlet的升级版。五、TomcatJavaWEB容器有很多,这⾥以Tomcat为例来说。前⾯说到,WEB程序必须运⾏在WEB容器上。Tomcat就是作为WEB容器来运⾏切JavaWEB程序的。Tomcat是JAVA语⾔写的,需要JVM作为运⾏环境。Tomcat的⽬录结构bin………………可执⾏程序(脚本),启动停⽌调试Tomcat的⼀些bat.shconf…………….配置⽂件webx.mlserver.xml等lib……………Tomcat运⾏需要的jar包logs…………….⽈志⽂件temp…………….临时⽂件webapps………WEB程序(编译后的项⽬⽂件)work…………….将jsp⽂件⽣成java⽂件在此⽬录进⾏补充说明⼀下,Tomcat将jsp编译成Java⽂件并不是实时进⾏的,所以有时候修改了页⾯,并没有及时⽣效,这时候我们只需要删除⼀下work⽬录下对应的⽂件即可。六、JavaWEB项⽬结构⼀般来说,我们常说的Java项⽬基本上都是WEB项⽬(B/S架构),不是说Java不能做C/S程序,实际上Java的Swing就是画界⾯的,但是现在C#已经成为画界⾯最流⾏的语⾔,快速,简单,所以越来越少的⼈⽤Java来做C/S程序开发了。我们主要来说JavaWEB项⽬,下⾯是最基本的项⽬结构。src…………….JAVA源码,java⽂件⽬录webContent/webRoot……………项⽬发布⽬录WEB-INFlib………………….项⽬需要的jar包web.xml…………WEB程序的⼊⼝以上是JavaWEB项⽬的核⼼结构,实际开发中,搭建项⽬会⽐这些复杂,特别是引⽤框架以后,配置⽂件的增加,会添加⼀些新的⽬录。七、开发框架前⾯提到客户端发起动态请求时,请求到Servlet进⾏处理,然后返回,整个请求处理的⼯作都是在Servlet中处理的,看起来⽐较简单,每当

需要⼀个不同的请求就写⼀个Servlet,但实际开发的时候如果功能模块⽐较多,就需要写很多个Servlet,并且如果我们想修改⼀个请求的返回,也必须通过修改Java代码(Servlet)的⽅式来实现。这样对功能的扩展和维护来说,就⽐较⿇烦了,所以也就推动了很多集成幵发框架的流⾏,⽐如Webwork,Struts,SpringMVC,Jfinal等都是主流的JavaWEB开发框架。使⽤框架有⼀个很笼统的优点概述,可以加快开发进程,在类似项⽬中重⽤代码将为开发者节省⼤量的时间和精⼒.框架为执⾏繁琐的代码任务提供预建模块。让使⽤者只关⼼核⼼业务的开发,框架帮你屏蔽原有技术跟业务开发⽆关的各类技术问题。但如果想要深⼊的了解⼀个框架,使⽤的更加熟练,还是需要了解底层的原理,找到其源头也就是Servlet。以SpringMVC为例简单描述⼀下⼯作原理SprfngMVC主要也是通过DispatcherServlet(Servlet调配器,在web_xml中配置)实现了Servlet这个接⼝,⼜叫前端控制器,来⾃前端的请求会先到达这⾥,它负责到后台去匹配合适的handler。DispatcherServlet的主要⼯作流程如下:1、客户端发出http请求给web服务器,web服务器对http请求进⾏解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http⽅法、请求报⽂头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器Controller(Handler)。3、DispatclierServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进⾏封装),再由具体的HandlerAdapter对Handler进⾏具体的调⽤。5、Handler对数据处理完成以后将返回⼀个ModeAndView对象给DispatcherServlet.6、Handler返回的ModelAndView只是⼀个逻辑视图并不是⼀个正式的视图,DispatcherSevlet通过ViewResolver将邀辑视图转化为真正的视图view(这句话简单的就是返回⼀个要返回的页⾯的相对路径,通过试图解析器转换成具体那个页⾯)。7、Dispatcher通过model解析出ModeAndView中的参数进⾏解析最终展现出完整的view并返回给客户端。⼋、⽤SpringMVC编写功能模块由于框架配置⼯作量⽐较⼤,也需要对各⽅⾯的技术有所了解,暂时不

温馨提示

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

评论

0/150

提交评论