6.2.3 服务器端代码说明
SelectServlet类的实例接收到请求后,首先设置相应的字符编码和头部信息。然后定义String变量targetId来获得参数名为id的参数值,也就是第一个下拉框选项的value值。对targetId进行判断,对应于targetId可能等于的0、1、2、3这4个值分别进行不同的处理,然后将字符串xml重新加上根标记<selects>,最后将字符串xml返回。代码如代码6.6所示。
代码6.6 SelectServlet类的定义
package cn.edu.bit.servlet;
import javax.servlet.ServletConfig;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SelectServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");//设置字符编码和头部信息
response.setHeader("Cache-Control", "no-cache");
String targetId = request.getParameter("id").toString();
//获得请求中参数为id的值
String xml_start = "<selects>";
String xml_end = "</selects>";
String xml = "";
if(targetId.equalsIgnoreCase("0"))
//根据参数值来进行判断,如果是0则返回下面的字符串
{
xml = "<select><value>0</value><text>Unbounded</text></select>"; //下拉框中没有内容
}
else if(targetId.equalsIgnoreCase("1"))//如果是1,则返回下面的字符串
{
xml = "<select><value>1</value><text>Mana Burn</text></select>";
xml += "<select><value>2</value><text>Death Coil</text></select>";
xml += "<select><value>3</value><text>Unholy Aura</text></select>";
xml += "<select><value>4</value><text>Unholy Fire</text></select>";
}
else if(targetId.equalsIgnoreCase("2"))//如果是2,则返回下面的字符串
{
xml = "<select><value>1</value><text>Corpexplode</text></select>";
xml += "<select><value>2</value><text>Raise Dead</text></select>";
xml += "<select><value>3</value><text>Brilliance Aura</text></select>";
xml += "<select><value>4</value><text>Aim Aura</text></select>";
}
else //如果是3,则返回下面的字符串
{
xml = "<select><value>1</value><text>Rain of Chaos</text></select>";
xml += "<select><value>2</value><text>Finger of Death</text></select>";
xml += "<select><value>3</value><text>Bash</text></select>";
xml += "<select><value>4</value><text>Summon Doom</text></select>";
}
String last_xml = xml_start + xml + xml_end;
//设置要返回的字符串
response.getWriter().write(last_xml); //返回对应的字符串
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
doGet(request,response); //对于post的请求方式和get请求方式一样处理
}
}
程序运行结果如图6-6和图6-7所示。
![]() |
| 图6-6 使用Ajax实现级联下拉框(1) |
![]() |
| 图6-7 使用Ajax实现级联下拉框(2) |
| 回书目 上一节 下一节 |