这是我的第一个HTML + Servlet 的例子:
1. F:\Tomcat 5.0\webapps\ROOT\hfservlet hfservlet.html
<html> <head><title>JdcSurvey</title></head> <body> <form action="/HFServlet" method=POST> <input type=hidden name=survey value=Survey01Results>
<BR><BR>How Many Employees in your Company?<BR> <BR>1-100<input type=radio name=employee value=1-100> <BR>100-200<input type=radio name=employee value=100-200> <BR>200-300<input type=radio name=employee value=200-300> <BR>300-400<input type=radio name=employee value=300-400> <BR>500-more<input type=radio name=employee value=500-more>
<BR><BR>General Comments?<BR> <BR><input type=text name=comment>
<BR><BR>What IDEs do you use?<BR> <BR>JavaWorkShop<input type=checkbox name=ide value=JavaWorkShop> <BR>J++<input type=checkbox name=ide value=J++> <BR>Cafe'<input type=checkbox name=ide value=Cafe'>
<BR><BR><input type=submit><input type=reset> </form> </body> </html>
2. F:\Tomcat 5.0\webapps\ROOT\WEB-INF\classes\hfservlet HFServlet.java
import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*;
public class HFServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // 首先设置响应的 "content type" 头部 res.setContentType("text/html");
//得到响应的 PrintWriter以返回文本给客户端. PrintWriter toClient = res.getWriter();
String resultsDir = "F:Tomcat 5.0/webapps/ROOT/hfservlet";
try { //打开一个文件写入Survey的结果. //String surveyName = req.getParameterValues("survey")[0]; //FileWriter resultsFile = new FileWriter(resultsDir + System.getProperty("file.separator") //+ surveyName + ".txt", true);
//File myFile = new File(resultsDir + System.getProperty("file.separator") //+ "survey.txt");
//if( !(myFile.exists()) ){ // 从客户端得到表单数据 & 存贮在这个文件中 FileWriter resultsFile = new FileWriter(resultsDir + System.getProperty("file.separator") + "survey.txt", true); PrintWriter toFile = new PrintWriter(resultsFile); toFile.println(""); Enumeration values = req.getParameterNames(); while(values.hasMoreElements()) { String name = (String)values.nextElement(); String value = req.getParameterValues(name)[0]; if(name.compareTo("submit") != 0) { toFile.println(name + ": " + value);
} //if(name.compareTo("submit") != 0) } //while(values.hasMoreElements()) toFile.println(""); resultsFile.close(); //} //if
/* else{ RandomAccessFile RASaveFile = new RandomAccessFile(resultsDir +
System.getProperty("file.separator") + "survey.txt", "rw"); RASaveFile.writeBytes("\n"); Enumeration values = req.getParameterNames(); while(values.hasMoreElements()) { String name = (String)values.nextElement(); String value = req.getParameterValues(name)[0]; if(name.compareTo("submit") != 0) { RASaveFile.writeBytes(name + ": " + value); } } RASaveFile.writeBytes("\n"); RASaveFile.close(); } */
//关闭文件. //resultsFile.close(); //RASaveFile.close();
// 用一个thank you返回客户端 toClient.println(""); toClient.println(""); toClient.println("Thank you for participating"); toClient.println("");
} catch(FileNotFoundException ex){ ex.printStackTrace(); toClient.println( "File Not Found, Please try again."); } catch(IOException e) { e.printStackTrace(); toClient.println( "A problem occured while recording your answers. " + "Please try again."); }
// 关闭writer; 响应完成. toClient.close(); }
}
3. F:\Tomcat 5.0\webapps\ROOT\hfservlet survey.txt(运行后自动生成)
employee: 100-200 ide: Cafe' survey: Survey01Results comment: 211
employee: 100-200 ide: Cafe' survey: Survey01Results comment: 211
employee: 500-more ide: JavaWorkShop survey: Survey01Results comment: 51

|