英文技术资料翻译(模版)

巡山小妖精
957次浏览
2021年02月21日 23:31
最佳经验
本文由作者推荐

-

2021年2月21日发(作者:天地人铃声网)


附录:英文技术资料翻译



英文原文:




An Overview of Servlet and JSP Technology


1.1 A Servlet's Job


Servlets


are


Java


programs


that


run


on


Web


or


application


servers, acting as a middle layer between requests coming from Web


browsers


or


other


HTTP


clients


and


databases or


applications


on


the


HTTP


server.


Their


job


is


to


perform


the


following


tasks,


as


illustrated in Figure 1-1.


Figure 1-1


1



Read the explicit data sent by the client.


The end user normally enters this data in an HTML form on a Web


page. However, the data could also come from an applet or a custom


HTTP client program.


2



Read the implicit HTTP request data sent by the browser.


Figure 1-1 shows a single arrow going from the client to the


Web server (the layer where servlets and JSP execute), but there


are really two varieties of data: the explicit data that the end


user enters in a form and the behind-the-scenes HTTP information.


Both


varieties


are


critical.


The


HTTP


information


includes


cookies,


information about media types and compression schemes the browser


understands, and so on.


3



Generate the results.


This process may require talking to a database, executing an


RMI or EJB call, invoking a Web service, or computing the response


directly. Your real data may be in a relational database. Fine. But


your


database


probably


doesn't


speak


HTTP


or


return


results


in


HTML,


so the Web browser can't talk directly to the database. Even if it


could, for security reasons, you probably would not want it to. The


same argument applies to most other applications. You need the Web


middle


layer


to


extract


the


incoming


data


from


the


HTTP


stream,


talk


to the application, and embed the results inside a document.


4



Send the explicit data (i.e., the document) to the client.


This document can be sent in a variety of formats, including


text


(HTML


or


XML),


binary


(GIF


images),


or


even


a


compressed


format


like gzip that is layered on top of some other underlying format.


But,


HTML


is


by


far


the


most


common


format,


so


an


important


servlet/JSP task is to wrap the results inside of HTML.


5



Send the implicit HTTP response data.


Figure 1-1 shows a single arrow going from the Web middle layer


(the servlet or JSP page) to the client. But, there are really two


varieties


of


data


sent:


the


document


itself


and


the


behind- the-scenes


HTTP


information.


Again,


both


varieties


are


critical


to


effective


development.


Sending


HTTP


response


data


involves telling the browser or other client what type of document


is


being


returned


(e.g.,


HTML),


setting


cookies


and


caching


parameters, and other such tasks.


1.2 Why Build Web Pages Dynamically?


Many client requests can be satisfied by prebuilt documents,


and


the


server


would


handle


these


requests


without


invoking


servlets.


In many cases, however, a static result is not sufficient, and a


page needs to be generated for each request. There are a number of


reasons why Web pages need to be built on-the-fly:


1



The Web page is based on data sent by the client.


For


instance,


the


results


page


from


search


engines


and


order-confirmation


pages


at


online


stores


are


specific


to


particular user requests. You don't know what to display until you


read the data that the user submits. Just remember that the user


submits


two


kinds


of


data:


explicit


(i.e.,


HTML


form


data)


and


implicit (i.e., HTTP request headers). Either kind of input can be


used to build the output page. In particular, it is quite common


to build a user-specific page based on a cookie value.


2



The Web page is derived from data that changes frequently.


If the page changes for every request, then you certainly need


to


build


the


response


at


request


time.


If


it


changes


only


periodically,


however,


you


could


do


it


two


ways:


you


could


periodically build a new Web page on the server (independently of


client requests), or you could wait and only build the page when


the user requests it. The right approach depends on the situation,


but sometimes it is more convenient to do the latter: wait for the


user request. For example, a weather report or news headlines site


might build the pages dynamically, perhaps returning a previously


built page if that page is still up to date.


3



The Web page uses information from corporate databases or


other server-side sources.


If


the


information


is


in


a


database,


you


need


server-side


processing even if the client is using dynamic Web content such as


an applet. Imagine using an applet by itself for a search engine


site:



50


terabyte applet,


please wait!


Obviously,


that


is silly; you need to talk to the database. Going from the client


to the Web tier to the database (a three-tier approach) instead of


from


an


applet


directly


to


a


database


(a


two-tier


approach)


provides


increased flexibility and security with little or no performance


penalty. After all, the database call is usually the rate- limiting


step, so going through the Web server does not slow things down.


In fact, a three-tier approach is often faster because the middle


tier can perform caching and connection pooling.


In


principle,


servlets


are


not


restricted


to


Web


or


application


servers that handle HTTP requests but can be used for other types


of servers as well. For example, servlets could be embedded in FTP


or mail servers to extend their functionality. And, a servlet API


for


SIP


(Session


Initiation


Protocol)


servers


was


recently


standardized


(see


/en/jsr/detail?id=116).


In


practice,


however,


this


use


of


servlets


has


not


caught


on,


and


we'll


only be discussing HTTP servlets.


1.3 The Advantages of Servlets Over


Java


servlets


are


more


efficient,


easier


to


use,


more


powerful,


more portable, safer, and cheaper than traditional CGI and many


alternative CGI-like technologies.


1



Efficient


With traditional CGI, a new process is started for each HTTP


request.


If


the


CGI


program


itself


is


relatively


short,


the


overhead


of


starting


the


process


can


dominate


the


execution


time.


With


servlets, the Java virtual machine stays running and handles each


request


with


a


lightweight


Java


thread,


not


a


heavyweight


operating


system


process.


Similarly,


in


traditional


CGI,


if


there


are


N


requests to the same CGI program, the code for the CGI program is


loaded into memory N times. With servlets, however, there would be


N


threads,


but


only


a


single


copy


of


the


servlet


class


would


be


loaded.


This approach reduces server memory requirements and saves time by


instantiating fewer objects. Finally, when a CGI program finishes


handling a request, the program terminates. This approach makes it


difficult to cache computations, keep database connections open,


and


perform


other


optimizations


that


rely


on


persistent


data.


Servlets,


however,


remain


in


memory


even


after


they


complete


a


response,


so


it


is


straightforward


to


store


arbitrarily


complex


data


between client requests.


2



Convenient


Servlets have an extensive infrastructure for automatically


parsing


and


decoding


HTML


form


data,


reading


and


setting


HTTP


headers, handling cookies, tracking sessions, and many other such


high- level utilities. In CGI, you have to do much of this yourself.


Besides, if you already know the Java programming language, why


learn


Perl


too?


You're


already


convinced


that


Java


technology


makes


for


more


reliable


and


reusable


code


than


does


Visual


Basic,


VBScript,


or


C++.


Why


go


back to


those


languages


for


server-side


programming?


3



Powerful


Servlets support several capabilities that are difficult or


impossible


to


accomplish


with


regular


CGI.


Servlets


can


talk


directly to the Web server, whereas regular CGI programs cannot,


at


least


not


without


using


a


server- specific


API.


Communicating


with


the


Web


server


makes


it


easier


to


translate


relative


URLs


into


concrete


path


names,


for


instance.


Multiple


servlets


can


also


share


data, making it easy to implement database connection pooling and


similar


resource-sharing


optimizations.


Servlets


can


also


maintain


information from request to request, simplifying techniques like


session tracking and caching of previous computations.


4



Portable


Servlets


are


written


in


the


Java


programming


language


and


follow


a standard API. Servlets are supported directly or by a plugin on


virtually every major Web server. Consequently, servlets written


for, say, Macromedia JRun can run virtually unchanged on Apache


Tomcat,


Microsoft


Internet


Information


Server


(with


a


separate


plugin), IBM WebSphere, iPlanet Enterprise Server, Oracle9i AS, or


StarNine WebStar. They are part of the Java 2 Platform, Enterprise


Edition, so industry support for servlets is becoming even more


pervasive.


5



Inexpensive


A number of free or very inexpensive Web servers are good for


development use or deployment of low- or medium-volume Web sites.


Thus,


with


servlets


and


JSP


you


can


start


with


a


free


or


inexpensive


server and migrate to more expensive servers with high-performance


capabilities or advanced administration utilities only after your


project meets initial success. This is in contrast to many of the


other


CGI


alternatives,


which


require


a


significant


initial


investment for the purchase of a proprietary package.


Price


and


portability


are


somewhat


connected.


For


example,


Marty tries to keep track of the countries of readers that send him


questions by email. India was near the top of the list, probably


#2 behind the U.S. Marty also taught one of his JSP and servlet


training


courses


(see


/)


in


Manila,


and there was great interest in servlet and JSP technology there.



Now, why are India and the Philippines both so interested? We


surmise


that


the


answer


is


twofold.


First,


both


countries


have


large


pools of well-educated


software


developers. Second, both countries


have (or had, at that time) highly unfavorable currency exchange


rates against the U.S. dollar. So, buying a special- purpose Web


server from a U.S. company consumed a large part of early project


funds.


But,


with


servlets


and


JSP,


they


could


start


with


a


free


server:


Apache Tomcat (either standalone, embedded in the regular Apache


Web server, or embedded in Microsoft IIS). Once the project starts


to become successful, they could move to a server like Caucho Resin


that had higher performance and easier administration but that is


not


free.


But


none


of


their


servlets


or


JSP


pages


have


to


be


rewritten.


If their project becomes even larger, they might want to move to

-


-


-


-


-


-


-


-