backBASIC SERVLET CODE
REFERENCE SERVLETS IN HTML CODE
A) server side include:
<servlet code=MyServlet codebase=http://remoteserver:8080/directory>
<param name=city value="Maastricht">
</servlet>
B) form:
<form method=POST action="/servlet/MyServlet">
Place of birth:
<input type=text name="city"><p>
<input type=submit value="click">
</form>
BASIC SERVLET STATEMENTS
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public clas MyServlet extends HttpServlet{
public void doGet( HttpServletRequest request, HttpServletResponse res) {
PrintWriter writer_out = res.getWriter(); // for TEXT output
ServletOutputStream bin_out = res.getOutputStream(); // for BINARY output (eg images)
// get a parameter value
String name = request.getParameter("name_par");
// get all parameter names
java.util.Enumeration enum = request.getParameterNames();
// get username client
String user = request.getRemoteUser();
// get raw query string
String q = request.getQueryString();
// write text to client
writer_out.println( "Hello world");
// get content type
String contenttype = getServletContext().getMimeType( file_string );
// set content type out-file
res.setContentType( contenttype );
}
}
GENERATE IMAGES (using acme package)
import java.awt.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import Acme.JPM.Encoders.GifEncoder;
public clas MyServlet extends HttpServlet{
ServletOutputStream bin_out = res.getOutputStream(); // for BINARY output
Frame frame = null;
Graphics g = null;
public void doGet( HttpServletRequest request, HttpServletResponse res) {
frame = new Frame();
// make Frame component displayable by connecting it to a native screen resource
frame.addNotify();
try{
// create image and get its Graphics object
Image image = frame.createImage( 400, 300 );
g = image.getGraphics();
g.setFont("verdana", Font.BOLD, 50 );
g.drawString( "Image text" );
res.setContentType( "image/gif" );
GifEncoder encoder = new GifEncoder( image, bin_out );
encoder.encode();
} finally {
// clean up resources
if (null!=g!) g.dispose();
if (null!=frame) frame.removeNotify();
}
}
}
HEADER INFORMATION
// retrieve some common header values
String s;
s = request.getMethod(); // e.g. GET
s = request.getRequestURI(); // e.g. /servlets/public/apage.txt
s = request.getProtocol(); // e.g. HTTP/1.0
// get a header value
String headerValue = request.getHeader(headerName);
// retrieve all header names
Enumeration headerNames = request.getHeaderNames();
SESSION TRACKING
// Get session. Par. true: automatically create a new session if there isn't one already
HttpSession session = request.getSession(true);
// set a value
session.putValue( aString, anObject );
session.setAttribute( aString, anObject ); // version 2.2
// get a value
Object object = session.getValue( aString );
Object object = session.getAttribute( aString ); // version 2.2
RETRIEVE COMMON CGI VARIABLES
AUTH_TYPE request.getAuthType()
CONTENT_LENGTH String.valueOf(request.getContentLength())
CONTENT_TYPE request.getContentType()
DOCUMENT_ROOT getServletContext().getRealPath("/")
PATH_INFO request.getPathInfo()
PATH_TRANSLATED request.getPathTranslated()
QUERY_STRING request.getQueryString()
REMOTE_ADDR request.getRemoteAddr()
REMOTE_HOST request.getRemoteHost()
REMOTE_USER request.getRemoteUser()
REQUEST_METHOD request.getMethod()
SCRIPT_NAME request.getServletPath()
SERVER_NAME request.getServerName()
SERVER_PORT String.valueOf(request.getServerPort())
SERVER_PROTOCOL request.getProtocol()
SERVER_SOFTWARE getServletContext().getServerInfo()
<== misc. ==>
GET SERVLET PATH INFORMATION
public String request.getPathInfo()
public String request.getPathTranslated()
public String request.getRealPath()