SpringLoginTest(模拟登录)
关于项目配置,之前都有,不会的可以下源码
项目描述:注册帐号——登录——登录成功or登录失败
package com.game.controller; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.game.model.User; @Controller @RequestMapping("/user") public class UserController { private static List<User> userList = null; public UserController() { super(); userList = new ArrayList<User>(); } @RequestMapping(value="/register",method=RequestMethod.GET) public String registerForm() { return "register"; } @RequestMapping(value="/register",method=RequestMethod.POST) public String register( @RequestParam("loginId") String loginId, @RequestParam("password") String password, @RequestParam("userName") String userName) { User user = new User(); user.setLoginId(loginId); user.setPassword(password); user.setUserName(userName); userList.add(user); return "login"; }
/**@RequestParam 注解类型用于将指定的请求参数赋值给方法中的形参*/ @RequestMapping("/login") public String login(@RequestParam("loginId") String loginId, @RequestParam("password") String password, Model model) throws UnsupportedEncodingException { for(User user : userList) { if(user.getLoginId().equals(loginId) && user.getPassword().equals(password)) { String name = new String(user.getUserName().getBytes("ISO8859_1"),"UTF-8"); model.addAttribute("userName",name); return "welcome"; } } return "loginError"; } }
package com.game.model; import java.io.Serializable; public class User implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String loginId; private String password; private String userName; public String getLoginId() { return loginId; } public void setLoginId(String loginId) { this.loginId = loginId; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
注册页面
<body> <h3>注册页面</h3> <br> <form action="user/register" method="post"> <table> <tr> <td><label>登录名:</label></td> <td><input type="text" id="loginId" name="loginId"></td> </tr> <tr> <td><label>密码:</label></td> <td><input type="password" id="password" name="password"></td> </tr> <tr> <td><label>昵称:</label></td> <td><input type="text" id="userName" name="userName"></td> </tr> <tr><td><input id="submit" type="submit" value="注册"></td></tr> </table> </form> </body>
登录页面
<body> <h3>登录页面</h3> <br> <form action="user/login" method="post"> <table> <tr> <td><label>登录名:</label></td> <td><input type="text" id="loginId" name="loginId"></td> </tr> <tr> <td><label>密码:</label></td> <td><input type="password" id="password" name="password"></td> </tr> <tr><td><input id="submit" type="submit" value="登录"></td></tr> </table> </form> </body>
成功页面
<body> <h3>欢迎 ${ requestScope.userName } 登录成功!</h3> </body>
失败页面
<body> <h3>登录失败,帐号或密码错误</h3> <br> </body>
相关截图
项目中遇到的问题
1.提交的中文参数在jsp中显示为乱码
解决:转码
String name = new String(user.getUserName().getBytes("ISO8859_1"),"UTF-8");
model.addAttribute("userName",name);
2.控制器映射到/user路径下
提交请求的时候找不到路径,加上就好了
<form action="user/register" method="post">
最后附件http://pan.baidu.com/s/1eSy3azo