?? state.html
字號:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Saving Data in a Servlet
(Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<STYLE TYPE="text/css">
<!-- BODY CODE {font-family: Courier, Monospace; font-size: 11pt} TABLE, BODY {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt} PRE {font-family: Courier, Monospace; font-size: 10pt} H3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11pt} A.eglink {text-decoration: none} A:hover.eglink {text-decoration: underline} -->
</STYLE>
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top"><font face="Times" size="6"><b>The Java Developers Almanac 1.4</b></font>
<br>
Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
</TD>
</TR>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
>
<A HREF="../index.html">List of Packages</A>
>
<B><A HREF="../javax.servlet/pkg.html">javax.servlet</A></B><font color="#666666" SIZE="-2">
[11 examples]
</font>
</DIV><P>
<h3>
e1037.
Saving Data in a Servlet</h3>
There are three places a servlet can save data for its processing - in
the request, in the session (if present), and in the servlet context
(which is shared by all servlets and JSP pages in the context). Data
saved in the request is destroyed when the request is completed. Data
saved in the session is destroyed when the session is destroyed. Data
saved in the servlet context is destroyed when the servlet context is
destroyed.
<P> Data is saved using a mechanism called attributes. An
attribute is a key/value pair where the key is a string and the value
is any object. It is recommended that the key use the reverse domain
name convention (e.g. prefixed with com.mycompany) to minimize
unexpected collisions when integrating with third party modules.
<P> Note: The three locations are identical to the three scopes -
request, session, and application - on a JSP page (see
<a href="../javax.servlet.jsp/attr.html" class="eglink"><font size="-1"><b>e1047</b> Saving Data in a JSP Page</font></a>). So, if a servlet saves data in the
request, the data will be available on a JSP page in the request
scope. A JSP page-scoped value is simply implemented by a local
variable in a servlet.
<P> This example saves and retrieves data in each of the three places:
<pre>
// Save and get a request-scoped value
req.setAttribute(<font color="#0066ff"><i>"com.mycompany.req-param"</i></font>, <font color="#0066ff"><i>"req-value"</i></font>);
Object value = req.getAttribute(<font color="#0066ff"><i>"com.mycompany.req-param"</i></font>);
// Save and get a session-scoped value
HttpSession session = req.getSession(false);
if (session != null) {
session.setAttribute(<font color="#0066ff"><i>"com.mycompany.session-param"</i></font>, <font color="#0066ff"><i>"session-value"</i></font>);
value = session.getAttribute(<font color="#0066ff"><i>"com.mycompany.session-param"</i></font>);
}
// Save and get an application-scoped value
getServletContext().setAttribute(<font color="#0066ff"><i>"com.mycompany.app-param"</i></font>, <font color="#0066ff"><i>"app-value"</i></font>);
value = getServletContext().getAttribute(<font color="#0066ff"><i>"com.mycompany.app-param"</i></font>);
</pre>
The following example retrieves all attributes in a scope:
<pre>
// Get all request-scoped attributes
java.util.Enumeration enum = req.getAttributeNames();
for (; enum.hasMoreElements(); ) {
// Get the name of the attribute
String name = (String)enum.nextElement();
// Get the value of the attribute
Object value = req.getAttribute(name);
}
// Get all session-scoped attributes
HttpSession session = req.getSession(false);
if (session != null) {
enum = session.getAttributeNames();
for (; enum.hasMoreElements(); ) {
// Get the name of the attribute
String name = (String)enum.nextElement();
// Get the value of the attribute
Object value = session.getAttribute(name);
}
}
// Get all application-scoped attributes
enum = getServletContext().getAttributeNames();
for (; enum.hasMoreElements(); ) {
// Get the name of the attribute
String name = (String)enum.nextElement();
// Get the value of the attribute
Object value = getServletContext().getAttribute(name);
}
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
Related Examples
</font></td>
</tr>
</table>
e1034. <a class="eglink" href="com_mycompany_MyServlet.html?l=rel">
The Quintessential Servlet
</a>
<br>
e1035. <a class="eglink" href="GetInit.html?l=rel">
Getting and Setting Initialization Parameters for a Servlet
</a>
<br>
e1036. <a class="eglink" href="GetImage.html?l=rel">
Returning an Image in a Servlet
</a>
<br>
e1038. <a class="eglink" href="Log.html?l=rel">
Logging a Message in a Servlet
</a>
<br>
<br>
<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
© 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -