<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>jakarta.websocket.server</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="jakarta.websocket.server";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/websocket/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../jakarta/ws/rs/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/websocket/server/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;jakarta.websocket.server</h1>
<div class="docSummary">
<div class="block">This package contains all the Jakarta WebSocket APIs used only by server side applications.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/HandshakeRequest.html" title="interface in jakarta.websocket.server">HandshakeRequest</a></td>
<td class="colLast">
<div class="block">The handshake request represents the WebSocket defined HTTP GET request for the opening handshake of a WebSocket
 session.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/ServerApplicationConfig.html" title="interface in jakarta.websocket.server">ServerApplicationConfig</a></td>
<td class="colLast">
<div class="block">Developers include implementations of ServerApplicationConfig in an archive containing websocket endpoints (WAR file,
 or JAR file within the WAR file) in order to specify the websocket endpoints within the archive the implementation
 must deploy.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/ServerContainer.html" title="interface in jakarta.websocket.server">ServerContainer</a></td>
<td class="colLast">
<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available in server-side deployments.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/ServerEndpointConfig.html" title="interface in jakarta.websocket.server">ServerEndpointConfig</a></td>
<td class="colLast">
<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains web socket configuration
 information specific only to server endpoints.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/ServerEndpointConfig.Builder.html" title="class in jakarta.websocket.server">ServerEndpointConfig.Builder</a></td>
<td class="colLast">
<div class="block">The ServerEndpointConfig.Builder is a class used for creating <a href="../../../jakarta/websocket/server/ServerEndpointConfig.Builder.html" title="class in jakarta.websocket.server"><code>ServerEndpointConfig.Builder</code></a> objects for
 the purposes of deploying a server endpoint.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/ServerEndpointConfig.Configurator.html" title="class in jakarta.websocket.server">ServerEndpointConfig.Configurator</a></td>
<td class="colLast">
<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to provide custom
 configuration algorithms, such as intercepting the opening handshake, or providing arbitrary methods and
 algorithms that can be accessed from each endpoint instance configured with this configurator.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation">
<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Annotation Type</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/PathParam.html" title="annotation in jakarta.websocket.server">PathParam</a></td>
<td class="colLast">
<div class="block">This annotation may be used to annotate method parameters on server endpoints where a URI-template has been used in
 the path-mapping of the <a href="../../../jakarta/websocket/server/ServerEndpoint.html" title="annotation in jakarta.websocket.server"><code>ServerEndpoint</code></a> annotation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/websocket/server/ServerEndpoint.html" title="annotation in jakarta.websocket.server">ServerEndpoint</a></td>
<td class="colLast">
<div class="block">This class level annotation declares that the class it decorates is a web socket endpoint that will be deployed and
 made available in the URI-space of a web socket server.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!--   -->
</a>
<h2 title="Package jakarta.websocket.server Description">Package jakarta.websocket.server Description</h2>
<div class="block">This package contains all the Jakarta WebSocket APIs used only by server side applications.</div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/websocket/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../jakarta/ws/rs/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/websocket/server/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
