【SpringMVC-005】idea創建SpringMVC項目傻瓜教程-簡單註冊登錄

項目還是基於之前【001】中建立的結構,這一章,通過一個簡單的demo,熟悉下註解的使用。

先看下要實現的效果。

首先是註冊界面,其次是登錄界面,最後是歡迎界面。


---------------------------------------------------------【我是分界線】----------------------------------------------------

【1】首先創建一個User類,路徑爲src/com/test/model/User.java。結構圖如下所示:


User.java的代碼如下,這個類是一個域對象,用來接收並封裝前臺頁面傳遞過來的數據。通常,在構建域對象時,需要考慮該對象可能需要進行網絡傳輸本地緩存,因此建議實現序列化接口Serializable。

//域對象,實現序列化接口
public class User implements Serializable{

    private String loginname;

    private String username;

    private String password;
//set get方法略 【2】創建UserController.java文件,路徑爲:src\com\test\controller\UserController.java

@Controller
@RequestMapping(value="/user")
public class UserController {

    private static List<User> userList;

   /* @Autowired
    private static User user;*/

    public UserController() {
        this.userList = new ArrayList<>();//初始化userlist
    }


    @RequestMapping(value = "/register",method = RequestMethod.GET)
    public String registerForm() {

        return "/user/registerForm";
    }

    @RequestMapping(value = "/register",method = RequestMethod.POST)
    public String register(@RequestParam("loginname") String loginname,
                           @RequestParam("username") String  username,
                           @RequestParam("password") String password) {
        User user = new User();
        user.setLoginame(loginname);
        user.setUsername(username);
        user.setPassword(password);
        //存儲user信息
        userList.add(user);
        //跳轉頁面到登錄頁面
        return "/user/loginForm";
    }

    @RequestMapping(value = "login")
    public String login(@RequestParam("loginname") String loginname,
                        @RequestParam("password") String password,
                        Model model) {
        //到集合中查詢用戶是否存在
        for (User user : userList){
            if (user.getLoginame().equals(loginname)&& user.getPassword().equals(password)){
                model.addAttribute("user",user);
                return "/user/welcome";
            }

        }
        return "/user/loginForm";
    }

}//end

UserController類的代碼解釋如下:

1.UserController類使用@Controller註解,是一個控制器類

2.UserController類上面使用了@RequestMapping(value="/user")的註解,表示控制器處理的所有請求都被映射到user路徑下。

3.沒有使用數據庫來儲存用戶的註冊信息,所以定義了一個靜態List類集合userList來代替數據庫存儲信息。

4.registerForm方法使用了@RequestMapping(value=“/register”,method=RequestMethod.GET)註解,表示該方法的請求爲:http://localhost:8080/user/register,並且只支持GET請求,該方法返回的字符串“registerForm”,參考dispatcher-servlet.xml中的配置信息,可以知道該方法只是跳轉到registerForm.jsp註冊頁面。

5.register方法使用了@RequestMapping(value=“/register”,method=RequestMethod.POST)註解,表示該方法的請求爲:http://localhost:8080/user/register,並且只支持POST請求。該方法使用@requestParam註解將指定的請求參數賦值給方法中的形參,之後創建一個user對象保存用戶傳遞的註冊信息,最後將user對象存儲到userList集合當中,之後的登錄頁面就可以到userList集合當中進行用戶登錄業務的邏輯判斷,該方法返回字符串“loginForm”,並跳轉到loginForm.jsp頁面。

6.login方法使用了@RequestMapping(“/login”)註解,表示該方法映射的請求爲:http://localhost:8080/user/login,這裏沒有設置method屬性,表示支持所有方式的請求。該方法用@RequestParam註解將指定地點請求參數賦值給方法中的形參,之後到集合中查找用戶是否存在,此處用來模擬數據庫驗證,login方法中還有一個參數Model對象,調用該對象的addAttribute方法可以將數據添加到request中,最後,如果用戶登錄成功,則返回字符串“welcome”,並跳轉到welcome.jsp歡迎界面,登錄失敗則返回字符串“loginForm”,並跳轉到loginForm.jsp登錄界面。

【3】創建registerForm.jsp文件,路徑爲:web\WEB-INF\jsp\user\registerForm.jsp。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>註冊頁面</title>
</head>
<body>
<form action="register" method="post">
    <table>
        <tr>
            <td><label>登錄名:</label></td>
            <td><input type="text" id="loginname" name="loginname"> </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 type="submit" id="submit" value="註冊"> </td>
        </tr>
    </table>
</form>
</body>
</html>
【4】創建loginForm.jsp文件,路徑爲:web\WEB-INF\jsp\user\loginForm.jsp。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登錄界面</title>
</head>
<body>
<form action="login" method="post">
    <table>
        <tr>
            <td><label>登錄名:</label></td>
            <td><input type="text" id="loginname" name="loginname"> </td>
        </tr>
        <tr>
            <td><label>密碼:</label></td>
            <td><input type="password" id="password" name="password"> </td>
        </tr>
        <tr>
            <td><input type="submit" id="submit" value="登錄"> </td>
        </tr>
    </table>
</form>
</body>
</html>
【5】創建welcome.jsp文件,路徑爲:web\WEB-INF\jsp\user\welcome.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>歡迎界面</title>
</head>
<body>
    <h1>歡迎${requestScope.user.username}</h1>
</body>
</html>

最後,部署這個web應用,在瀏覽器中輸入如下URL:http://localhost:8080/user/register。自行測試即可。效果將於文章開頭提及的效果一樣。

發佈了49 篇原創文章 · 獲贊 59 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章