function createXMLHttpRequest(para1)
  { 
    var url=para1;
    if(url=1)
    {     var busname=document.getElementsByName("busname").value;
          var URL="/BusSystem/BusServlet?Busname="+busname;
    }
    //Mozilla 浏览器(将XMLHttpRequest对象作为本地浏览器对象来创建)
    if(window.XMLHttpRequest)
    { //Mozilla 浏览器
        xmlHttp = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
     { //IE浏览器
       //IE浏览器(将XMLHttpRequest对象作为ActiveX对象来创建)
        try
        {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try 
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {}
        }
    }
    if(!xmlHttp)
    {
        alert("不能创建XMLHttpRequest对象");
        return false;
    }
    xmlHttp.open("GET",URL,true);
    xmlHttp.onreadystatechange=getResult;
    xmlHttp.send(null);
} function getResult()

  if(xmlHttp.readyState==4)
  {
   if(xmlHttp.status==200)
   {
     document.getElementById("result").innerHTML=xmlHttp.responseText;
   }
   else
   { 
     alert('您查询的内容为空');
   }
  }
 
}
 HTML代码:
 <div id="divOne" style="position:absolute;top:40px;left:0px;visibility:hidden">
     <form name="BusServlet"><table>
    <tr><td>车次名:</td><td><input type="text" name="busname"/></td></tr>
    <tr><td align="center"><input type="button" value="查询" onClick="createXMLHttpRequest(1)"/></td><td align="center"><input type="reset" value="更改"/></td></tr>
     </table></form>
     </div>
servlet中的代码如下:package com.qt.inquiry;
import com.ht.javabean.DB;
import java.io.*;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
public class BusServlet extends HttpServlet 
{ @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException 
{
    resp.setContentType("text/html;charset=utf-8");
resp.setHeader("Cache-Control", "no-cache");
resp.setHeader("Pragma","no-cache");  
resp.setDateHeader("Expires",0);   
String busname=req.getParameter("Busname"); 
    DB db=new DB();
  try 
   {
    String sql="select * from BusLine where BL_Num='"+busname+"'";
ResultSet rs=db.executeQuery(sql);
while(rs.next())
{
    String info_go=rs.getString("BL_S_Go");
String info_return=rs.getString("BL_S_Return");
StringBuffer buffer=new StringBuffer();
buffer.append("<p>");
buffer.append("上行路线:");
buffer.append("</p>");
buffer.append("<p>");
              buffer.append(info_go);
   buffer.append("</p>");
buffer.append("下行路线:");
buffer.append("<p>");
buffer.append(info_return);
buffer.append("</p>");
PrintWriter out = resp.getWriter();
out.write(buffer.toString());
//out.write(busname);
    out.flush();
        out.close();
}

          }
 catch (SQLException e) 
  {
e.printStackTrace();
System.out.println("您查询的结果不存在");
  }
}}
 servlet代码中String busname=req.getParameter("Busname"); busname并没有得到值,说明没传过来。麻烦各位高手怎么在JS那段代码中写参数传递才能传过来啊,谢谢啊,这个耽误我几天!(PS:这是在Myeclipse写的,在JS中document.getElementsByName("busname")后面的.value根本找不到,是我自己打的,但是网上很多人都这么写,不知道为什么Myeclipse没有这个方法,求解!)

解决方案 »

  1.   

    你的js写错了代码片段截取
    var url=para1;
    if(url=1)
    { var busname=document.getElementsByName("busname").value;
      var URL="/BusSystem/BusServlet?Busname="+busname;
    }
    ......................
    xmlHttp.open("GET",URL,true);
    看到了么?  你的URL变量定义在了if(url=1)里面 这个变量作用域只是在这个if里面, 所以你下面的URL应该是空的 你把变量申明放出去 不要放在if里面另外注意 url 和URL是不同两个变量
      

  2.   

    xmlHttp.send(null);
    ==>
    xmlHttp.send("Busname="+busname);
      

  3.   

    我把URL定义在了外面了,busname还是没传过去   我感觉是没有取到busname的值的问题