Registration function_function analysis
Registered background function code
Write UserService's register method test
com\wzx\service\TestUserService.java
@Test
public void test03() {
UserService userService = new UserService();
User user = new User();
user.setUsername("jackhello");
user.setPassword("123456");
user.setStatus('Y');
int code = userService.register(user);
System.out.println(code);
}
Write the register method of UserService
com\wzx\service\UserService.java
public int register(User user) {
UserDao userDao = MySessionUtils2.getMapper(UserDao.class);
//判断 用户的账号是否存在
User user2 = userDao.findByUserName(user.getUsername());
//不存在,调用保存 返回 1
if(user2 == null){
userDao.save(user2);
return 1;
}else{
//存在,返回-1
return -1;
}
}
How to write UserDao
with \ wzx \ dao \ UserDao.java
//select * from tab_user where username='jackhello3'
User findByUserName(String username);
//insert into tab_user values(null,...)
void save(User user2);
with \ wzx \ dao \ UserDao.xml
<select id="findByUserName" parameterType="string" resultType="user">
select * from tab_user where username=#{username}
</select>
<insert id="save" parameterType="user" >
insert into tab_user values(null,#{username},
#{password},#{name},#{birthday},#{sex},#{telephone},#{email},#{status},#{code})
</insert>
Test the method of UserDao class
with \ wzx \ dao \ UserDaoTest2.java
public class UserDaoTest2 {
@Test
public void findByUserName() {
UserDao dao = MySessionUtils2.getMapper(UserDao.class);
User user = dao.findByUserName("jackhello");
System.out.println(user);
}
@Test
public void save() {
UserDao dao = MySessionUtils2.getMapper(UserDao.class);
User user= new User(33,"jackhello33","jackhello34",new Date(),"jack","男","3333","[email protected]",'N',"ddd");
// User(int uid, String username, String password, Date birthday, String name, String sex, String telephone, String email, char status, String code)
dao.save(user);
}
}
Front desk code
register.jsp
Create a new register.jsp and
copy reister.html into the
replacement project and replace register.html with register.jsp
Data verification of register.jsp page
- (0) The format of the data in the actual project is verified in the browser, why?
Improve the user experience and reduce the pressure on the server. - (1) Verify user name/^\w{8,20}$/ word characters, length 8 to 20 digits
- (2) Verify password /^\w{8,20}$/ word characters, length 8-20 digits
- (3) Check email = /^\w+@\w+.\w+$/ Email [email protected]
Regular expression
Regular expression.test (string)
returns a Boolean value
true, the format is correct,
false, the format is incorrect
<script type="text/javascript" >
function checkUsername(){
//判断一下账号输入是否合法
var username = $("#username").val();
var reg = /^\w{8,20}$/ ;
var flag = reg.test(username);
if(flag){
//不提示
$("#username").css("border","");
}else{
//提示
$("#username").css("border","1px solid red");
}
return flag;
}
function checkPassword(){
//判断一下密码输入是否合法
var password = $("#password").val();
var reg = /^\w{8,20}$/ ;
var flag = reg.test(password);
if(flag){
//不提示
$("#password").css("border","");
}else{
//提示
$("#password").css("border","1px solid red");
}
return flag;
}
function checkEmail(){
//判断一下密码输入是否合法
var email = $("#email").val();
var reg = /^\w+@\w+\.\w+$/ ;
var flag = reg.test(email);
if(flag){
//不提示
$("#email").css("border","");
}else{
//提示
$("#email").css("border","1px solid red");
}
return flag;
}
$(function () {
//账号密码 手机号 邮箱 正则判断
//格式正确不作提示,如果错误将边框改成红色
$("#username").blur(checkUsername)
$("#password").blur(checkPassword)
$("#email").blur(checkEmail)
$("#registerForm").submit(function () {
//ajax提交
return false;
})
});
</script>
Register the front desk_Ajax request
(1) The submit function
controls whether the form is submitted. The function returns true, the form is submitted, and the form returns false. The form is not submitted.
Here
, if you submit ajax, write false
(2) Why return false? How does the data get to the server?
ajax submission
register.jsp
$("#registerForm").submit(function () {
//ajax提交
if(checkUsername()&&checkPassword()&&checkEmail()){
//使用jquery
$.post("registerServlet",$("#registerForm"). serialize(),
function(data){
//{code:1,data:成功}
if(1 == data.code){
//注册成功
window.location = "login.jsp";
}else{
//注册失败
$("#errorMsg").html(data.data);
}
},"json");
}
return false;
})
Write RegisterServlet
com\wzx\web\servlet\RegisterServlet.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//接收请求,获取参数
Map<String, String[]> map = request.getParameterMap();
User user = new User();
//将请求中的参数赋值给变量
try {
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//对参数处理
UserService userService = new UserService();
int code = userService.register(user);
//响应给浏览器
ResponseInfo responseInfo = new ResponseInfo();
responseInfo.setCode(code);
if(code==1){
responseInfo.setData("注册成功");
}else{
//-1,-2,-3
responseInfo.setData("注册失败");
}
String json = new ObjectMapper().writeValueAsString(responseInfo);
response.getWriter().println(json);
}
BeanUtils string to date****
ConvertUtils.register方法
The converter can be registered to BanUtils- You can automatically convert string to java.util.Date
ConvertUtils.register(new Converter() {
public Object convert(Class type, Object value) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
return simpleDateFormat.parse(value.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}, Date.class);
Registered verification code processing
Copy it directly from LoginServlet, but modify the prompt.