import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
// the class name must agree with the file name
// so this file must be named
// fileName.java
public class fileName extends HttpServlet {
// you can declare variables here (usually private)
public void init(ServletConfig conf) throws ServletException
{
super.init(conf);
}
// you must declare a doGet, doPost or doService method
// usually doGet
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException{
//Get a channel to the Web browser, so we can send output
// The next web page the user sees will be what you write
// to 'out' via print or println commands
// optionally access a Session via
// HttpSession session = req.getSession(true);
// 'true' creates a session if none exists
// if session was created earlier (in another servlet)
// access the session data via session.getValue(data_name)
// store data to the session via
// session.putValue(data_name,value)
ServletOutputStream out = res.getOutputStream();
res.setContentType("text/html");
// process form-data via data = req.getParameter(varname) commands
}
Here is the display servlet:
package teams;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import teams.*;
public class show extends HttpServlet {
public void init(ServletConfig conf)
throws ServletException {
super.init(conf);
}
static int maxsize = 7;
// Instance variables
private int buffer_size = 0;
private String[] insert_buffer = new String[30];
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException{
int team_number=0;
// Get a channel to the browser
ServletOutputStream out = response.getOutputStream();
response.setContentType("text/html"); // Required for HTTP
// Get course name
String course = request.getParameter("course").trim();
// Print page header
out.println(web_header("Team Signup for "
+ course));
// Print the top of the table
out.println("<h1 align=\"center\">Team signup page for "
+ course
+ "</h1>");
// center everything that follows
out.println("<center>");
//Create line with all short team names and links
for (team_number = 0; team_number < teaminfo.number(); team_number++)
{
out.println("<a href=\"#"
+teaminfo.short_name(team_number)+ "\">"
+teaminfo.short_name(team_number)+ "</a>");
}
// new line
out.println("<br />");
out.println("Click on \"Add new name\" to enroll in a team.");
out.println("<br />");
out.println("Click on \"*\" to edit your entry.");
out.println("<br />");
// horizontal line
out.println("<hr />");
// main loop over all teams
for (team_number=0; team_number < teaminfo.number(); team_number++)
{
int row_number = 0;
// team_io is a class for accessing the
// files of team member names
team_io t = new team_io(course, team_number,out);
// load a team file -- parse into member names
// and email addresses
t.load();
// table for file info for this team
String table_caption = teaminfo.long_name(team_number)
+ " ("
+ teaminfo.short_name(team_number)
+ ")";
// generate link for top of table to point to
out.println("<a name="
+ teaminfo.short_name(team_number)
+">");
out.println(table_caption + "<br />");
// start new table
out.println("<table align=\"center\" border=\"4\">");
// t.number() = number of members in this team
// t.name(i) and t.email(i) are name and email
// of i th team member
for (row_number = 0; row_number < t.number(); row_number++)
{
// start new table row
out.println("<tr>");
out.println("<td>"
+ "<a href=\"mailto:"
+ t.email(row_number)
+ "\">"
+ t.name(row_number)
+ "</a>"
+ "</td>"
+ "<td>"
+ gen_options(course,
team_number,
row_number)
+ "</td>");
// finish off this table row
out.println("</tr>");
}
// number of blank slots in this team
// is the max size - number of members signed up
int rest = maxsize - t.number();
// generate table rows for empty slots
for (row_number = 0; row_number < rest; row_number++)
{
out.println("<tr>");
out.println("<td><a href=\""
+ "/servlets/teams.add?team="
+ team_number
+ "&course="
+ course
+ "\">Add new name</a>"
+ "</td>"
+ "<td>?</td>");
// finish off this row
out.println("</tr>");
}
// table for this team is finished
out.println("</table><br />");
// if team had members, generate link to email
// entire team
if(t.number() > 0)
{
out.print("<a href=\"mailto:");
int email_i = 0;
for(email_i = 0; email_i < t.number(); email_i++)
{
out.print(t.email(email_i));
if(email_i < t.number() - 1)
out.print(",");
}
out.println("\">Email entire ");
out.println(teaminfo.short_name(team_number)
+" team </a>");
}
// new line
out.println("<br />");
// horizontal line in the web page
out.println("<hr />");
}
// finish up whole web page
out.println("</center></body></html>");
}
// Generate a hidden input entry
private String gen_hidden(String name, String value)
{
return "<input type=\"hidden\" "
+ "name=\"" + name + "\" "
+ "value=\"" + value + "\">\n";
}
// Generate the options menu for each team member
// allowing them to change name, email or be deleted
// from the team
private String gen_options(String course,
int team_number,
int index_number)
{
return "<form action="
+ "\"/servlets/teams.mod\" method=\"get\">"
+ gen_hidden("course",course)
+ gen_hidden("team",Integer.toString(team_number).trim())
+ gen_hidden("index",Integer.toString(index_number).trim())
+ "<select name=\"change\">"
+ "<option value=\"z\">*</option>"
+ "<option value=\"n\">Change name</option>"
+ "<option value=\"e\">Change email</option>"
+ "<option value=\"d\">Delete me from this team</option>"
+ "</select>"
+ "<input type=\"submit\" value=\"Do it!\">"
+ "</form>";
}
// Standard header for all my web pages
private String web_header(String title)
{
return "<!DOCTYPE HTML PUBLIC \""
+ "-//W3C//DTD HTML 4.01 Transitional//EN\">"
+ "<html>"
+ "<head>"
+ "<title>"
+ title
+ "</title>" +
"<LINK rel=\"stylesheet\" TYPE=\"text/css\" " +
"HREF=\"/course/course.css\">" +
"<link rev=\"made\" href=\"mailto:jsmith@drexel.edu\">"
+ "</head><body>";
}
}