综合案例-注册分析

  • (1)分析
  • (2)业务逻辑
    提交注册信息给Sevlet
    Servlet获取用户名判断是否已存在
    如果不存在则添加,那么结果是成功
    如果存在则直接返回已注册信息,让用户继续注册
  • Day05JavaWeb【Cookie与Session】综合案例注册_web

综合案例-注册逻辑实现

test\java\com\wzx\TestUserService.java
查找用户名,存在表示用户注册过了,不能再注册,否则就是未注册,保存用户数据,提示注册成功。

@Test
public void test02(){
//1:获取参数
String username= "tony";
String password= "bbb";
User user = new User(username,password);
//2:调用登录
UserService userService = new UserService();
int code = userService.register(user);
//3:查看结果
System.out.println(code);
}

src\com\wzx\service\UserService.java
用户名是不能相同的,所以,保能先查是否存在这个用户,不存在才能注册

public int register(User user) {
//查找 用户名是否已存在,
UserDao dao = new UserDao();
int count = dao.findByName(user.getUsername());
if(count == 0){//未注册
//不存在,进行保存,
dao.add(user);
return 1;
}else{
//否则不保存提示失败
return -1;
}
}

src\com\wzx\dao\UserDao.java
几乎所有的项目的Dao方法就是 addXxx deleteXxx findXxx updateXxx

public int findByName(String username) {
for(User u:userList){
if(username.equals(u.getUsername())){
return 1;//用户名已注册
}
}
return 0;//用户未注册
}

public void add(User user) {
userList.add(user);
}

综合案例-注册UI界面

login.jsp
添加一个链接 ,让没有用户密码的新人,可以通过注册来获得自己的账号密码

<a href="/taobao/register.jsp">注册网易邮箱</a>

register.jsp

注册页面 填写用户信息

<!-- 编写表单页面-->
<font color="red">${error_msg}</font>
<form method="post" action="/taobao/register">
用户名:<input name="username" type="text"/><br/>
密码:<input name="password" type="text"/><br/>
确认密码:<input name="password2" type="text"/><br/>
email<input name="email" type="text"/><br/>
姓名<input name="name" type="text"/><br/>
性别<input name="gender" type="radio" value="1"/><input name="gender" type="radio" value="2"/><br/>
出生日期<input name="birthday" type="date"/><br/>
<input type="submit"/><br/>
</form>

综合案例-注册Servlet

src\com\wzx\web\RegisterServlet.java

@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1:获取参数
request.setCharacterEncoding("utf-8");
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();
}
//2:调用注册
UserService userService = new UserService();
int code = userService.register(user);
//3:查看结果
System.out.println(code);
System.out.println(user);
//如果用户注册成功,回到登录页面去登录
if(code == 1){
response.sendRedirect(request.getContextPath()+"/login.jsp");
}else{
//如果用户注册失败,回到注册页面重新注册
request.setAttribute("error_msg","该用户名已被注册");
request.getRequestDispatcher("/register.jsp").forward(request,response);
}

}
}
  • 一个web项目复杂的是逻辑
  • 其他的web部分完全可以参照登录模块