|
|
The software you need for the tutorials or the examples.
-
Install the J2SE Development Kit.
-
Install Eclipse Helios IDE tool.
-
Install Oracle Weblogic 10.3 server.
-
At last you must add the Oracle Weblogic 10.3 server to the Eclipse Helios IDE tool.
-
All source code examples in this session is part of a
complete example, ServletSimpleApp, that you can download.
What is Servlets?
-
Servlets are Java classes that are loaded and executed by a servlet
container, and can run as a component in a Web-server or a
Java Enterprise Edition Application server.
-
Servlets are designed to accept a response from a client
(usually a web browser), process that request, and return
a response to the client.
-
The base class for all servlets is javax.servlet.GenericServlet,
which defines a generic, protocol-independent servlet.
-
The most common used type of servlet is an HTTP servlet which extends the
javax.servlet.http.HttpServlet class which is a subclass of
javax.servlet.GenericServlet.
-
When you create a servlet, that extends the javax.servlet.http.HttpServlet class,
you must override one or more methods to respond to specific HTTP requests.
-
When a client request is received by a web server, it will deliver the
request to the servlet container that will start and deliver the
request to the servlet.
-
The Servlet receives the request and returns a response to its container
which will deliver the response to the web server that
returns the response to the client.
Alternative requests:
-
A client (usually a web browser) will send a request of a kind:
| HTTP request
|
Description
|
HttpServlet Method
|
|
GET
|
Retrieves information identified by a request
Uniform Resource Identifier (URI).
|
doGet(HttpServletRequest request, HttpServletResponse response)
|
|
POST
|
Requests that the server pass the body of the request
to the resource identified by the request URI for processing.
|
doPost(HttpServletRequest request, HttpServletResponse response)
|
|
HEAD
|
Returns only the header of the response that
would be returned by a GET request.
|
doHead(HttpServletRequest request, HttpServletResponse response)
|
|
PUT
|
Uploads data to the server to be stored at the given request URI.
The main difference between this and POST is that the server
should not further process a PUT request, but simply store it
at the request URI.
|
doPut(HttpServletRequest request, HttpServletResponse response)
|
|
DELETE
|
Deletes the resource identified by the request URI.
|
doDelete(HttpServletRequest request, HttpServletResponse response)
|
-
The most common requests are GET and POST.
-
When you implement a new servlet class, extending the
javax.servlet.http.HttpServlet , you need to override
the right Http Servlet methods depending on which HTTP request
you gets from the client.
public class SimpleServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request,HttpServletResponse response)
{
try
{
response.setContentType("text/html");
PrintWriter printWriter = response.getWriter();
printWriter.println("<h2>");
printWriter.println("If you are reading this, " +
"your Servlet works fine!");
printWriter.println("</h2>");
}
catch (IOException ioException)
{
ioException.printStackTrace();
}
}
}
How to try examples.
-
In this servlet we expect a GET Http request and we do not use any
information from the request object.
-
We set the Content type to "text/html" for the response to the client (browser)
and use a PrintWriter on the response object to return html codes
and text back to the client.
-
To run this Servlet you have to deploy it to a web-server or a Application
server (I am using Weblogic 10.3 application server and Eclipse Helios IDE tool
) and you will find how to install this under the
Tutorials).
-
To deploy means to install the Servlet with some instruction
to a such server.
-
These instructions are mainly defined to be deployment descriptors.
The standard part of the deployment descriptor should be in an
XML-file with the name web.xml.
-
The contents of the web.xml file regarding servlet, SimpleServlet
is usually automatically generated by the IDE tool when you
create the Servlet and should look like this:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>SimpleServlet</servlet-name>
<servlet-class>app.simple.SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>/SimpleServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>SimpleServlet</welcome-file>
</welcome-file-list>
</web-app>
How to try examples.
-
This file starts with the normal xml tag for a XML file and
the root tag for the deployment descriptor is web-app. Every ting
inside the last tag is to tell the server about our application,
which in this case is a Servlet.
-
With a servlet tag we give the Servlet class a servlet name,
which is used in the servlet-mapping tag to specify a url
for the Servlet.
-
In this way we can have many urls for the same servlet.
-
If no session-timeout (the server ends the service
of the application after this time) is given a standard timeout for the server is used
as timeout for the application.
-
The welcome-file tag specifies the startup for our application,
which in this case and our application is the url of the servlet.
-
The context-root (in example /ServletSimpleApp) for the application
will in most cases be specified by a server vendor deployment descriptor.
-
Here is the Weblogic 10.2 deployment descriptor weblogic.xml for deployment in this example:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://www.bea.com/ns/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
http://www.bea.com/ns/weblogic/weblogic-web-app
http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
<wls:weblogic-version>10.3</wls:weblogic-version>
<wls:context-root>ServletSimpleApp</wls:context-root>
</wls:weblogic-web-app>
How to try examples.
-
Everything must at last be build into a war file which is a zipped file
and can be build with the java jar tool or with a zip generator application.
-
The files containing in the war file should be organized like this:
-
You can (in most cases) create and deploy the war file to the server with your selected
IDE tool.
-
When we have deployed this servlet and run it in a browser with
http://localhost:7001/ServletSimpleApp the result back to the browser
from the Servlet should be:
If you are reading this, your Servlet works fine!
-
All source code examples in this session is part of a
complete example, ServletSimpleApp, that you can download.
|
|
|
|
|
|
|