(1) This suggested solution is created by Kanchana Weerasinghe. Our thanks to him.
<HTML>
<BODY bgcolor=#CCFFFF>
<h2><font color=green>
<CFQUERY NAME="xcel" DATASOURCE="f99hw8">
SELECT *
FROM data
WHERE SSNum = '#URL.ssnum#'
</CFQUERY>
<CFOUTPUT>#xcel.Name#, your grades so far: <br> </CFOUTPUT></font></h2><br>
<table border=1 width="80%"><tr>
<td>
</td>
<CFSET MyArray = #ListToArray(xcel.ColumnList)#>
<CFSET TempVar = #ArraySort(MyArray, 'textnocase')#>
<CFSET SortedList = #ArrayToList(MyArray)#>
<CFLOOP INDEX="Item" LIST=#SortedList#>
<CFIF FindNoCase("Homework", #Item#,
1) neq 0>
<td><CFOUTPUT>#Item#<br></CFOUTPUT>
</CFIF>
</CFLOOP>
<tr><td><font color=green>Your Grade</font>
<CFLOOP INDEX="Item" LIST=#xcel.ColumnList#>
<CFIF FindNoCase("Homework", #Item#,
1) neq 0>
<CFSET N = #Evaluate("xcel.#Item#")#>
<td><CFOUTPUT>#N#<br></CFOUTPUT>
</CFIF>
</CFLOOP>
<CFQUERY NAME="stats" DATASOURCE="f99hw8">
SELECT *
FROM data
WHERE NAME = 'Full' or NAME ='Average'
or NAME = 'Median' or NAME = 'Standard Deviation'
</CFQUERY>
<CFLOOP QUERY="stats">
<CFOUTPUT><tr><td><font
color=blue>#stats.Name#</font></CFOUTPUT>
<CFLOOP INDEX="Item" LIST=#stats.ColumnList#>
<CFIF FindNoCase("Homework", #Item#,
1) neq 0>
<CFSET N=#Evaluate("stats.#Item#")#>
<CFSET M= Round(N*100)/100>
<td><CFOUTPUT>#M#<br></CFOUTPUT>
</CFIF>
</CFLOOP>
</CFLOOP>
</table>
</BODY>
</HTML>
(2) For example,
package csci4230fl99.f99demo1.examples.hw;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class f99jsq1 extends HttpServlet {
public void doGet(HttpServletRequest
req, HttpServletResponse res)
throws ServletException, IOException {
// Set the Content-Type
header
res.setContentType("text/html");
// Return early if this
is a HEAD method.
if (req.getMethod().equals("HEAD"))
return;
// get the parameter
values of filename and area.
String filename = req.getParameter("filename");
String inputArea = req.getParameter("area");
// Prepare file name.
String path = req.getPathTranslated();
filename = path.substring(0,path.lastIndexOf(File.separatorChar)+1)
+ filename;
String result = "";
// Try to load and read
the data file.
try {
FileReader
fileReader = new FileReader(filename);
BufferedReader
bufferedReader = new BufferedReader(fileReader);
String inline;
StringTokenizer
st;
String symbol,
area, desc, classCode;
while ((inline
= bufferedReader.readLine()) != null) {
st = new StringTokenizer(inline,",");
// Assume no error in input line.
// Get data in the line.
symbol = (st.hasMoreTokens())? (st.nextToken()) : "";
area = (st.hasMoreTokens())? (st.nextToken()) : "";
desc = (st.hasMoreTokens())? (st.nextToken()) : "";
classCode = (st.hasMoreTokens())? (st.nextToken()) : "";
if (area.equalsIgnoreCase(inputArea)) {
result = result + "<TR><TD>" + symbol
+ "</TD><TD>" + desc
+ "</TD><TD>" + classCode
+ "</TR>";
}
}
if (result.equals(""))
{
result = "There are no areas in the data file matching the " +
"input area <SPAN STYLE='color:blue'>" +
inputArea + "</SPAN>. Please try again.";
}
else {
// construct the entire table using the
// cells so far.
result = "<TABLE BORDER=1 BGCOLOR=#FFFFCC>\n"
+ "<TR><TD><SPAN STYLE='color:blue'>Symbol</SPAN></TD>"
+ "<TD><SPAN STYLE='color:blue'>Description</SPAN></TD>"
+ "<TD><SPAN STYLE='color:blue'>Class Code</SPAN></TD></TR>"
+ result
+ "</TABLE>";
}
}
catch (FileNotFoundException
ignored) { }
catch (IOException ignored)
{ }
if (result.equals(""))
{
result = "Sorry, the data file cannot be open.";
}
// Print result.
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Search
Result</TITLE></HEAD>");
out.println("<BODY>");
out.println("<H2 STYLE='color:blue'>Result
of searching:</H2><P>");
out.println(result);
out.println("</BODY></HTML>");
}
}