");
out.println ("Publications:");
//checks # of publications, prints all of them in ordered list, unless publications = none
String publication = element.getElementsByTagName ("publications").item(0).getTextContent();
if (publication.equals ("None"))
{
out.println (publication);
out.println ("
");
}
else
{
out.println ("");
NodeList publicationNodes = element.getElementsByTagName ("publications");
for (int x = 0; x < publicationNodes.getLength(); x++)
{
out.println ("
");
//link to post method of project details to add comments
out.print ("");
out.println ("Average Ratings From Users: ");
//find average number of ratings
String totalStars = element.getElementsByTagName ("totalStars").item(0).getTextContent();
String numberOfRatings = element.getElementsByTagName ("numberOfRatings").item(0).getTextContent();
int totalStar = Integer.parseInt (totalStars);
int ratingsNumber = Integer.parseInt (numberOfRatings);
float averageRating = (float) totalStar / (float)ratingsNumber;
out.println ("");
//display average number of ratings
out.println ("
");
out.print ("
Currently rated: ");
out.printf ("%1.1f", averageRating);
out.print (" out of 5 stars rated by ");
out.print (numberOfRatings);
if (ratingsNumber==1)
{
out.print (" person.
");
}
else
{
out.print (" people.
");
}
out.println ("
");
//link to rating.js to update star rating
out.print ("
");
out.println ("");
out.println ("");
} // end if Node type is not element Node
} // End for through the nodes in the list
//create bottom of the page
out.println ("
Designed and Built by Anika Sindhwani");
out.println (" Last Updated: August 16th, 2013
");
out.println ("");
out.close();
}
catch (Exception e)
{
e.printStackTrace();
}
} // End doGet()
/**
* @see HttpServlet#doPost (HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
// String servletPath = "http://localhost:8080/expProj/"; // Anika
String servletPath = "/"; // Jeff
// String webServerPath = "/"; // Anika
String webServerPath = "http://cs.gmu.edu/~offutt/esse/"; // Jeff
// String xmlPath = "c:/eclipse/"; // Anika
String xmlPath = "/var/www/CS/webapps/offutt/WEB-INF/data/esse/"; // Jeff
// String filePath = "/Projects/"; // Anika
String filePath = webServerPath + "Projects/"; // Jeff
String fileName = request.getParameter ("name");
String fileLanguage = request.getParameter ("language");
String commentByUser = request.getParameter ("comment");
String sourceFile = fileName + "." + fileLanguage;
// Open the XML file and create list of elements
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse (xmlPath + "projectList.xml");
document.getDocumentElement().normalize();
//get elements from the XML file
NodeList nodes = document.getElementsByTagName ("project");
for (int i = 0; i < nodes.getLength(); i++)
{
Node node = nodes.item (i);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
Element element = (Element) node;
// compare data to add info to the right xml tag
String fileNameFromXML = element.getElementsByTagName ("name").item(0).getTextContent();
String fileLanguageFromXML = element.getElementsByTagName ("language").item(0).getTextContent().toLowerCase();
String sourceFileFromXML = fileNameFromXML + "." + fileLanguageFromXML;
if (!(sourceFile.equals (sourceFileFromXML)))
{
continue;
}
// server elements
Element commentsRatings = (Element) document.getElementsByTagName ("commentsRatings").item(0);
Element comment = document.createElement ("comment");
comment.appendChild (document.createTextNode (commentByUser));
commentsRatings.appendChild (comment);
//write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource (document);
StreamResult result = new StreamResult (new File (xmlPath + "projectList.xml"));
transformer.transform (source, result);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
} // End doPost()
}