JAVA Web技术及应用

更新时间:2018-08-30 20:05:58 点击次数:1317次

第一章 JAVA Web 入门

1.1 Web应用概述 
Web应用是一种通过互联网访问的应用程序,使用网页语言编写,通过浏览器运行的动静态网站。在实际应用中大多数网站采用动静结合的原则,网站中内容需要频繁更新,可采用动态网页技术,内容不需要更新,采用静态网页进行显示。 
动态网站:由大量的动态页面。后台处理程序以及用于存储内容的数据库组成,具有交互性,自动更新,多样性的特点。动态网站技术有CGI,ASP,ASP.NET,PH,Servlet和JSP等几个重要的动态网站技术。

  1. CGI:在早期互联网发展过程中,动态网站技术主要采用CGI(通用网关接口)来实现,CGI程序在服务器端运行,能够根据不同的客户端请求输出相应的HTNL页面,同时可以访问存储在数据库中的数据以及其他系统中的文件,从而实现动态生成的效果(Perl和Shell)。
  2. ASP和ASP.NET:ASP(动态服务器接口)是微软公司推出的一种动态网页语言。ASP也可以运行在服务器端,可以包含HTML标记,普通文本,脚本命令以及对一些特定微软应用程序的的调用。
  3. PHP:PHP(超文本预处理语言):是基于开源代码的脚本式语言,与ASP一样,php也是采用脚本嵌入到HTML中,但PHP中混合了C,JAVA,Perl等语言语法的优秀部分。
  4. Servlet:sun公司发布基于Servlet的Web服务器,并建立了Java Servlet APL(应用程序编程接口)的编码标准。易于书写java代码,
  5. JSP:JSP是基于Java语言的服务器端脚本语言,是实现HTML代码和Java代码混合的编码技术。JSP是Servlet APL的一个扩展,能够支持多个操作系统平台。易于实现页面设计。

web应用架构 
C/S(Client/Server)客户端/服务器:采用功能分布的原则,客户端负责数据处理,数据表示以及用户接口等功能;服务器端负责数据管理等核心功能,两端共同配合来完成复杂的业务应用。提高响应速度。 
B/S(Borwser/Server)浏览器/服务器:是基于特定的HTTP通信协议的C/S结构,对S/C架构的一种变化或者该进的结构,web应用架构即是指这种架构。 
web应用运行过程 
基于B/S结构的web应用,通常有客户端浏览器,Web服务器和数据库服务器构成:

Web应用程序“请求——处理——响应”的基本运行流程

  1. Web浏览器发送请求: 客户通过URL地址发送的请求转换为标准的HTTP请求,并将服务器响应返回的HTML代发转换为客户端能够看到的图形界面。在典型的web应用程序中,一般通过运行在浏览器端的HTML和脚本代码来提供用户的输入数据的入口以及对数据进行初始化验证。浏览器会将数据通过HTTP协议的GET或POST方法发送到服务器端。
  2. 服务器端处理用户的请求:Web服务器首先需要检查请求的文件地址是否正确,若错误,返回错误信息,若正确,服务器将根据请求的GET或POST方法及文件的类型进行相应的处理,将结果以HTML或XML或着二进制文件等数据形式表示。并按照HTTP协议的响应消息格式反馈给浏览器,浏览器会根据消息附带的信息查看并显示该信息。
  3. 将结果返回给浏览器:一般情况下,服务器将处理结果返回给客户端浏览器时,要指明响应的内容类型,内容长度,然后把响应内容写入到输出流中,客户端浏览器收到响应后,首先查看响应头的内容类型,确实输入流中响应的信息的MIME类型,返回的内容可以是HTML.文本,XML,图像视频流等。

Java web应用的优势 
Java web应用是用Java技术来解决相关的web互联网应用领域的技术总和 ,web应用包括web服务器端应用和web客户端应用两部分,Java在客户端的应用有Java Applet,在服务器端有Serve了他,JSP和第三方框架等,都遵循统一的Java EE技术标准, 
常用的web服务器有:IIS,Apache,Tomcat,JBoss,Tomcat。

Servlet基础 
Servlet是基于Java语言的Web服务器段编程技术,是运行在Servlet容器中的Java类,它能够处理Web客户的http请求,并产出http响应。Servlet对请求的处理和响应过程分为:1,接受HTTP请求。2,取得请求信息,包括请求接头盒请求参数数据。3,调用其他Java类方法,完成具体的业务功能。4,实现到其他Web组件的跳转(包括重新定向和请求转发)。5,生出HTTP响应。servlet具有高效,方便,功能强大,可移植性好。

Servlet体系结构 
Servlet是使用Servlet API及相关类和方法的Java程序,有两个软件包。 
Javax.servlet包:包含支持所有协议的通用的Web组件和类,主要有javax.servlet.Servlet接口,javax.servlet.GenericServlet类,javax.servlet.ServletRequest接口,javax.servlet.ServletResponse接口。 
javax.servlet.http包:包含支持http协议的接口和类,主要有javax.servlet.http.HttpServlet类,javax.servlet.http.HttpServletRequest接口,javax.servlet.http.HttpServletResponse接口。

Servlet接口: 
javax.servlet.Servlet的定义如下:public interface Servlet,所有的Servlet都必须直接或间接实现javax.servlet.Servlet接口。Servlet接口规定了必须由Servlet类实现并且由Servlet引擎识别和管理的方法集。Servlet接口的基本目标是提供与Servlet生命周期相关的方法,如init(),service().

Servlet接口的方法

方法 方法描述
init(ServletConfig config) Servlet的初始方法。在Servlet实例化后,容器调用该方法进行Servlet的初始化;Servlet API规定对任何Servlet实例init()方法只能被调用一次,如果此方法没有正常结束,就会抛出一个ServletException异常,且不再执行,随后在次调用会导致容器重新加载并再次运行init()方法。
service(ServletRequset req,ServleResponse resp) Servlet的服务方法。当用户对Servlet发出请求时容器会调用该方法处理用户的请求;ServletRequest参数提供请求数据的方法,ServletResponse参数提供Servlet的构造响应的方法
destroy() Servlet的销毁方法。容器在终止Servlet服务前掉用此方法,容器调用此方法前必须给Service()线程足够时间来结束执行,因此接口规定当service()正在执行时,destroy()不被执行
getServletconfig() 此方法可以让Servlet在任何时候获得ServletConfig对象
getServletInfo() 此方法返回一个String对象,该对象包含Servlet的信息,例如开发者,描述信息等

GenericServlet类 
javax.servlet.GenericServlet的定义:public abstrace class GenericServlet extends Object inlpements Servlet,ServletConfig,Serializable 
Generic是一个抽象类,是Servlet接口的直接实现,除了service()方法外,提供有关其他的Servlet生命周期的方法,

GenericServlet类的主要方法

方法 方法描述
init(ServletConfig config) 该方法来源于Servlet接口,若重写该方法,必须调用super.init(config),这样GenericServlet类的其他方法才能正常工作
init(ServletConfig config) 该方法重载Servlet接口的上一个init()方法而无需调用super.init(config),而ServletConfig对象依然可以通过调用getServletConfig()方法获得
service(ServletRequst req,ServletRequest req,SrevletResponse resp) 这是一个抽象方法,当为执行网络请求继承GenericServlet类时必须实现
destroy() 与Servlet接口中的destroy()方法相同
getServletConfig() 返回一个Servlet的ServletConfig对象
getServletContext() 返回一个Servlet的ServletContext对象,通过ServletConfig。getServletContext()获得
getServletInfo() 该方法来源于Servlet接口,可以重写该方法以产生有意义的信息

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!