Examples For Servlets Concepts
Examples For Servlets Concepts
Servlet Examples
Your First Servlet
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<HTML>"); out.println("<HEAD><TITLE>Hello World</TITLE></HEAD>"); out.println("<BODY>"); out.println("<BIG>Hello World</BIG>"); out.println("</BODY></HTML>"); } }
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet><servlet-name>MyServletName</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>MyServletName</servlet-name> <url-pattern>/index.html</url-pattern> </servlet-mapping> </web-app>
=============================================================== 2. List
public class MyServlet extends HttpServlet { public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
Tested By M.Gangappa
public class MyServlet extends HttpServlet { public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { res.setContentType("text/plain"); PrintWriter out = res.getWriter(); ServletContext context = getServletContext(); out.println("req.getServerName(): " + req.getServerName()); out.println("req.getServerPort(): " + req.getServerPort()); out.println("context.getServerInfo(): " + context.getServerInfo()); out.println("getServerInfo() name: " +
Tested By M.Gangappa
====================================================
Tested By M.Gangappa
public class DateServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession hs = request.getSession(true); response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.print("<B>"); Date date = (Date) hs.getAttribute("date"); if (date != null) { pw.print("Last access: " + date + "<br>"); } date = new Date(); hs.setAttribute("date", date); pw.println("Current date: " + date); } }
public class MyServlet extends HttpServlet { String msg = ""; public void init(ServletConfig config) { msg = "Hello from Java servlets!"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD>");
Tested By M.Gangappa
public class Properties extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) t hrows ServletException, IOException { PrintWriter out = resp.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>My First Servlet</title>"); out.println("</head>"); out.println("<h2><center>"); out.println("Information About You</center></h2>"); out.println("<br>"); out.println("<center><table border>"); out.println("<tr>"); out.println("<td>Method</td>");
Tested By M.Gangappa
Tested By M.Gangappa
==============================================================
public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse res ponse) throws ServletException, java.io.IOException { System.out.println("command: "+request.getParameter("command")); response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html><head>"); out.println("<title>Help Page</title></head><body>"); out.println("<h2>Please submit your information</h2>"); out.println("<form method=\"post\" action =\"" + request.getContext Path() +"/MyServlet\" >"); out.println("<table border=\"0\"><tr><td valign=\"top\">"); out.println("Your first name: </td> <td valign=\"top\">"); out.println("<input type=\"text\" name=\"firstname\" size=\"20\">") ; out.println("</td></tr><tr><td valign=\"top\">"); out.println("Your last name: </td> <td valign=\"top\">"); out.println("<input type=\"text\" name=\"lastname\" size=\"20\">"); out.println("</td></tr><tr><td valign=\"top\">"); out.println("Your email: </td> <td valign=\"top\">"); out.println("<input type=\"text\" name=\"email\" size=\"20\">"); out.println("</td></tr><tr><td valign=\"top\">"); out.println("<input type=\"submit\" value=\"Submit Info\"></td></tr >"); out.println("</table></form>"); out.println("</body></html>");
Tested By M.Gangappa
Tested By M.Gangappa
Tested By M.Gangappa
===========================================================
Tested By M.Gangappa
10
<html> <head> <title>JSP Unleashed, Chapter 1 - A Basic HTML Form</title> </head> <body> <h1>Please enter your information</h1> <form method="POST" action="formProcessor.do"> Title: <select size="1" name="title"> <option>Mr</option> <option>Mrs</option> <option>Miss</option> <option>Ms</option> <option>Other</option> </select><br> Name: <input type="text" name="name" size="20"><br> City: <input type="text" name="city" size="20"><br> Country: <input type="text" name="country" size="20"><br> Telephone: <input type="text" name="tel" size="20"> <P>Please inform us of your interests:<br> <input type="checkbox" name="interests" value="Sport">Sport<br> <input type="checkbox" name="interests" value="Music">Music<br> <input type="checkbox" name="interests" value="Reading">Reading<br> <input type="checkbox" name="interests" value="TV and Film">TV and Fi lm</p> <P>Your age <input type="radio" name="age" value="25orless" checked>Less than 25 <input type="radio" name="age" value="26to40">26-40 <input type="radio" name="age" value="41to65">41-65 <input type="radio" name="age" value="over65">Over 65</p> <P><input type="submit" value="Submit"></p> </form> </body> </html>
Tested By M.Gangappa
11
public class MyServlet extends HttpServlet { private Vector entries = new Vector(); private long lastModified = 0; public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); printHeader(out); printForm(out); printMessages(out); printFooter(out); } // Add a new entry, then dispatch back to doGet() public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { handleForm(req, res); doGet(req, res); } private void printHeader(PrintWriter out) throws ServletException { out.println("<HTML><HEAD><TITLE>Guestbook</TITLE></HEAD>"); out.println("<BODY>"); } private void printForm(PrintWriter out) throws ServletException { out.println("<FORM METHOD=POST>"); // posts to itself out.println("<B>Please submit your feedback:</B><BR>"); out.println("Your name: <INPUT TYPE=TEXT NAME=name><BR>"); out.println("Your email: <INPUT TYPE=TEXT NAME=email><BR>"); out.println("Comment: <INPUT TYPE=TEXT SIZE=50 NAME=comment><BR>"); out.println("<INPUT TYPE=SUBMIT VALUE=\"Send Feedback\"><BR>"); out.println("</FORM>"); out.println("<HR>"); } private void printMessages(PrintWriter out) throws ServletException { String name, email, comment; Enumeration e = entries.elements(); while (e.hasMoreElements()) { GuestbookEntry entry = (GuestbookEntry) e.nextElement(); name = entry.name; if (name == null) name = "Unknown user"; email = entry.email; if (name == null) email = "Unknown email"; comment = entry.comment;
Tested By M.Gangappa
12
Sessions
Servlet Session Info
import import import import java.io.*; javax.servlet.*; javax.servlet.http.*; java.util.*; public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse r esponse) throws ServletException, java.io.IOException { response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); HttpSession session = request.getSession(); out.println("<html>"); out.println("<head>"); out.println("<title>Simple Session Tracker</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2>Session Info</h2>"); out.println("session Id: " + session.getId() + "<br><br>"); out.println( "The SESSION TIMEOUT period is " + session.getMaxI nactiveInterval() + " seconds.<br><br>"); out.println( "Now changing it to 20 minutes.<br><br>"); session.setMaxInactiveInterval(20 * 60); out.println("The SESSION TIMEOUT period is now " + session.getM axInactiveInterval() + " seconds."); out.println("</body>"); out.println("</html>"); } /** Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletRespon se response)
Tested By M.Gangappa
14
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet><servlet-name>MyServletName</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>MyServletName</servlet-name> <url-pattern>/index.html</url-pattern> </servlet-mapping> </web-app>
public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); HttpSession session = req.getSession(); Integer count = (Integer)session.getAttribute("tracker.count"); if (count == null) count = new Integer(1); else count = new Integer(count.intValue() + 1); session.setAttribute("tracker.count", count); out.println("<HTML><HEAD><TITLE>SessionTracker</TITLE></HEAD>"); out.println("<BODY><H1>Session Tracking Demo</H1>"); out.println("You've visited this page " + count + ((count.intValue() == 1) ? " time." : " times."));
Tested By M.Gangappa
15
public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse r esponse) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(true); Integer counter2 = (Integer) getServletContext().getAttribute ( "counter2"); if (counter2 == null) { counter2 = new Integer(1); } else { counter2 = new Integer(counter2.intValue() + 1); } getServletContext().setAttribute("counter2", counter2);
Tested By M.Gangappa
16
Integer counter = (Integer) session.getAttribute("counter"); if (counter == null) { counter = new Integer(1); } else { counter = new Integer(counter.intValue() + 1); } session.setAttribute("counter", counter); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>"); out.println("Using Contexts"); out.println("</TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println("<H1>Using Contexts</H1>"); out.println("Welcome! You have been here " + counter + " times. <BR>"); out.println("Total page accesses: " + counter2 + "<BR>"); if(session.isNew()){ out.println("This is a new session.<BR>"); } else { out.println("This is not a new session.<BR>"); } out.println("The session ID: " + session.getId() + "<BR>"); out.println("Last time accessed: " + new Date(session.getLastAc cessedTime()) + "<BR>"); out.println("Creation time: " + new Date(session.getCreationTim e()) + "<BR>"); out.println("Timeout length: " + session.getMaxInactiveInterval () + " seconds<BR>"); out.println("</BODY>"); out.println("</HTML>"); } } <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet><servlet-name>MyServletName</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet>
Tested By M.Gangappa
17
public class Counter extends HttpServlet { static final String COUNTER_KEY = "Counter.count"; public void doGet(HttpServletRequest req, HttpServletResponse resp) t hrows ServletException, IOException { HttpSession session = req.getSession(true); resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); int count = 1; Integer i = (Integer) session.getAttribute(COUNTER_KEY); if (i != null) { count = i.intValue() + 1; } session.setAttribute(COUNTER_KEY, new Integer(count)); out.println("<html>"); out.println("<head>"); out.println("<title>Session Counter</title>"); out.println("</head>"); out.println("<body>"); out.println("Your session ID is <b>" + session.getId()); out.println("</b> and you have hit this page <b>" + count + "</b> time(s) during this browser session"); out.println("<form method=GET action=\"" + req.getRequestURI() + "\ ">"); out.println("<input type=submit " + "value=\"Hit page again\">"); out.println("</form>"); out.println("</body>"); out.println("</html>"); out.flush(); } }
Tested By M.Gangappa
18
public void doGet(HttpServletRequest request, HttpServletResponse resp onse) throws ServletException, java.io.IOException { HttpSession session = request.getSession(false); if (session == null){ response.sendRedirect("/dbproj/login.jsp"); } else { response.sendRedirect("/dbproj/menu.jsp"); } } } <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet><servlet-name>MyServletName</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>MyServletName</servlet-name> <url-pattern>/index.html</url-pattern> </servlet-mapping> </web-app>
=============================================================
CooKie
1. Add Cookie Servlet
import java.io.IOException; import java.io.PrintWriter; import import import import javax.servlet.ServletException; javax.servlet.http.Cookie; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest;
Tested By M.Gangappa
19
public class GetCookiesServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse res ponse) throws ServletException, IOException { Cookie[] cookies = request.getCookies(); response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("<B>"); for (int i = 0; i < cookies.length; i++) { String name = cookies[i].getName(); String value = cookies[i].getValue(); pw.println("name = " + name + "; value = " + value); } pw.close(); } }
Tested By M.Gangappa
20
public void doGet(HttpServletRequest request, HttpServletResponse r esponse) throws ServletException, java.io.IOException { Cookie cookie = null; //Get an array of Cookies associated with this domain Cookie[] cookies = request.getCookies(); boolean newCookie = false; //Get the 'mycookie' Cookie if it exists if (cookies != null){ for (int i = 0; i < cookies.length; i++){ if (cookies[i].getName().equals("mycookie")){ cookie = cookies[i]; } }//end for }//end if if (cookie == null){ newCookie=true; //Get the cookie's Max-Age from a context-param element //If the 'cookie-age' param is not set properly //then set the cookie to a default of -1, 'never expires' int maxAge; try{ maxAge = new Integer(getServletContext().getInitParameter("c ookie-age")).intValue(); } catch (Exception e) { maxAge = -1; } //Create the Cookie object cookie = new Cookie("mycookie",""+getNextCookieValue()); cookie.setPath(request.getContextPath()); cookie.setMaxAge(maxAge); response.addCookie(cookie); }//end if // get some info about the cookie response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Cookie info</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2> Information about the cookie named \"mycookie \"</h2>"); out.println("Cookie value: "+cookie.getValue()+"<br>"); if (newCookie){ out.println("Cookie Max-Age: "+cookie.getMaxAge()+"<br>");
Tested By M.Gangappa
21
public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse r esponse) throws ServletException, java.io.IOException { Cookie cookie = null; //Get an array of Cookies associated with this domain Cookie[] cookies = request.getCookies(); boolean hasCookies = false; if (cookies != null) hasCookies = true; // display the name/value of each cookie response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Cookie information</title>"); out.println("</head>"); out.println("<body>"); if (hasCookies){ out.println("<h2> The name and value of each found cookie</h2>" ); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; out.println("Name of cookie #"+(i + 1)+": "+cookie.getName( )+"<br>"); out.println("Value of cookie #"+(i + 1)+": "+cookie.getValu e()+"<br><br>"); } } else { out.println("<h2> This request did not include any cookies< /h2>"); } out.println("</body>"); out.println("</html>"); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException {
Tested By M.Gangappa
23
doGet(request,response); } } <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet><servlet-name>MyServletName</servlet-name> <servlet-class>MyServlet</servlet-class> <init-param> <param-name> go </param-name> <param-value> weather </param-value> </init-param> </servlet> <servlet-mapping><servlet-name>MyServletName</servlet-name> <url-pattern>/index.html</url-pattern> </servlet-mapping> </web-app>
5. Get/Set Cookie
import import import import java.util.*; java.io.*; javax.servlet.*; javax.servlet.http.*;
public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse r esponse) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>"); out.println("A Web Page"); out.println("</TITLE>"); out.println("</HEAD>"); out.println("<BODY"); Cookie[] cookies = request.getCookies(); boolean foundCookie = false; for(int i = 0; i < cookies.length; i++) {
Tested By M.Gangappa
24
public class Cookies extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) t hrows ServletException, IOException { resp.setContentType("text/html"); req.getSession();
Tested By M.Gangappa
25
public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse resp onse) throws ServletException, java.io.IOException { response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); String contextPath = request.getContextPath(); String encodedUrl = response.encodeURL(contextPath + "/default .jsp"); out.println("<html>"); out.println("<head>"); out.println("<title>URL Rewriter</title>"); out.println("</head>"); out.println("<body>");
Tested By M.Gangappa
26
2. URL rewriting
import java.io.IOException; import java.io.PrintWriter; import import import import import javax.servlet.ServletException; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; javax.servlet.http.HttpSession;
Tested By M.Gangappa
27
Tested By M.Gangappa
28