back

BASIC 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()