万分感谢,热心人士,回复我发表于发表于:2011-11-20 20:30:41的一贴,由于我的失误,导致大家没搞清我的问题。现将其补充完整:
   index.jsp的内容:
  <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
  <head>      
    <script src="js/login.js" type="text/javascript"></script>
  </head>
  
  <body onload="init()">
     <div id = "logindiv" >
    <form name = "loginForm" method="post" action="">
     用户名:<input type="text" name="user" > &nbsp; <input type="button" value="登录" onclick="login()"><br> 
    密    码: <input type="password" name="password">   </form></div>
  </body>
</html>
    
    login.js的内容:
   var xmlHttp = false;
  
    function init(){
         if(window.XMLHttpRequest){
            xmlHttp = new XMLHttpRequest();
     }else if(window.ActiveXObject){
     try{
             xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
     }catch(e){
        try{
              xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(e){
                 window.alert("该浏览器不支持Ajax");
        }
      }
    }
  }
  
  function login(){
  var name=document.loginForm.user.value;
  var word = document.loginForm.password.value;
  var url = "com.music.servlet/LoginServlet?name =" + name +
            "&word =" + word;
       if(name == ""){
      alert("用户名不能为空");
      document.loginForm.user.focus();
      return;}else if(word == ""){
       alert("请输入密码");   
       document.loginForm.password.focus();
       return;}        
         xmlHttp.open("post",url,true);
         xmlHttp.onreadystatechange = function(){
     if(xmlHttp.readyState == 4){
           logindiv.innerHTML = xmlHttp.responseText;
     }};   
         xmlHttp.send();
        return;       
        }       LoginServlet的内容:
          package com.music.servlet;        import .................. public class LoginServlet extends HttpServlet {

private int num ;

public LoginServlet() {
super();
num = 0;
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
   String name = request.getParameter("name");
        String password = request.getParameter("word");
        String  loginState = "Fail";
        String targetUrl = "/jsp/loginFail.jsp";
        //验证用户
       //  连接数据库等操作,还没有编写先进行部分测试
                 System.out.println("name =" +name);
        System.out.println("password =" + password);
             这里是问题所在:获取不到表单中的内容
               
  //登录失败
        request.setAttribute("loginSate",loginState);
        ServletContext application = this.getServletContext();
        RequestDispatcher rd = application.getRequestDispatcher( targetUrl);
        rd.forward(request, response);
        }
}
    

解决方案 »

  1.   

    xmlHttp.send();
    换成xmlHttp.send(参数);
    ajax不会给你自动吧form数据携带过去。
      

  2.   

    var url = "com.music.servlet/LoginServlet?name =" + name +
      "&word =" + word;
     不好意思 看漏掉了。
      

  3.   

    就是怎样?帮忙顶一下,新手要不我给代码你 。帮我调试调试。please
      

  4.   

    input 加上ID DOM会根据id取  不会根据你的那么取值
      

  5.   

    那就是 给input加id属性 然后通过id的名称来取????????
      

  6.   

    用firebug调试下吧,看看是不是你传的参数是不是传过去了,先把错误定位下
      

  7.   


    var url = "com.music.servlet/LoginServlet?name =" + name +
      "&word =" + word;前台js 调试一下看看这个url是不是正确的获取了name和word的值一步步找问题。。1. 先保证前台取参数没错。。
    2. 然后保证发送请求没错。。
    3. 然后再确定请求是否到了servlet的post中。。
      

  8.   


    var url = "com.music.servlet/LoginServlet?name =" + name
    "&amp;word =" + word;
    换成"com.music.servlet/LoginServlet?name=" + name +"&word=" + word;
      

  9.   

    在你那个public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {方法中设置一个断点调试一下,,看看请求有没有进入