# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cookies.cookies=Your browser is sending the following cookies:
cookies.make-cookie=Create a cookie to send to your browser
cookies.name=Name:
cookies.no-cookies=Your browser isn't sending any cookies
cookies.set=You just sent the following cookie to your browser:
cookies.title=Cookies Example
cookies.value=Value:

helloworld.title=Hello World!

requestheader.title=Request Header Example

requestinfo.label.method=Method:
requestinfo.label.pathinfo=Path Info:
requestinfo.label.protocol=Protocol:
requestinfo.label.remoteaddr=Remote Address:
requestinfo.label.requesturi=Request URI:
requestinfo.title=Request Information Example

requestparams.firstname=First Name:
requestparams.lastname=Last Name:
requestparams.no-params=No Parameters, Please enter some
requestparams.params-in-req=Parameters in this request:
requestparams.title=Request Parameters Example

sessions.adddata=Add data to your session
sessions.created=Created:
sessions.data=The following data is in your session:
sessions.dataname=Name of Session Attribute:
sessions.datavalue=Value of Session Attribute:
sessions.id=Session ID:
sessions.lastaccessed=Last Accessed:
sessions.title=Sessions Example
