{"id":10175,"date":"2015-08-19T00:05:30","date_gmt":"2015-08-19T04:05:30","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10175"},"modified":"2015-08-01T09:27:10","modified_gmt":"2015-08-01T13:27:10","slug":"setcookies-java-servlet-that-sets-a-few-persistent-and-session-cookies-uses-the-servletutilities-class-to-simplify-the-doctype-and-head-output","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10175","title":{"rendered":"SetCookies.java Servlet that sets a few persistent and session cookies. Uses the ServletUtilities class to simplify the DOCTYPE and HEAD output."},"content":{"rendered":"<p style=\"text-align: justify;\">SetCookies.java\u00a0 Servlet that sets a few persistent and session cookies. Uses the ServletUtilities\u00a0 class to simplify the DOCTYPE and HEAD output.<\/p>\n<p>&nbsp;<\/p>\n<pre>package cwp;\r\n\r\nimport java.io.*;\r\nimport javax.servlet.*;\r\nimport javax.servlet.http.*;\r\n\r\n\/** Sets six cookies: three that apply only to the current\r\n\u00a0*\u00a0 session (regardless of how long that session lasts)\r\n\u00a0*\u00a0 and three that persist for an hour (regardless of\r\n\u00a0*\u00a0 whether the browser is restarted).\r\n\u00a0* \u00a0\r\n\r\n\r\n\u00a0*\u00a0 Taken from Core Web Programming Java 2 Edition\r\n\u00a0*\u00a0 from Prentice Hall and Sun Microsystems Press,\r\n\u00a0*\u00a0 .\r\n\u00a0*\u00a0 May be freely used or adapted.\r\n\u00a0*\/\r\n\r\npublic class SetCookies extends HttpServlet {\r\n\u00a0 public void doGet(HttpServletRequest request,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HttpServletResponse response)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 throws ServletException, IOException {\r\n\u00a0\u00a0\u00a0 for(int i=0; i&lt;3; i++) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Default maxAge is -1, indicating cookie\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ applies only to current browsing session.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Cookie cookie = new Cookie(\"Session-Cookie-\" + i,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Cookie-Value-S\" + i);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 response.addCookie(cookie);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 cookie = new Cookie(\"Persistent-Cookie-\" + i,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Cookie-Value-P\" + i);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Cookie is valid for an hour, regardless of whether\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ user quits browser, reboots computer, or whatever.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 cookie.setMaxAge(3600);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 response.addCookie(cookie);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 response.setContentType(\"text\/html\");\r\n\u00a0\u00a0\u00a0 PrintWriter out = response.getWriter();\r\n\u00a0\u00a0\u00a0 String title = \"Setting Cookies\";\r\n\u00a0\u00a0\u00a0 out.println\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 (ServletUtilities.headWithTitle(title) +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\r\n\" + title + \"\r\n\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"There are six cookies associated with this page.\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"To see them, visit the\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"ShowCookies servlet.\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\r\n\r\n\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Three of the cookies are associated only with the\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"current session, while three are persistent.\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Quit the browser, restart, and return to the\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"ShowCookies servlet to verify that\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"the three long-lived ones persist across sessions.\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\");\r\n\u00a0 }\r\n}\r\n\r\n\r\n\r\nServletUtilities.java\r\n\r\npackage cwp;\r\n\r\nimport javax.servlet.*;\r\nimport javax.servlet.http.*;\r\n\r\n\/** Some simple time savers. Note that most are static methods.\r\n\u00a0* \u00a0\r\n\r\n\r\n\u00a0*\u00a0 Taken from Core Web Programming Java 2 Edition\r\n\u00a0*\u00a0 from Prentice Hall and Sun Microsystems Press,\r\n\u00a0*\u00a0 .\r\n\u00a0*\u00a0 May be freely used or adapted.\r\n\u00a0*\/\r\n\r\npublic class ServletUtilities {\r\n\u00a0 public static final String DOCTYPE =\r\n\u00a0\u00a0\u00a0 \"\";\r\n\r\n\u00a0 public static String headWithTitle(String title) {\r\n\u00a0\u00a0\u00a0 return(DOCTYPE + \"\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\\n\" +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"\\n\");\r\n\u00a0 }\r\n\r\n\u00a0 \/** Read a parameter with the specified name, convert it\r\n\u00a0\u00a0 *\u00a0 to an int, and return it. Return the designated default\r\n\u00a0\u00a0 *\u00a0 value if the parameter doesn't exist or if it is an\r\n\u00a0\u00a0 *\u00a0 illegal integer format.\r\n\u00a0 *\/\r\n\r\n\u00a0 public static int getIntParameter(HttpServletRequest request,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String paramName,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int defaultValue) {\r\n\u00a0\u00a0\u00a0 String paramString = request.getParameter(paramName);\r\n\u00a0\u00a0\u00a0 int paramValue;\r\n\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 paramValue = Integer.parseInt(paramString);\r\n\u00a0\u00a0\u00a0 } catch(NumberFormatException nfe) { \/\/ null or bad format\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 paramValue = defaultValue;\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 return(paramValue);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Given an array of Cookies, a name, and a default value,\r\n\u00a0\u00a0 *\u00a0 this method tries to find the value of the cookie with\r\n\u00a0\u00a0 *\u00a0 the given name. If there is no cookie matching the name\r\n\u00a0\u00a0 *\u00a0 in the array, then the default value is returned instead.\r\n\u00a0\u00a0 *\/\r\n\r\n\u00a0 public static String getCookieValue(Cookie[] cookies,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String cookieName,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String defaultValue) {\r\n\u00a0\u00a0\u00a0 if (cookies != null) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 for(int i=0; i' with\r\n\u00a0\u00a0 *\u00a0 '&gt;', and (to handle cases that occur inside attribute\r\n\u00a0\u00a0 *\u00a0 values), all occurrences of double quotes with\r\n\u00a0\u00a0 *\u00a0 '\"' and all occurrences of '&amp;' with '&amp;'.\r\n\u00a0\u00a0 *\u00a0 Without such filtering, an arbitrary string\r\n\u00a0\u00a0 *\u00a0 could not safely be inserted in a Web page.\r\n\u00a0\u00a0 *\/\r\n\r\n\u00a0 public static String filter(String input) {\r\n\u00a0\u00a0\u00a0 StringBuffer filtered = new StringBuffer(input.length());\r\n\u00a0\u00a0\u00a0 char c;\r\n\u00a0\u00a0\u00a0 for(int i=0; i') {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 filtered.append(\"&gt;\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 } else if (c == '\"') {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 filtered.append(\"\"\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 } else if (c == '&amp;') {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 filtered.append(\"&amp;\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 } else {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 filtered.append(c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 return(filtered.toString());\r\n\u00a0 }\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>SetCookies.java\u00a0 Servlet that sets a few persistent and session cookies. Uses the ServletUtilities\u00a0 class to simplify the DOCTYPE and HEAD output. &nbsp; package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; \/** Sets six cookies: three that apply only to the current \u00a0*\u00a0 session (regardless of how long that session lasts) \u00a0*\u00a0 and three that persist &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10175\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424],"tags":[706,1368,308,1457,285],"class_list":["post-10175","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","tag-code","tag-cookie","tag-java","tag-servlet","tag-285","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":26549,"url":"http:\/\/bangla.sitestree.com\/?p=26549","url_meta":{"origin":10175,"position":0},"title":"SetCookies.java  Servlet that sets a few persistent and session cookies. Uses the ServletUtilities  class to simplify the DOCTYPE and HEAD output. #Programming Code Examples #Java\/J2EE\/J2ME #Servlet","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"SetCookies.java Servlet that sets a few persistent and session cookies. Uses the ServletUtilities class to simplify the DOCTYPE and HEAD output. package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; \/** Sets six cookies: three that apply only to the current * session (regardless of how long that session lasts) *\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10181,"url":"http:\/\/bangla.sitestree.com\/?p=10181","url_meta":{"origin":10175,"position":1},"title":"ShowSession.java Servlet that uses session tracking to determine if the client is a repeat visitor. Uses the ServletUtilities class to simplify the DOCTYPE and HEAD output.","author":"","date":"August 21, 2015","format":false,"excerpt":"ShowSession.java Servlet that uses session tracking to determine if the client is a repeat visitor. Uses the ServletUtilities class to simplify the DOCTYPE and HEAD output. package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.net.*; import java.util.*; \/** Simple example of session tracking. * * Taken from Core Web\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26555,"url":"http:\/\/bangla.sitestree.com\/?p=26555","url_meta":{"origin":10175,"position":2},"title":"ShowSession.java  Servlet that uses session tracking to determine if the client is a repeat visitor. Uses the ServletUtilities  class to simplify the DOCTYPE and HEAD output. #Programming Code Examples #Java\/J2EE\/J2ME #Servlet","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"ShowSession.java Servlet that uses session tracking to determine if the client is a repeat visitor. Uses the ServletUtilities class to simplify the DOCTYPE and HEAD output. package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.net.*; import java.util.*; \/** Simple example of session tracking. * * Taken from Core Web\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10158,"url":"http:\/\/bangla.sitestree.com\/?p=10158","url_meta":{"origin":10175,"position":3},"title":"SimplerHelloWWW.java Servlet that uses ServletUtilities to simplify the generation of the DOCTYPE and HEAD part of the servlet.","author":"","date":"August 15, 2015","format":false,"excerpt":"SimplerHelloWWW.java\u00a0 Servlet that uses ServletUtilities\u00a0 to simplify the generation of the DOCTYPE and HEAD part of the servlet. package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; \/** Simple servlet that generates HTML. This variation of \u00a0*\u00a0 HelloWWW uses the ServletUtilities utility class \u00a0*\u00a0 to generate the DOCTYPE, HEAD, and TITLE.\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10177,"url":"http:\/\/bangla.sitestree.com\/?p=10177","url_meta":{"origin":10175,"position":4},"title":"ShowCookies.java Servlet that displays all cookies that arrived in current request. Uses the ServletUtilities class.","author":"","date":"August 20, 2015","format":false,"excerpt":"ShowCookies.java Servlet that displays all cookies that arrived in current request. Uses the ServletUtilities class. package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; \/** Sets six cookies: three that apply only to the current * session (regardless of how long that session lasts) * and three that persist for an\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26523,"url":"http:\/\/bangla.sitestree.com\/?p=26523","url_meta":{"origin":10175,"position":5},"title":"SimplerHelloWWW.java  Servlet that uses ServletUtilities  to simplify the generation of the DOCTYPE and HEAD part of the servlet. #Programming Code Examples #Java\/J2EE\/J2ME #Servlet","author":"Author-Check- Article-or-Video","date":"April 27, 2021","format":false,"excerpt":"SimplerHelloWWW.java Servlet that uses ServletUtilities to simplify the generation of the DOCTYPE and HEAD part of the servlet. package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; \/** Simple servlet that generates HTML. This variation of * HelloWWW uses the ServletUtilities utility class * to generate the DOCTYPE, HEAD, and TITLE.\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10175"}],"version-history":[{"count":1,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10175\/revisions"}],"predecessor-version":[{"id":10176,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10175\/revisions\/10176"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10175"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}