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什么的 刚开始学习 不明白太多 就根据我的问题答 分没多少 全给了
展开
 我来答
百度网友3b46a7f
推荐于2016-01-07 · TA获得超过2520个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:0
展开全部
以下程序已经测试通过!
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>");
百度网友dc81944bb
2009-11-16 · TA获得超过572个赞
知道小有建树答主
回答量:793
采纳率:0%
帮助的人:726万
展开全部
如果你真不会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回来的值做下逻辑处理。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fyeat111
2009-11-16 · TA获得超过993个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:383万
展开全部
其实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()"。这样,在用户离开用户名输入框后就会验证用户名是否存在。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友be02abe51
2009-11-16 · TA获得超过430个赞
知道答主
回答量:386
采纳率:0%
帮助的人:180万
展开全部
这个你得用到AJax技术啦,这样使用起来才方便~~~~具体的做法,你看看Ajax吧,不然写了你也看得不明白了~~看了后,你自已就会明白的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式