我需要刷新jsp里的部分

baidu_35792661 2016-09-25 06:35:31
代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>用户注册</title>
<script type="text/javascript" src="JS/jQuery/jquery-1.11.1.js"></script>
<script type="text/javascript" charset="UTF-8"
src="<c:url value='/JS/user/regist.js' />"></script>
<link href="${pageContext.request.contextPath}/CSS/user/regist.css"
type="text/css" rel="stylesheet" charset="UTF-8" />
</head>
<body>
<%
String str1 = "ABCDEFGHJKLMNPRSTUVWXYabcdefghjkmnpqrstuvwxy3456789";
String str2 = "";
int len = str1.length() - 1;
double r;
for (int i = 0; i < 4; i++) {
r = (Math.random()) * len;
str2 = str2 + str1.charAt((int) r);
}
session.setAttribute("code",str2);
%>
<div class="divBody">
<div class="divTitle">
<span class="spanTitle">新用户注册</span>
</div>
<div class="divCenter">
<form action="regist.do" method="post" onsubmit="return check();">
<input type="hidden" name="method" value="" />
<table>
<tr>
<td class="tdLabel">用户名:</td>
<td class="tdInput"><input type="text" name="username"
id="loginname" value="5-10个中文英文数字下划线" onblur="return loginnameMsg()"
onfocus="cleanname()" class="input" /></td>
<td class="tdError"><label class="" id="loginnameMsg"></label>
</td>
</tr>
<tr>
<td class="tdLabel">登录密码:</td>
<td class="tdInput"><input type="text" name="upassword"
id="loginpass" onblur="return loginpassMsg()" onfocus="cleanpass()"
class="input" value="8-20位字母数字非空格符号" /></td>
<td class="tdError"><label class="" id="loginpassMsg"></label>
</td>
</tr>
<tr>
<td class="tdLabel">确认密码:</td>
<td class="tdInput"><input type="text" name="reloginpass"
id="reloginpass" onblur="return reloginpassMsg()"
onfocus="recleanpass()" class="input" value="输入与上面一致的密码" /></td>
<td class="tdError"><label class="" id="reloginpassMsg"></label>
</td>
</tr>
<tr>
<td class="tdLabel">Email:</td>
<td class="tdInput"><input type="text" name="email"
id="email" onblur="return emailMsg()" onfocus="cleanemail()"
class="input" value="请输入常用的email" /></td>
<td class="tdError"><label class="" id="emailMsg"></label></td>
</tr>
<tr>
<td class="tdLabel">图形验证码:</td>
<td class="tdInput"><input type="text" name="verifyCode"
id="verifyCode" onblur="return codeMsg()" onfocus="cleancode()"
class="input" value="输入下方图片内容大小写忽略" /></td>
<td class="tdError"><label class="" id="verifyCodeError"></label>
</td>
</tr>
<tr>
<td id="imgcode" class=""> </td>
<td><span class="verifyCodeImg"><img id="vCode"
width="100%" height="100%" alt="验证码"
src="code.do"/></span></td>
<td id="code" class="<%=str2 %>"><a
onclick="document.getElementById('vCode').setAttribute('src','code.do?x='+Math.random());">换一张</a></td>
</tr>
<tr>
<td> </td>
<td><input type="image"
src="<c:url value='/other_img/regist1.png'/>" id="submit" /></td>
<td><input type="button" onclick="check()"/></td>
</tr>
</table>
</form>
<div class="back" onclick="location.href='index.do'"></div>
</div>
</div>
<div class="copy">
<p class="msg">逸仙时空专属,盗版必究。 @2016/9/18</p>
</div>
<!-- else if(!nul(name)){
nameclass.value="请输入用户名!";
nameclass.style.color="#FF0000";
nameCheck.className="labelError";
nameCheck.innerHTML="用户名不能为空!";
return false;
} -->
</body>
</html>

我需要在下面的时候onclick
<tr>
<td id="imgcode" class=""> </td>
<td><span class="verifyCodeImg"><img id="vCode"
width="100%" height="100%" alt="验证码"
src="code.do"/></span></td>
<td id="code" class="<%=str2 %>"><a
onclick="document.getElementById('vCode').setAttribute('src','code.do?x='+Math.random());">换一张</a></td>

同时刷新下面标签部分里面新输出一个随机字符串
<%	
String str1 = "ABCDEFGHJKLMNPRSTUVWXYabcdefghjkmnpqrstuvwxy3456789";
String str2 = "";
int len = str1.length() - 1;
double r;
for (int i = 0; i < 4; i++) {
r = (Math.random()) * len;
str2 = str2 + str1.charAt((int) r);
}
session.setAttribute("code",str2);
%>

其他的不要刷新,请问怎么做到?
...全文
266 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlfan2 2016-09-26
  • 打赏
  • 举报
回复
做验证码,为何不用js?js直接onclick刷新随机排序
解开者 2016-09-26
  • 打赏
  • 举报
回复
img标签的src=一个jsp,然后这个jsp输出图片并把验证码放进Session里
baidu_35792661 2016-09-25
  • 打赏
  • 举报
回复
引用 2 楼 rumlee 的回复:
[quote=引用 1 楼 rumlee 的回复:] 做验证码的时候,你的写入session的代码不能放在这个页面上,而应该写到你的code.do这个url对应的代码中去。 你只要这样做,你的问题也就迎刃而解了。
在code.do对应的代码中,生成随机码,并且写入session,并根据随机码动态生成图片。 你如果将生成随机码的代码放在当前这个页面上,那你生成的图片的地方怎么知道该怎么生成。 难道你在code.do里面去session里面获取?[/quote] 我在后台生成随机码一边存到session中,一边根据这个随机码生成图片后,session中的随机码总是比图片慢一步 我改成在前台用js生成随机码,然后传给后台,后台根据随机码生成图片 现在遇到的问题就是,我在js里面生成随机码是成功了,可我要怎么怎么传给后台(servket),而后台又怎么取到呢? 代码怎么写?我不想用session了,有问题
baidu_35792661 2016-09-25
  • 打赏
  • 举报
回复
我在后台生成随机码
rumlee 2016-09-25
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
做验证码的时候,你的写入session的代码不能放在这个页面上,而应该写到你的code.do这个url对应的代码中去。 你只要这样做,你的问题也就迎刃而解了。
在code.do对应的代码中,生成随机码,并且写入session,并根据随机码动态生成图片。 你如果将生成随机码的代码放在当前这个页面上,那你生成的图片的地方怎么知道该怎么生成。 难道你在code.do里面去session里面获取?
rumlee 2016-09-25
  • 打赏
  • 举报
回复
做验证码的时候,你的写入session的代码不能放在这个页面上,而应该写到你的code.do这个url对应的代码中去。 你只要这样做,你的问题也就迎刃而解了。

62,620

社区成员

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

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