Ajax无刷新验证,求救,各位大哥帮帮忙,小弟新手!!

rfderxttl 2012-05-11 05:51:10
<%@ 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"的值.
希望各位大哥帮帮小弟!!
...全文
151 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
rfderxttl 2012-05-13
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]
引用 17 楼 的回复:

由于你的URL是:
check?id=xxxx

所以跟你的参数名保持一致:
String name = request.getParameter("id");



String name = request.getParameter("id");获取之后,需要判空,不然容易报null。


HTML code



<%@ page……
[/Quote]

谢谢提醒!!
昨日凡阳 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

由于你的URL是:
check?id=xxxx

所以跟你的参数名保持一致:
String name = request.getParameter("id");

[/Quote]

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("可用");

%>
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
由于你的URL是:
check?id=xxxx

所以跟你的参数名保持一致:
String name = request.getParameter("id");
[/Quote]
非常感谢,已经解决!!
MiceRice 2012-05-11
  • 打赏
  • 举报
回复
由于你的URL是:
check?id=xxxx

所以跟你的参数名保持一致:
String name = request.getParameter("id");
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
这两句话应该错了:
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?……
[/Quote]
现在我需要的是如何在check.jsp页面中获取id=xxxx的这个值,要用什么语句?
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
这两句话应该错了:
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?……
[/Quote]
恩,是的,现在alert后,提示的是check?id=xxxx。xxxx为我的文本框所输入的内容。
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
这两句话应该错了:
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?……
[/Quote]
alert后,提示check?id=
MiceRice 2012-05-11
  • 打赏
  • 举报
回复
这两句话应该错了:
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是否如你所料。


rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
引用 9 楼 的回复:
先解释下,你前面那个页面是怎么用Ajax调用这个验证页面的?


var req;
function check_name(){
var str=document.getElementById("userid");
var url="check.jsp?id="+name;

if (window.XMLHttpRequest) {
req = ne……
[/Quote]
上面的num写错了.
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
也没看到你哪来用到ajax啊,应该把java代码写到后台,不要在页面上写java脚本。

哦,我有点懂了,你的问题可能出在这里

你是不是从另一个面调用ajax,在这个页面查询数据,然后将这个页面的数据返回到另一个页面?

另一个页面调用这个页面,就是有个url参数嘛,后面加上?username="xiaoqiang"

xiaoqiang就是你文本框里的值
[/Quote]
恩,是的

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>";


}
}
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
先解释下,你前面那个页面是怎么用Ajax调用这个验证页面的?
[/Quote]

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>";


}
}
MiceRice 2012-05-11
  • 打赏
  • 举报
回复
先解释下,你前面那个页面是怎么用Ajax调用这个验证页面的?
new_bird_0001 2012-05-11
  • 打赏
  • 举报
回复
前台页面通过javascript的XMLHttpRequest对象向服务器发送一个get或是post请求,在请求中设置相应的参数,具体可在百度或谷歌中用javascript+XMLHttpRequest进行搜索,或采用jquery等javascript框架get或是post到你的jsp处理页面。将这个问题解决,你就提高很多了。
tom_66 2012-05-11
  • 打赏
  • 举报
回复
也没看到你哪来用到ajax啊,应该把java代码写到后台,不要在页面上写java脚本。

哦,我有点懂了,你的问题可能出在这里

你是不是从另一个面调用ajax,在这个页面查询数据,然后将这个页面的数据返回到另一个页面?

另一个页面调用这个页面,就是有个url参数嘛,后面加上?username="xiaoqiang"

xiaoqiang就是你文本框里的值
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 2 楼 的回复:
没有跳转就必须把参数get传过去

怎么传?
[/Quote]
那么应该把数据库查询语句写在哪,对其进行验证?
我是刚刚接触,做毕业设计!!
还请大哥多指教!
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
额,,,怎么把java代码写到页面。。。写到后台。。。ajax提交你的请求,判断,返回你的判断结果。。。
[/Quote]
我对这个原理不大清楚....
rfderxttl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
没有跳转就必须把参数get传过去
[/Quote]
怎么传?
a-shitou 2012-05-11
  • 打赏
  • 举报
回复
额,,,怎么把java代码写到页面。。。写到后台。。。ajax提交你的请求,判断,返回你的判断结果。。。
devin_jia 2012-05-11
  • 打赏
  • 举报
回复
没有跳转就必须把参数get传过去

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧