1.1 Web应用概述
Web应用是一种通过互联网访问的应用程序,使用网页语言编写,通过浏览器运行的动静态网站。在实际应用中大多数网站采用动静结合的原则,网站中内容需要频繁更新,可采用动态网页技术,内容不需要更新,采用静态网页进行显示。
动态网站:由大量的动态页面。后台处理程序以及用于存储内容的数据库组成,具有交互性,自动更新,多样性的特点。动态网站技术有CGI,ASP,ASP.NET,PH,Servlet和JSP等几个重要的动态网站技术。
web应用架构
C/S(Client/Server)客户端/服务器:采用功能分布的原则,客户端负责数据处理,数据表示以及用户接口等功能;服务器端负责数据管理等核心功能,两端共同配合来完成复杂的业务应用。提高响应速度。
B/S(Borwser/Server)浏览器/服务器:是基于特定的HTTP通信协议的C/S结构,对S/C架构的一种变化或者该进的结构,web应用架构即是指这种架构。
web应用运行过程
基于B/S结构的web应用,通常有客户端浏览器,Web服务器和数据库服务器构成:
Web应用程序“请求——处理——响应”的基本运行流程
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().
方法 | 方法描述 |
---|---|
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生命周期的方法,
方法 | 方法描述 |
---|---|
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接口,可以重写该方法以产生有意义的信息 |
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。