我在做注册页面时 在JSP页面 用中文注册用户名 数据没入库 却显示注册成功 结果不能登陆;用数字或字母注册没问题
还有请教各位 如何判断用户名已被注册 以及如何限制用户用中文注册
action代码如下:
package com.yourcompany.struts.action; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping; import vo.User; import com.yourcompany.struts.form.NewUserForm; import dao.UserDao; public class NewUserAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
NewUserForm NewUserForm = (NewUserForm) form;// TODO Auto-generated method stub
String username=NewUserForm.getUsername();
String password=NewUserForm.getPassword();
String password2=NewUserForm.getPassword2();
String certCode=NewUserForm.getCertCode();
HttpSession session=request.getSession();
String sRand =(String)session.getAttribute("rand");
String result=null;
if(!sRand.equals(certCode)){
result="验证码错误";
request.setAttribute("result", result);
return new ActionForward("/newUser.jsp");
}
if(!password.equals(password2)){
result="密码不一致";
request.setAttribute("result", result);
return new ActionForward("/newUser.jsp");
} User user=new User();
user.setUid(username);
user.setPassword(password);
UserDao userDao=new UserDao();
userDao.insertUser(user);
result = "注册成功";
request.setAttribute("result", result);
return new ActionForward("/login.jsp");
}
}
还有请教各位 如何判断用户名已被注册 以及如何限制用户用中文注册
action代码如下:
package com.yourcompany.struts.action; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping; import vo.User; import com.yourcompany.struts.form.NewUserForm; import dao.UserDao; public class NewUserAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
NewUserForm NewUserForm = (NewUserForm) form;// TODO Auto-generated method stub
String username=NewUserForm.getUsername();
String password=NewUserForm.getPassword();
String password2=NewUserForm.getPassword2();
String certCode=NewUserForm.getCertCode();
HttpSession session=request.getSession();
String sRand =(String)session.getAttribute("rand");
String result=null;
if(!sRand.equals(certCode)){
result="验证码错误";
request.setAttribute("result", result);
return new ActionForward("/newUser.jsp");
}
if(!password.equals(password2)){
result="密码不一致";
request.setAttribute("result", result);
return new ActionForward("/newUser.jsp");
} User user=new User();
user.setUid(username);
user.setPassword(password);
UserDao userDao=new UserDao();
userDao.insertUser(user);
result = "注册成功";
request.setAttribute("result", result);
return new ActionForward("/login.jsp");
}
}
解决方案 »
- 在线求助!报错java.lang.NullPointerException
- JDK有免安装?
- servlet-api.jar 和 jsp-api.jar
- 关于nginx和tomcat整合的问题,直接用tomcat访问可以,整合后可访问JSP页面,但不带后缀名的文件无法访问。
- hsql 语句执行 出现了错误。请教大家来帮忙
- safari 弹出窗口 输入重复
- 谁能教我写一个单点登陆系统(jsp+servlet+bean),解决此问题者,送800分!决不失言!
- 路过的帮忙看看!!
- 速求 Javascript 正则表达式 整数最多16位 小数最多两位
- 用1个BEAN操作2次数据库出错
- java保存当前网页
- 菜鸟提问了,赶紧来抢分 !!!
根据用户名查询数据库,看是否已存在;
2,中文判断
/*** 检查是否包含汉字 ***/
String.prototype.isInChinese = function() {
return (this.length != this.replace(/[^\x00-\xff]/g,"**").length);
}用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
思路就是取出数据库中的用户名,与当前注册的比较,或以当前的注册信息为条件
看有没有返回结果。限制中文注册,可用正规表达式,进行限制。
是你没有处理编码问题 解决方法 http://blog.csdn.net/caoyinghui1986/archive/2008/03/25/2216198.aspx2,参考2楼.
1,判断已注册
根据用户名查询数据库,看是否已存在;
2,中文判断
/*** 检查是否包含汉字 ***/
String.prototype.isInChinese = function() {
return (this.length != this.replace(/[^\x00-\xff]/g,"**").length);
} 用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
但是如是中文注册不能登陆的话那说明当前的jsp页面不接受中文的参数
这个问题也可以解决!这样的话不管用什么方式注册都可以登陆了
写一个过滤器 解决中文乱码!
关于用户名是否存在的问题,你可以用ajax技术,DWR挺好用,如果用楼上的同仁说,输入用户名,密码提交到后台处理,那是不科学的,后台的任务量是不是太大了