<%@ page language="java" import="java.util.*,java.sql.*,com.FamilyEducation.db.*" pageEncoding="gb2312"%>
<%
response.setContentType("text/xml");
response.setHeader("Cache-Control","no-store");
response.setHeader("pragma","no-cache");
response.setDateHeader("Expirse",0);            String name = request.getParameter("username");
            out.print(name);
DBConn dbcn = new DBConn();
Connection conn = dbcn.getConn();
            
String sql = "select * from teacherreg where id = '"+name+"' ";
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);

if(rs.next()==true)
response.getWriter().write("用户名已存在");
else
response.getWriter().write("可用");
   
%>
这个是我的check.jsp页面的代码,作用是进行验证,我知道String name = request.getParameter("username");
这句有问题。是不是,没有进行刷新跳转,就不能用这个语句。
解释:username是文本框的name,
出现问题:
通过数据库一直查查询不到数据,通过alert,发现out.print(name);返回去的值是null,所以sql语句不起作用。
小弟想在check.jsp该页面取到前一页面user_reg.jsp的文本框name="username"的值.
希望各位大哥帮帮小弟!!

解决方案 »

  1.   

    没有跳转就必须把参数get传过去
      

  2.   

    额,,,怎么把java代码写到页面写到后台ajax提交你的请求,判断,返回你的判断结果
      

  3.   

    也没看到你哪来用到ajax啊,应该把java代码写到后台,不要在页面上写java脚本。哦,我有点懂了,你的问题可能出在这里你是不是从另一个面调用ajax,在这个页面查询数据,然后将这个页面的数据返回到另一个页面?另一个页面调用这个页面,就是有个url参数嘛,后面加上?username="xiaoqiang"xiaoqiang就是你文本框里的值
      

  4.   

    前台页面通过javascript的XMLHttpRequest对象向服务器发送一个get或是post请求,在请求中设置相应的参数,具体可在百度或谷歌中用javascript+XMLHttpRequest进行搜索,或采用jquery等javascript框架get或是post到你的jsp处理页面。将这个问题解决,你就提高很多了。
      

  5.   

    先解释下,你前面那个页面是怎么用Ajax调用这个验证页面的?
      

  6.   


    var req;
    function  check_name(){
    var str=document.getElementById("userid");
      var url="check.jsp?id="+num;
      
      if (window.XMLHttpRequest) {
                   req = new XMLHttpRequest();
                 }
      else  if (window.ActiveXObject) {
                  req= new ActiveXObject("Microsoft.XMLHTTP");
                  } 
                 req.open("GET",url,true);
                 req.onreadystatechange=callback;
                 req.send(null);
      }
      
       function callback(){
           if(req.readyState==4)
             if(req.status==200)
            {
                alert(req.responseText);
                document.getElementById('ckname').innerHTML="<font color='green'>"+req.responseText+"</font>";
                
               
            }
            }
      

  7.   

    恩,是的var req;
    function  check_name(){
    var str=document.getElementById("userid");
      var url="check.jsp?id="+num;
      
      if (window.XMLHttpRequest) {
                   req = new XMLHttpRequest();
                 }
      else  if (window.ActiveXObject) {
                  req= new ActiveXObject("Microsoft.XMLHTTP");
                  } 
                 req.open("GET",url,true);
                 req.onreadystatechange=callback;
                 req.send(null);
      }
      
       function callback(){
           if(req.readyState==4)
             if(req.status==200)
            {
                alert(req.responseText);
                document.getElementById('ckname').innerHTML="<font color='green'>"+req.responseText+"</font>";
                
               
            }
            }
      

  8.   

    这两句话应该错了:
    var str=document.getElementById("userid");
    var url="check.jsp?id="+name;
    根本没看见你在JS中定义name,不要把JS的变量跟JSP的变量搞混,修改为:
    var str=document.getElementById("userid").value;
    var url="check.jsp?id="+str;
    alert(url); // 自己先检查下这个URL是否如你所料。
      

  9.   

    恩,是的,现在alert后,提示的是check?id=xxxx。xxxx为我的文本框所输入的内容。
      

  10.   

    现在我需要的是如何在check.jsp页面中获取id=xxxx的这个值,要用什么语句?
      

  11.   

    由于你的URL是:
    check?id=xxxx所以跟你的参数名保持一致:
    String name = request.getParameter("id");
      

  12.   


    String name = request.getParameter("id");获取之后,需要判空,不然容易报null。<%@ page language="java" import="java.util.*,java.sql.*,com.FamilyEducation.db.*" pageEncoding="gb2312"%>
    <%
    response.setContentType("text/xml");
    response.setHeader("Cache-Control","no-store");
    response.setHeader("pragma","no-cache");
    response.setDateHeader("Expirse",0);String name = request.getParameter("username");DBConn dbcn = new DBConn();
    Connection conn = dbcn.getConn();
        
    String sql = "select * from teacherreg where id = '"+ name +"' ";
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery(sql);if(rs.next())
    response.getWriter().write("用户名已存在");
    else
    response.getWriter().write("可用");
      
    %>