import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ToolTipServlet extends HttpServlet { private Map courses=new HashMap(); /** * Constructor of the object. */ public ToolTipServlet() { super(); } /** * Destruction of the servlet.
*/ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet.
* * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/xml"); response.setHeader("Cache-Control", "no-cache"); Integer key =Integer.valueOf(request.getParameter("key")); CourseData data=(CourseData) courses.get(key); PrintWriter out = response.getWriter(); out.println(" "); out.println(" "+data.getPar()+" "); out.println(" "+data.getLength()+" "); out.println(" "); out.flush(); out.close(); } /** * The doPost method of the servlet.
* * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println(""); out.println(""); out.println("A Servlet "); out.println(" "); out.print(" This is "); out.print(this.getClass()); out.println(", using the POST method"); out.println(" "); out.println(""); out.flush(); out.close(); } /** * Initialization of the servlet.
* * @throws ServletException if an error occurs */ public void init(ServletConfig config) throws ServletException { CourseData augusta =new CourseData(72 ,7290); CourseData pinehurst =new CourseData(70 ,7214); CourseData standrews =new CourseData(72 ,6566); CourseData baltusrol =new CourseData(70 ,7392); courses.put(new Integer(1), augusta); courses.put(new Integer(2), pinehurst); courses.put(new Integer(3), standrews); courses.put(new Integer(4), baltusrol); } private class CourseData { private int par; private int length; public CourseData(int par ,int length) { this.par=par; this.length=length; } public int getPar() { return this.par; } public int getLength() { return this.length; } } } /index.html
<script type="text/javascript"> var xmlHttp = null; var dataDiv; var dataTable; var dataTableBody; var offsetE1; function createXMLHttpRequest() { try { // Try to use the ActiveX version of XMLHttpRequest. This will // allow developers to load file URLs in IE7 when running in the // local zone. if (window.ActiveXObject) { try { xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.6.0"); } catch (e) { xmlHttp = null; } if(!xmlHttp) try { xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch (e) { xmlHttp = null; } } // We're either running in a non-IE browser, or we failed to // create the ActiveX version of the XMLHttpRequest object. // Try to use the native version of XMLHttpRequest if it exists. if (!xmlHttp && window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); } catch (e) { xmlHttp = null; } if (!xmlHttp) alert("Failed to create an XMLHttpRequest object!" ); return xmlHttp; } function initVars() { dataTableBody=document.getElementById("courseDataBody"); dataTable=document.getElementById("courseData"); dataDiv=document.getElementById("popup"); } function getCourseData(element) { initVars(); createXMLHttpRequest(); offsetE1=element; var url="ToolTipServlet?key="+escape(element.id); xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange = callback; xmlHttp.send(null); } function callback() { if(xmlHttp.readyState==4) { setData(xmlHttp.responseXML); } } function setData(courseData) { clearData(); setOffsets(); var length=courseData.getElementsByTagName("length")[0].firstChild.nodeValue; var par = courseData.getElementsByTagName("par")[0].firstChild.nodeValue; var row,row2; var parData="Par: "+ par; var lengthData="length: "+length; row = createRow(parData); row2 = createRow(lengthData); dataTableBody.appendChild(row); dataTableBody.appendChild(row2); } function createRow(data) { var row,cell,txtNode; row = document.createElement("tr"); cell = document.createElement("td"); cell.setAttribute("bgcolor","#FFFAFA"); cell.setAttribute("border","0"); txtNode = document.createTextNode(data); cell.appendChild(txtNode); row.appendChild(cell); return row; } function setOffsets() { var end = offsetE1.offsetWidth; var top = calculateOffsetTop(offsetE1); dataDiv.style.border="black 1px solid"; dataDiv.style.left = end + 15 +"px"; dataDiv.style.top = top + "px"; } function calculateOffsetTop(field) { return calculateOffset(field,"offsetTop"); } function calculateOffset(field,attr) { var offset=0; while(field) { offset += field[attr]; field=field.offsetParent; } return offset; } function clearData() { var ind = dataTableBody.childNodes.length; for(var i=ind -1 ;i>=0;i--) { dataTableBody.removeChild(dataTableBody.childNodes[i]); } dataDiv.style.border = "none"; } </script>
Augusta National Pinehurst No.2 St.Andrews Links Baltusrol Golf Club
*/ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet.
* * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/xml"); response.setHeader("Cache-Control", "no-cache"); Integer key =Integer.valueOf(request.getParameter("key")); CourseData data=(CourseData) courses.get(key); PrintWriter out = response.getWriter(); out.println(" "); out.println(" "+data.getPar()+" "); out.println(" "+data.getLength()+" "); out.println(" "); out.flush(); out.close(); } /** * The doPost method of the servlet.
* * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println(""); out.println(""); out.println("
* * @throws ServletException if an error occurs */ public void init(ServletConfig config) throws ServletException { CourseData augusta =new CourseData(72 ,7290); CourseData pinehurst =new CourseData(70 ,7214); CourseData standrews =new CourseData(72 ,6566); CourseData baltusrol =new CourseData(70 ,7392); courses.put(new Integer(1), augusta); courses.put(new Integer(2), pinehurst); courses.put(new Integer(3), standrews); courses.put(new Integer(4), baltusrol); } private class CourseData { private int par; private int length; public CourseData(int par ,int length) { this.par=par; this.length=length; } public int getPar() { return this.par; } public int getLength() { return this.length; } } } /