在jsp中实现了验证码,现在想在servelet中验证,代码该怎么写
发布网友
发布时间:2022-05-13 20:06
我来回答
共2个回答
热心网友
时间:2023-07-29 07:17
楼下你回答别人的代码中说:
String rand = (String) req.getSession().getAttribute("rand");
String checkcode = req.getParameter("checkcode");
if (!checkcode.equals(rand)) {
这句话哪里有问题吗?
--------------------------------------------------------------------
也许session里的值你能获取到,但是你request.getParameter("checkcode")这句话正确?
你上面给出的代码是:
<form action="checkLogin" method="post" name="form">
。。
<td>验证码:</td>
<td><input type="text" name="certCode" style="width:80px; ">
<img src="makeCertPic.jsp" align="center"></td>
--------------------------------------------------------------------------------
也就是说,你form表单里面的数据将会提交到"checkLogin"这个servlet中去处理,你确定你有checkLogin这个命名的servlet?
然后你<input>的name是“certCode",可你获取的时候却是req.getParameter("checkcode");你究竟想获取哪个参数呢亲?
------------------------------------------------------
然后发现你现在的逻辑处理很凌乱,还是把JSP和Servlet理解透了再来问吧。特别是session、request、application的用法,你确定你获取一个值什么时候用request.getParameter(),什么时候用request.getAttribute()?追问呃。。。我没说清楚,我loginservlet在xml里设置成了checkLogin这个没问题,checkcode这个是input的id因为报错后来我把它给删了
热心网友
时间:2023-07-29 07:18
你自己实现的验证码你不清楚吗?
通常情况下生成验证码的时候会直接保存到session中
在loginservlet中将页面到的值与session中值比对就行了追问呃。。验证码不是很熟,我也这样写的,不知道哪里写错了一直报错
String rand = (String) req.getSession().getAttribute("rand");
String checkcode = req.getParameter("checkcode");
if (!checkcode.equals(rand)) {
这句话哪里有问题吗?
追答看不出来