Java Hosting » Servlet Hosting » JSP tutorial » How to compile servlet

How to compile servlet

Compiling Servlets

When you develope servlets you need to have two things: the Servlet API class files, which are used for compiling, and a servlet engine such as a web server, which is used for deployment.

To obtain the Servlet API class files, you have several options: " Install the Java Servlet Development Kit (JSDK), available for free at http://java.sun.com/products/servlet/. JSDK Version 2.0 contains the class files for the Servlet API 2.0, along with their source code and a simple web server that acts as a servlet engine for HTTP servlets.

It works with JDK 1.1 and later. Install one of the many full-featured servlet engines, each of which typically bundles the Servlet API class files. You can compile servlets with the JDK, which is available from http://www.javasoft.com and other Java compilers, just like Applets and Applications.

If the Servlet packages javax.servlet and javax.servlet.http are not included with the compiler or your Servlet engine you have to install them separately by downloading the JSDK (Java Servlet Development Kit) and you should include the JSDK classes in your CLASSPATH environment variable.

This is the example of how to compile the TheHelloServlet on a Unix machine with a JDK installed and the JSDK 2.0 unpacked in /usr/java/JSDK2.0:

$ echo $CLASSPATH .:/usr/java/jdk/lib/classes.zip $ export CLASSPATH=$CLASSPATH:/usr/java/JSDK2.0/lib/jsdk.jar $ echo $CLASSPATH .:/usr/java/jdk/lib/classes.zip:/usr/java/JSDK2.0/lib/jsdk.jar $ ls TheHelloServlet.* TheHelloServlet.java $ javac TheHelloServlet.java $ ls TheHelloServlet.* TheHelloServlet.class TheHelloServlet.java

You can test your servlet using tomcat server. Please reffer to tomcat.apache.org for more details on the installation and use of servlets with the version supplied. Bellow are displayed some new classes and interfaces for servlet use:

For tomcat hosting, please visit our tomcat hosting solution page.

Interface javax.servlet.SingleThreadModel Interface javax.servlet.http.HttpSession Interface javax.servlet.http.HttpSessionBindingListener Interface javax.servlet.http.HttpSessionContext Class javax.servlet.http.Cookie Class javax.servlet.http.HttpSessionBindingEvent New Methods, Constructors and Fields Method javax.servlet.ServletContext.getServletNames() Method javax.servlet.ServletContext.log(Exception, String) Method javax.servlet.ServletRequest.getCharacterEncoding() Method javax.servlet.ServletRequest.getReader() Method javax.servlet.ServletResponse.getCharacterEncoding() Method javax.servlet.ServletResponse.getWriter() Constructor javax.servlet.ServletException.ServletException() Method javax.servlet.http.HttpServletRequest.getCookies() Method javax.servlet.http.HttpServletRequest.getRequestedSessionId() Method javax.servlet.http.HttpServletRequest.getSession(boolean) Method javax.servlet.http.HttpServletRequest.isRequestedSessionIdFromCookie() Method javax.servlet.http.HttpServletRequest.isRequestedSessionIdFromUrl() Method javax.servlet.http.HttpServletRequest.isRequestedSessionIdValid() Field javax.servlet.http.HttpServletResponse.SC_CONFLICT Field javax.servlet.http.HttpServletResponse.SC_CONTINUE Field javax.servlet.http.HttpServletResponse.SC_GATEWAY_TIMEOUT Field javax.servlet.http.HttpServletResponse.SC_GONE Field javax.servlet.http.HttpServletResponse.SC_HTTP_VERSION_NOT_SUPPORTED Field javax.servlet.http.HttpServletResponse.SC_LENGTH_REQUIRED Field javax.servlet.http.HttpServletResponse.SC_METHOD_NOT_ALLOWED Field javax.servlet.http.HttpServletResponse.SC_MULTIPLE_CHOICES Field javax.servlet.http.HttpServletResponse.SC_NON_AUTHORITATIVE_INFORMATION Field javax.servlet.http.HttpServletResponse.SC_NOT_ACCEPTABLE Field javax.servlet.http.HttpServletResponse.SC_PARTIAL_CONTENT Field javax.servlet.http.HttpServletResponse.SC_PAYMENT_REQUIRED Field javax.servlet.http.HttpServletResponse.SC_PRECONDITION_FAILED Field javax.servlet.http.HttpServletResponse.SC_PROXY_AUTHENTICATION_REQUIRED Field javax.servlet.http.HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE Field javax.servlet.http.HttpServletResponse.SC_REQUEST_TIMEOUT Field javax.servlet.http.HttpServletResponse.SC_REQUEST_URI_TOO_LONG Field javax.servlet.http.HttpServletResponse.SC_RESET_CONTENT Field javax.servlet.http.HttpServletResponse.SC_SEE_OTHER Field javax.servlet.http.HttpServletResponse.SC_SWITCHING_PROTOCOLS Field javax.servlet.http.HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE Field javax.servlet.http.HttpServletResponse.SC_USE_PROXY Method javax.servlet.http.HttpServletResponse.addCookie(Cookie) Method javax.servlet.http.HttpServletResponse.encodeRedirectUrl(String) Method javax.servlet.http.HttpServletResponse.encodeUrl(String) Method javax.servlet.http.HttpServlet.doDelete(HttpServletRequest, HttpServletResponse) Method javax.servlet.http.HttpServlet.doOptions(HttpServletRequest, HttpServletResponse) Method javax.servlet.http.HttpServlet.doPut(HttpServletRequest, HttpServletResponse) Method javax.servlet.http.HttpServlet.doTrace(HttpServletRequest, HttpServletResponse) Deprecated Methods Method javax.servlet.ServletContext.getServlets() (use getServletNames in conjunction with getServlet instead)

Changes from Version 2.0 to Version 2.1

Version 2.1 introduced the new model for inter-servlet communication and request delegation. There are some new minor features like nested Exceptions. Several inconsistencies in the API have been corrected.

New Interfaces

Interface javax.servlet.RequestDispatcher

Deprecated Interfaces (removed for security reasons)

Interface javax.servlet.http.HttpSessionContext

New Methods and Constructors

Method javax.servlet.ServletContext.getAttributeNames() Method javax.servlet.ServletContext.getContext(String) Method javax.servlet.ServletContext.getMajorVersion() Method javax.servlet.ServletContext.getMinorVersion() Method javax.servlet.ServletContext.getRequestDispatcher(String) Method javax.servlet.ServletContext.getResource(String) Method javax.servlet.ServletContext.getResourceAsStream(String) Method javax.servlet.ServletContext.log(String, Throwable) Method javax.servlet.ServletContext.removeAttribute(String) Method javax.servlet.ServletContext.setAttribute(String, Object) Method javax.servlet.ServletRequest.getAttributeNames() Method javax.servlet.ServletRequest.setAttribute(String, Object) Method javax.servlet.GenericServlet.init() Method javax.servlet.GenericServlet.log(String, Throwable) Constructor javax.servlet.ServletException.ServletException(String, Throwable) Constructor javax.servlet.ServletException.ServletException(Throwable) Method javax.servlet.ServletException.getRootCause() Method javax.servlet.http.HttpServletRequest.getSession() Method javax.servlet.http.HttpServletRequest.isRequestedSessionIdFromURL() Method javax.servlet.http.HttpServletResponse.encodeRedirectURL(String) Method javax.servlet.http.HttpServletResponse.encodeURL(String) Method javax.servlet.http.HttpSession.getMaxInactiveInterval() Method javax.servlet.http.HttpSession.setMaxInactiveInterval(int)

Deprecated Methods

Method javax.servlet.ServletContext.getServlet(String) (potentially unsafe) Method javax.servlet.ServletContext.getServletNames() (makes no sense without getServlet) Method javax.servlet.ServletContext.log(Exception, String) (use log(String, Throwable) instead) Method javax.servlet.ServletRequest.getRealPath(String) (use ServletContext.getRealPath instead) Method javax.servlet.http.HttpServletRequest.isRequestedSessionIdFromUrl() (use isRequestedSessionIdFromURL instead) Method javax.servlet.http.HttpServletResponse.encodeRedirectUrl(String) (use encodeRedirectURL instead) Method javax.servlet.http.HttpServletResponse.encodeUrl(String) (use encodeURL instead) Method javax.servlet.http.HttpSession.getSessionContext() (HttpSessionContext is deprecated)
Contact sales!