javascript调用servlet
我想用jsp+servlet+javabean做个登陆注册在注册中有验证用户名是否存在的BUTTON按钮用javascript应该怎么写这个function啊代码如下:/...
我想用jsp+servlet+javabean做个登陆注册 在注册中有验证用户名是否存在的BUTTON按钮 用javascript应该怎么写这个function啊 代码如下:
//register.jsp
<form name="form1" action="SaveServlet" method="post" onsubmit="return check()">
<table>
<tr>
<td>用户名:</td><td><input type="text" name="username" >
<input type=button name=bn1 value="检测用户名是否存在" onclick="UserExist()">
</td></tr>
<tr><td colspan="2"><input type=submit name=subm value="确定"></td></tr>
</table>
</form>
//CheckUserNameServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到参数
request.setCharacterEncoding("GBK");
String uname=request.getParameter("username");
response.setContentType("text/html;charset=GBK");
PrintWriter out=response.getWriter();
UserOper uo=new UserOper();
if(uo.checkUserName(uname)){ //存在该用户名
System.out.println("<h2><font color=red>用户名"+uname+"已存在</font></h2>");
out.println("<h2><font color=red>用户名"+uname+"已存在</font></h2>");
}
else{
out.println("<h2><font color=blue>用户名"+uname+"可以使用</font></h2>");
}
out.println("<a href='javascript:window.close()'>关闭窗口</a>");
}
//UserOper.java
public boolean checkUserName(String userName){ //检查用户名是否存在
String sql="select * from users where username=?";
try{
conn=new DBConnection().getConnection();
pst=conn.prepareStatement(sql);
pst.setString(1, userName);
rs=pst.executeQuery();
if(rs.next()){
System.out.println(userName);
flag=true;}
else{
flag=false;}
问题是如何写这个JavaScript的function啊 才能调用CheckUserNameServlet.java中的方法 请大侠们帮帮忙 急!!!!
不要跟我说ajax什么的 刚开始学习 不明白太多 就根据我的问题答 分没多少 全给了 展开
//register.jsp
<form name="form1" action="SaveServlet" method="post" onsubmit="return check()">
<table>
<tr>
<td>用户名:</td><td><input type="text" name="username" >
<input type=button name=bn1 value="检测用户名是否存在" onclick="UserExist()">
</td></tr>
<tr><td colspan="2"><input type=submit name=subm value="确定"></td></tr>
</table>
</form>
//CheckUserNameServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到参数
request.setCharacterEncoding("GBK");
String uname=request.getParameter("username");
response.setContentType("text/html;charset=GBK");
PrintWriter out=response.getWriter();
UserOper uo=new UserOper();
if(uo.checkUserName(uname)){ //存在该用户名
System.out.println("<h2><font color=red>用户名"+uname+"已存在</font></h2>");
out.println("<h2><font color=red>用户名"+uname+"已存在</font></h2>");
}
else{
out.println("<h2><font color=blue>用户名"+uname+"可以使用</font></h2>");
}
out.println("<a href='javascript:window.close()'>关闭窗口</a>");
}
//UserOper.java
public boolean checkUserName(String userName){ //检查用户名是否存在
String sql="select * from users where username=?";
try{
conn=new DBConnection().getConnection();
pst=conn.prepareStatement(sql);
pst.setString(1, userName);
rs=pst.executeQuery();
if(rs.next()){
System.out.println(userName);
flag=true;}
else{
flag=false;}
问题是如何写这个JavaScript的function啊 才能调用CheckUserNameServlet.java中的方法 请大侠们帮帮忙 急!!!!
不要跟我说ajax什么的 刚开始学习 不明白太多 就根据我的问题答 分没多少 全给了 展开
4个回答
展开全部
以下程序已经测试通过!
register.jsp:
注意:1、contextName就是你的项目名称。2、form中method设置为get.
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<script>
function UserExist(){
var name= document.form1.username.value;
document.form1.action="/contextName/userName.check?username="+name;
document.form1.submit();
}
</script>
</head>
<body>
<form name="form1" action="SaveServlet" method="get" onsubmit="return check()">
<table>
<tr>
<td>用户名:</td><td><input type="text" name="username" >
<input type="button" name="bn1" value="检测用户名是否存在" onclick="UserExist();">
</td></tr>
<tr><td colspan="2"><input type="submit" name="subm" value="确定"></td></tr>
</table>
</form>
</body>
</html>
web.xml添加下面定义
<servlet>
<servlet-name>CheckUserNameServlet</servlet-name>
<servlet-class>com.company.project.servlet.CheckUserNameServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckUserNameServlet</servlet-name>
<url-pattern>*.check</url-pattern>
</servlet-mapping>
CheckUserNameServlet中doGet()方法最后一句话可以修改成这样:
out.println("<a href='javascript:history.go(-1);'>返回</a>");
register.jsp:
注意:1、contextName就是你的项目名称。2、form中method设置为get.
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<script>
function UserExist(){
var name= document.form1.username.value;
document.form1.action="/contextName/userName.check?username="+name;
document.form1.submit();
}
</script>
</head>
<body>
<form name="form1" action="SaveServlet" method="get" onsubmit="return check()">
<table>
<tr>
<td>用户名:</td><td><input type="text" name="username" >
<input type="button" name="bn1" value="检测用户名是否存在" onclick="UserExist();">
</td></tr>
<tr><td colspan="2"><input type="submit" name="subm" value="确定"></td></tr>
</table>
</form>
</body>
</html>
web.xml添加下面定义
<servlet>
<servlet-name>CheckUserNameServlet</servlet-name>
<servlet-class>com.company.project.servlet.CheckUserNameServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckUserNameServlet</servlet-name>
<url-pattern>*.check</url-pattern>
</servlet-mapping>
CheckUserNameServlet中doGet()方法最后一句话可以修改成这样:
out.println("<a href='javascript:history.go(-1);'>返回</a>");
展开全部
如果你真不会ajax。那只能这样子了。当然这个用ajax是最好,你不会就算了。我们也做局部刷新.在检测那里放出一个很小的iframe来。并且你用css控制,让他看不出是一个iframe
<iframe src="checknamue.jsp"></iframe>
把你的这个检测用户名是否存在的按钮放checknamue.jsp代码.
<form name="form" action="/servelet/checkname" method="post">
<input type=button name=bn1 value="检测用户名是否存在" onclick=UserExist()>
</form>
<script type="text/javasrcipt">
function UserExist(){
var username = parent.document.getElementsByName("username")[0].value;
docuemnt.form.action="/servelet/checkname?username="+username;
document.form.submit();
}
</script>
之后通过servlet回来的值做下逻辑处理。。。
<iframe src="checknamue.jsp"></iframe>
把你的这个检测用户名是否存在的按钮放checknamue.jsp代码.
<form name="form" action="/servelet/checkname" method="post">
<input type=button name=bn1 value="检测用户名是否存在" onclick=UserExist()>
</form>
<script type="text/javasrcipt">
function UserExist(){
var username = parent.document.getElementsByName("username")[0].value;
docuemnt.form.action="/servelet/checkname?username="+username;
document.form.submit();
}
</script>
之后通过servlet回来的值做下逻辑处理。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实Ajax一点也不难,一小时学会的东东。不过既然你不想用,咱们还有别的办法。知道HTML的<iframe>吗,就用它
验证用户名是否存在的表单要设置一个target属性,指向一个iframe,也就是说,把验证后返回的内容放到iframe中,假定这个iframe的name属性为uu。假定返回页面名称为aa.jsp,你的UserExist()函数可以这样写:
document.getElementsByName(0).target="uu";
document.getElementsByName(0).submit();
另外还要修改你的servlet,使之重定向或者转向到aa.jsp,并且加上参数,以表示是否存在。
reponse.sendRidrect("aa.jsp?exist="+checkUserName(uname));
剩下的就再aa.jsp中完成了。
我只写关键代码。
<script language="javascript">
var msg;
<%
String exist =(String) request.getParameter("exist");
if(exist.equals("true")){
%>msg="用户名已存在!";
<%}else{%>
msg="你可以用这个用户名!";
<%}%>
alert(msg);
</script>
这样的aa.jsp能够完成你的要求,但是建议不使用alert,而是在注册页面加一个用来显示用户名是否存在的div,假定这个div的id是div1,就可以把alert换成:
parent.div1.innerHTML=msg;
另外再给个小建议:不必让用户去点击按钮来验证用户名是否存在,而是最好自动完成,在填写用户名的文本框加上onblur="UserExist()"。这样,在用户离开用户名输入框后就会验证用户名是否存在。
验证用户名是否存在的表单要设置一个target属性,指向一个iframe,也就是说,把验证后返回的内容放到iframe中,假定这个iframe的name属性为uu。假定返回页面名称为aa.jsp,你的UserExist()函数可以这样写:
document.getElementsByName(0).target="uu";
document.getElementsByName(0).submit();
另外还要修改你的servlet,使之重定向或者转向到aa.jsp,并且加上参数,以表示是否存在。
reponse.sendRidrect("aa.jsp?exist="+checkUserName(uname));
剩下的就再aa.jsp中完成了。
我只写关键代码。
<script language="javascript">
var msg;
<%
String exist =(String) request.getParameter("exist");
if(exist.equals("true")){
%>msg="用户名已存在!";
<%}else{%>
msg="你可以用这个用户名!";
<%}%>
alert(msg);
</script>
这样的aa.jsp能够完成你的要求,但是建议不使用alert,而是在注册页面加一个用来显示用户名是否存在的div,假定这个div的id是div1,就可以把alert换成:
parent.div1.innerHTML=msg;
另外再给个小建议:不必让用户去点击按钮来验证用户名是否存在,而是最好自动完成,在填写用户名的文本框加上onblur="UserExist()"。这样,在用户离开用户名输入框后就会验证用户名是否存在。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你得用到AJax技术啦,这样使用起来才方便~~~~具体的做法,你看看Ajax吧,不然写了你也看得不明白了~~看了后,你自已就会明白的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询