OSGI企業應用開發(十五)基於Spring、Mybatis、Spring MVC實現一個登陸應用

前面文章中,咱們已經完成了OSGI應用中Spring、Mybatis、Spring MVC的整合,本篇文章咱們就在這個基礎上來完成一個簡單的登陸應用,其中用戶名和密碼須要從數據庫中查詢。css

前面文章中,咱們已經搭建好的工做空間以下圖所示:
這裏寫圖片描述
本篇文章中,咱們只須要在com.csdn.osgi.user.web工程中添加頁面及Controller便可。html

首先新增一個登陸界面,文件路徑爲在WebContent/WEB-INF/jsp/login.jsp,內容以下:java

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用戶登陸</title>

<link href="css/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="css/signin.css" rel="stylesheet">
</head>
<body>
<div class="signin">
    <div class="signin-head"><img src="images/head_120.png" alt="" class="img-circle"></div>
    <form class="form-signin" role="form" action="Login.do" method="post">
        <input type="text" name="username" class="form-control" placeholder="用戶名" required autofocus />
        <input type="password" name="password" class="form-control" placeholder="密碼" required />
        <button class="btn btn-lg btn-warning btn-block" type="submit">登陸</button>
        <label class="checkbox">
            <input type="checkbox" value="remember-me"> 記住我
        </label>
    </form>
</div>
</body>
</html>

登陸成功後,跳轉到成功頁面,因此咱們還須要新增一個登陸成功頁面,文件路徑爲WebContent/WEB-INF/jsp/success.jsp,頁面代碼以下:web

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用戶登陸</title>

<link href="css/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="css/signin.css" rel="stylesheet">

</head>
<body>
<h1>登陸成功</h1>
</body>
</html>

接下來須要定義兩個控制器來處理業務邏輯,首先增長一個PreLoginControler,邏輯比較簡單,用於跳轉到首頁面,代碼以下:spring

package com.csdn.osgi.user.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;

public class PreLoginControler implements Controller {

    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        return new ModelAndView("login");
    }
}

而後還須要一個控制器LoginControler處理登陸邏輯,代碼以下:sql

package com.csdn.osgi.user.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.ibatis.session.SqlSession;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class LoginControler implements Controller {

    private SqlSession sqlMap;

    public void setSqlMap(SqlSession sqlMap) {
        this.sqlMap = sqlMap;
    }

    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {

        String userName = request.getParameter("username");
        String password = request.getParameter("password");

        System.out.println("UserName=>" + userName + ";" + "Password=>" + password);

        if(userName == null || password == null){
            return new  ModelAndView("login");
        }

        String pword = (String) sqlMap.selectOne("user.getPasswordByName", userName);
        System.out.println(pword);

        if(pword !=null && pword.equals(password)){
            return new ModelAndView("success");
        } else {
            return new  ModelAndView("login");
        }
    }

}

其中SqlSession 爲Mybatis操做數據庫的Session對象,經過Spring注入,Bean的配置以下:數據庫

<bean name="/preLogin.do"  class="com.csdn.osgi.user.controllers.PreLoginControler">
    </bean>


    <bean name="/Login.do"  class="com.csdn.osgi.user.controllers.LoginControler">
        <property name="sqlMap" ref="sqlMapService"></property>
    </bean>

到此爲止咱們已經完成了這個簡單的登陸應用的開發,源碼下載地址會在文章結尾提供,接下來就來看看效果,首先啓動OSGI容器,打開瀏覽器訪問http://localhost:8080/preLogin.do,以下圖所示:
這裏寫圖片描述
輸入正確的用戶名密碼,例如Smith/Smith,則跳轉到登陸成功界面,以下圖所示:apache

這裏寫圖片描述

用戶名密碼輸入不正確則中止在登陸界面,固然還能夠增長一些提示信息,告訴客戶用戶名密碼錯誤,這裏就不作演示了,本案例主要是用於證實Spring MVC是整合成功的,不然Mybatis的SqlSession對象是沒法注入到Controller對象中的。bootstrap

本文源碼下載:http://download.csdn.net/detail/rongbo_j/9757751瀏覽器

相關文章
相關標籤/搜索