配置文件web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
"
xmlns="
http://java.sun.com/xml/ns/javaee
" xmlns:web="
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
"
id="WebApp_ID" version="2.5">
<display-name>Str</display-name>
<servlet>
<servlet-name>SelectCityServlet</servlet-name>
<servlet-class>servlet.SelectCityServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SelectCityServlet</servlet-name>
<url-pattern>/SelectCityServlet</url-pattern>
</servlet-mapping>
</web-app>
JSP文件:
<body>
<select name="state" onChange=getResult(this.value)>
<option value="">Select</option>
<option value="zj">ZEHJIANG</option>
<option value="zs">JIANGSU</option>
</select>
<select id="city">
<option value="">CITY</option>
</select>
</body>
<script type="text/javascript">
function getResult(stateVal) {
//alert("1~begin");
var url = "SelectCityServlet?state=" + stateVal;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req) {
req.open("GET",url,true);
req.onreadystatechange = complete;
req.send(null);
}
}
function complete() {
if (req.readyState == 4) {
if (req.status == 200) {
var city = req.responseXML.getElementsByTagName("city");
//alert(city.length);
var str = new Array();
for ( var i = 0; i < city.length; i++) {
str[i] = city[i].firstChild.data;
}
//alert(document.getElementById("city"));
buildSelect(str,document.getElementById("city"));
}
}
}
function buildSelect(str,sel) {
sel.options.length = 0;
for ( var i = 0; i < str.length; i++) {
sel.options[sel.options.length] = new Option(str[i],str[i])
}
}
</script>
servlet:
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
throwsservletexception,IOException{
resp.setContentType("text/xml");
resp.setHeader("Cache-Control","no-cache");
Stringstate=req.getParameter("state");
StringBuffersb=newStringBuffer("<state>");
if("zj".equals(state)){
sb.append("<city>hangzhou</city><city>huzhou</city>");
}elseif("zs".equals(state)){
sb.append("<city>nanjing</city><city>yangzhou</city><city>suzhou</city>");
}
sb.append("</state>");
PrintWriterout=resp.getWriter();
out.write(sb.toString());
out.close();
}
@Override
protectedvoiddoPost(HttpServletRequestreq,IOException{
this.doGet(req,resp);
}