帮忙看下这段servlet是什么意思啊?
import 
java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import 
java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletContext;
import 
javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetDBInfoServlet extends HttpServlet {
	private String url;
	private String user;
	private String password;	
	public void init()throws 
ServletException{
		ServletContext sc=getServletContext();
		String driverClass=sc.getInitParameter("driverClass");
		url=sc.getInitParameter("url");
		user=sc.getInitParameter("user");
		password=sc.getInitParameter("password");		
		try {			
Class.forName(driverClass);		} catch (
ClassNotFoundException e) {
			// TODO 自动生成 catch 块
			throw new ServletException("数据库加载失败!");
		}
	}	
	public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,
IOException{
	    Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		try {
			conn=DriverManager.getConnection(url,user,password);
			resp.setContentType("text/html;charset=gb2312");
			PrintWriter out=resp.getWriter();
			out.println("<html><head>");
			out.println("<title>数据库表的信息</title>");
			out.println("</head><body>");
			String tableName=req.getParameter("tableName");//这句第一次运行应该是返回null,应该执行if里的语句		stmt=conn.createStatement();
			stmt.executeUpdate("use bookstore");
			if(tableName==null||tableName.equals("")){
				DatabaseMetaData dbMeta=conn.getMetaData();
				rs=dbMeta.getTables(null, null, null, new String[]{"TABLE"});
				out.println("<form action=\"getdbinfo\" method=\"get\">");
				out.println("<select size=1 name=tableName");//size=1是什么意思?
				while(rs.next()){
					out.println("<option value="+rs.getString("TABLE_NAME"));
					out.println(rs.getString("TABLE_NAME"));//这句是什么意思?不明白
					out.println("</option>");
				}
				out.println("</select><p>");
				out.println("<input type=\"submit\" value=\"提交\">");
				out.println("</form>");				
				out.println("</body></html>");
				out.close();
			}
		} catch (
SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}finally{
			if(rs!=null){
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO 自动生成 catch 块
					e.printStackTrace();
				}
			   rs=null;			
			}
			if(stmt!=null){
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO 自动生成 catch 块
					e.printStackTrace();
				}
				stmt=null;
			}
			if(conn!=null){
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO 自动生成 catch 块
					e.printStackTrace();
				}
				conn=null;
			}
	}
   }
}
按道理程序应该从数据库中读出所有表格填入select中,但是我提交后什么反应都没有,而且下拉框是空的,
------解决方案--------------------
Java code
conn=DriverManager.getConnection(url,user,password); 
resp.setContentType("text/html;charset=gb2312"); 
PrintWriter out=resp.getWriter(); 
out.println(" <html> <head>"); 
out.println(" <title>数据库表的信息 </title>"); 
out.println(" </head> <body>"); 
String tableName=req.getParameter("tableName");// 
stmt.executeUpdate("use bookstore");     //我想. 用的应该是MySql数据库吧.. 这里是表示使用名字为bookstore的数据库
if(tableName==null||tableName.equals("")){ 
DatabaseMetaData dbMeta=conn.getMetaData(); // 这是得到了数据源对象..MetaData包含了这个表的基本信息,比如说,表名,列的名字,列的个数..
rs=dbMeta.getTables(null, null, null, new String[]{"TABLE"}); 
out.println(" <form action=\"getdbinfo\" method=\"get\">"); 
out.println(" <select size=1 name=tableName");//  size=1 是说明.. Select 就只有1行.. 这样也说不明白.. 把这个size设成大写的数字,比如5,就明白是什么意思了..
while(rs.next()){ 
out.println(" <option value="+rs.getString("TABLE_NAME")); 
out.println(rs.getString("TABLE_NAME"));//结果集里面有个列,列名是TABLE_NAME,通过这个可以得到改列的值
out.println(" </option>");