Създавам пълен пример за решаване на вашия проблем. Не сте посочили ясно къде получавате грешка и е малко трудно да разберете кода си.
Просто се опитайте да изпълните тази програма, уверявам ви, че със сигурност ще реши проблема ви и ще ви даде по-добро разбиране на JSP, Servlet и DBCode също.
Когато стартирате тази програма.
Две падащи менюта в страницата JSP.
1 - за показване на всички състояния (извличане на динамична стойност по подразбиране от база данни)
2 - за показване на градове, когато изберете който и да е щат.
Когато изберете който и да е щат, градът ще се покаже в комбинирания списък на града и след опресняване на страницата позицията на избрания щат също ще бъде стабилна в комбинирания списък на щат.
Както и когато изберете състояние, показвах записи от различна таблица в табличен формат или мога да кажа с помощта на тагове table,tr,td.
Три таблици в базата данни - държави, град, данни
Щати - за показване на всички състояния по подразбиране в комбинация от състояния, когато стартирате example.City - когато изберете състояние, градът ще се появи въз основа на избраното състояние.data - когато изберете състояние, данните ще се покажат в таблична форма (Току-що извлечени всички данни вместо базирани от всичко).
Файлове - JSP (код от страна на клиента, сървър), Servlet (код от страна на сървъра), DBCoding (код на база данни)
IDE - MyEclipseDatabase - MS SQL 2012
JSP кодиране
<%@ page language="java" import="java.util.*,DBCode.*" pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.ResultSet"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">
function abc()
{
document.forms["formname"].submit();
}
</script>
</head>
<%
DBCoding db = new DBCoding();
ArrayList al = new ArrayList();
al = db.RetrieveStateName();
String value1="";
%>
<body>
<form action="Servlet1" method="post" name="formname" id="formname">
<select id="selectvalue" name="selectvalue" onchange="abc()";>
<%if(request.getParameter("abc")!=null)
{
String result = request.getParameter("abc");
%>
<%for(int i=0;i<al.size();i++)
{
if(al.get(i).equals(result))
{%>
<option value= "<%=al.get(i) %>" selected="selected"><%=al.get(i) %></option>
<%}
else
{%>
<option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
<%} %>
<%}%>
<%}
else
{ %>
<%for(int i=0;i<al.size();i++)
{
%>
<option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
<%} %>
<%} %>
</select>
<%ArrayList ob = new ArrayList(); %>
<%if(request.getAttribute("City_Name")!=null)
{
ob = (ArrayList)request.getAttribute("City_Name");
%>
<select id="selectcity" name="selectcity">
<%for(int j=0;j<ob.size();j++)
{
%>
<option><%=ob.get(j)%></option>
<%} %>
</select><br/><br/>
<table>
<tr>
<td>Id</td>
<td>Name</td>
<td>Age</td>
<td>City</td>
<%
DBCoding db2 = new DBCoding();
ArrayList al2 = new ArrayList();
ResultSet rs = db2.getTable();
while(rs.next()){
%>
<tr>
<td><%=rs.getString(1) %></td>
<td><%=rs.getString(2) %></td>
<td><%=rs.getString(3) %></td>
<td><%=rs.getString(4) %></td>
</tr>
<%
} %>
<%}
else
{
%>
<select>
<option></option>
</select>
<%} %>
</form>
</body>
</html>
Кодиране на сървлети
import java.io.IOException;
import java.util.*;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import DBCode.DBCoding;
public class Servlet1 extends HttpServlet {
/**
* Constructor of the object.
*/
public Servlet1() {
super();
}
public void destroy() {
super.destroy();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String getstatename = request.getParameter("selectvalue");
DBCoding ob = new DBCoding();
ArrayList al = new ArrayList();
al = ob.RetrieveCityName(getstatename);
request.setAttribute("City_Name", al);
RequestDispatcher rd = request.getRequestDispatcher("MyJsp.jsp?abc="+getstatename);
rd.forward(request, response);
}
public void init() throws ServletException {
// Put your code here
}
}
DBCoding - Код на база данни
import java.sql.*;
import java.util.*;
public class DBCoding
{
Connection con;
PreparedStatement ps;
ResultSet rs;
int result=0;
public DBCoding()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:SearchAccount");
}
catch(Exception ee)
{}
}
public ArrayList RetrieveStateName()
{
ArrayList ob = new ArrayList();
try
{
ps = con.prepareStatement("select distinct states from States");
rs = ps.executeQuery();
while(rs.next())
{
ob.add(rs.getString(1));
}
}
catch(Exception ee)
{}
return ob;
}
public ArrayList RetrieveCityName(String statename)
{
ArrayList ob = new ArrayList();
try
{
ps = con.prepareStatement("select city from city where statename=?");
ps.setString(1,statename);
rs = ps.executeQuery();
while(rs.next())
{
ob.add(rs.getString(1));
}
}
catch(Exception ee)
{}
return ob;
}
public ResultSet getTable()
{
ResultSet rs = null;
try
{
ps = con.prepareStatement("select * from data");
rs = ps.executeQuery();
}
catch(Exception ee)
{}
return rs;
}
}
След като изпълните този пример, ако получите някакво запитване, просто ми пуснете съобщение и аз със сигурност ще го оправя.