1、JSP APPLICATION FRAMEWORKS1.1 WHAT ARE APPLICATION FRAMEWORKS:A framework is a reusable, semi-complete application that can be specialized to produce custom applications Johnson. Like people, software applications are more alike than they are different. They run on the same computers, expect input f
2、rom the same devices, output to the same displays, and save data to the same hard disks. Developers working on conventional desktop applications are accustomed to toolkits and development environments that leverage the sameness between applications. Application frameworks build on this common ground
3、 to provide developers with a reusable structure that can serve as the foundation for their own products.A framework provides developers with a set of backbone components that have the following characteristics:Frameworks are the classic build-versus-buy proposition. If you build it, you will unders
4、tand it when you are donebut how long will it be before you can roll your own? If you buy it, you will have to climb the learning curveand how long is that going to take? There is no right answer here, but most observers would agree that frameworks such as Struts provide a significant return on inve
5、stment compared to starting from scratch, especially for larger projects.1.2 OTHER TYPES OF FRAMEWORKS:The idea of a framework applies not only to applications but to application components as well. Throughout this article, we introduce other types of frameworks that you can use with Struts. These i
6、nclude the Lucene search engine, the Scaffold toolkit, the Struts validator, and the Tiles tag library. Like application frameworks, these tools provide semi-complete versions of a subsystem that can be specialized to provide a custom component.Some frameworks have been linked to a proprietary devel
7、opment environment. This is not the case with Struts or any of the other frameworks shown in this book. You can use any development environment with Struts: Visual Age for Java, JBuilder, Eclipse, Emacs, and Textpad are all popular choices among Struts developers. If you can use it with Java, you ca
8、n use it with Struts.1.3 ENABLING TECHNOLPGIES:Applications developed with Struts are based on a number of enabling technologies. These components are not specific to Struts and underlie every Java web application. A reason that developers use frameworks like Struts is to hide the nasty details behi
9、nd acronyms like HTTP, CGI, and JSP. As a Struts developer, you dont need to be an alphabet soup guru, but a working knowledge of these base technologies can help you devise creative solutions to tricky problems.1.4 HYPERTEXT TRANSFER PROTOCOL (HTTP):When mediating talks between nations, diplomats o
10、ften follow a formal protocol.Diplomatic protocols are designed to avoid misunderstandings and to keep negotiations from breaking down. In a similar vein, when computers need to talk, they also follow a formal protocol. The protocol defines how data is transmitted and how to decode it once it arrive
11、s. Web applications use the Hypertext Transfer Protocol (HTTP) to move data between the browser running on your computer and the application running on the server.Many server applications communicate using protocols other than HTTP. Some of these maintain an ongoing connection between the computers.
12、 The application server knows exactly who is connected at all times and can tell when a connection is dropped. Because they know the state of each connection and the identity of each person using it, these are known as stateful protocols.By contrast, HTTP is known as a stateless protocol. An HTTP se
13、rver will accept any request from any client and will always provide some type of response, even if the response is just to say no. Without the overhead of negotiating and retaining a connection, stateless protocols can handle a large volume of requests. This is one reason why the Internet has been
14、able to scale to millions of computers.Another reason HTTP has become the universal standard is its simplicity. An HTTP request looks like an ordinary text document. This has made it easy for applications to make HTTP requests. You can even send an HTTP request by hand using a standard utility such
15、as Telnet. When the HTTP response comes back, it is also in plain text that developers can read.The first line in the HTTP request contains the method, followed by the location of the requested resource and the version of HTTP. Zero or more HTTP request headers follow the initial line. The HTTP head
16、ers provide additional information to the server. This can include the browser type and version, acceptable document types, and the browsers cookies, just to name a few. Of the seven request methods, GET and POST are by far the most popular.Once the server has received and serviced the request, it w
17、ill issue an HTTP response. The first line in the response is called the status line and carries the HTTP protocol version, a numeric status, and a brief description of the status. Following the status line, the server will return a set of HTTP response headers that work in a way similar to the requ
18、est headers.As we mentioned, HTTP does not preserve state information between requests. The server logs the request, sends the response, and goes blissfully on to the next request. While simple and efficient, a stateless protocol is problematic for dynamic applications that need to keep track of the
19、ir users.Cookies and URL rewriting are two common ways to keep track of users between requests. A cookie is a special packet of information on the users computer. URL rewriting stores a special reference in the page address that a Java server can use to track users. Both approaches are seamless, and
20、 using either means extra work when developing a web application. On its own, a standard HTTP web server does not traffic in dynamic content. It mainly uses the request to locate a file and then returns that file in the response. The file is typically formatted using Hypertext Markup Language (HTML)
21、 W3C, HTML that the web browser can format and display. The HTML page often includes hypertext links to other web pages and may display any number of other goodies, such as images and videos. The user clicks a link to make another request, and the process begins a new.Standard web servers handle sta
22、tic content and images quite well but need a helping hand to provide users with a customized, dynamic response. DEFINITION: Static content on the Web comes directly from text or data files, like HTML or JPEG files. These files might be changed from time to time, but they are not altered automaticall
23、y when requested by a web browser. Dynamic content, on the other hand, is generated on the fly, typically in response to an individualized request from a browser.1.5 COMMON GATEWAY INTERFACE (CGI):The first widely used standard for producing dynamic content was the Common Gateway Interface (CGI). CG
24、I uses standard operating system features, such as environment variables and standard input and output, to create a bridge, or gateway, between the web server and other applications on the host machine. The other applications can look at the request sent to them by the web server and create a custom
25、ized response.When a web server receives a request thats intended for a CGI program, it runs that program and provides the program with information from the incoming request. The CGI program runs and sends its output back to the server. The web server then relays the response to the browser.CGI defi
26、nes a set of conventions regarding what information it will pass as environment variables and how it expects standard input and output to be used. Like HTTP, CGI is flexible and easy to implement, and a great number of CGI-aware programs have been written.The main drawback to CGI is that it must run
27、 a new copy of the CGI-aware program for each request. This is a relatively expensive process that can bog down high-volume sites where thousands of requests are serviced per minute. Another drawback is that CGI programs tend to be platform dependent. A CGI program written for one operating system m
28、ay not run on another.1.6 JAVA SERVLETS:Suns Java Servlet platform directly addresses the two main drawbacks of CGI programs. First, servlets offer better performance and utilization of resources than conventional CGI programs. Second, the write-once, run-anywhere nature of Java means that servlets
29、are portable between operating systems that have a Java Virtual Machine (JVM).A Servlet looks and feels like a miniature web server. It receives a request and renders a response. But, unlike conventional web servers, the Servlet application programming interface (API) is specifically designed to hel
30、p Java developers create dynamic applications.The Servlet itself is simply a Java class that has been compiled into byte code, like any other Java object. The Servlet has access to a rich API of HTTP-specific services, but it is still just another Java object running in an application and can levera
31、ge all your other Java assets.To give conventional web servers access to servlets, the servlets are plugged into containers. The Servlet container is attached to the web server. Each Servlet can declare what URL patterns it would like to handle. When a request matching a registered pattern arrives,
32、the web server passes the request to the container, and the container invokes the Servlet.But unlike CGI programs, a new Servlet is not created for each request. Once the container instantiates the Servlet, it will just create a new thread for each request. Java threads are much less expensive than the server processes used by CGI programs. Once the Servlet has been created, using it for additional requests incurs very little overhead. Servlet developers can use the init () method to hold references to expensive resources, such as database connections or EJB Home Int
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1