MVC版項目開發(fā)-傳統(tǒng)模式
登陸模擬
因為大多數(shù)內(nèi)容在前面的筆記中記錄過 例如工具類和mapper映射文件 故在此不多贅述
數(shù)據(jù)庫準(zhǔn)備
新建數(shù)據(jù)庫 mybatis-finall-test
新建表user 字段如下圖所示
image
新建動態(tài)項目 包結(jié)構(gòu)如下圖所示
image
需要新建exception包 用來存放報錯信息
代碼示例:
package com.shxt.framework.rbac.user.exception;
public class LoginException extends RuntimeException {
public LoginException() {
super();
// TODO Auto-generated constructor stub
}
public LoginException( String message , Throwable cause , boolean enableSuppression , boolean writableStackTrace ) {
super(message, cause, enableSuppression, writableStackTrace);
// TODO Auto-generated constructor stub
}
public LoginException( String message , Throwable cause ) {
super(message, cause);
// TODO Auto-generated constructor stub
}
public LoginException( String message ) {
super(message);
// TODO Auto-generated constructor stub
}
public LoginException( Throwable cause ) {
super(cause);
// TODO Auto-generated constructor stub
}
}
usermapper存放登錄用<select>標(biāo)簽及處理內(nèi)容
新建service層 存放業(yè)務(wù)邏輯處理文件
使用面向接口編程方式
UserServiceImpl.java (實現(xiàn)類)代碼示例:
package com.shxt.framework.rbac.user.service.impl;
import com.shxt.framework.rbac.user.dao.UserDao;
import com.shxt.framework.rbac.user.dao.impl.UserDaoimpl;
import com.shxt.framework.rbac.user.exception.LoginException;
import com.shxt.framework.rbac.user.model.User;
import com.shxt.framework.rbac.user.service.UserService;
public class UserServiceImpl implements UserService {
//接口回調(diào)
private UserDao userdao = new UserDaoimpl();
@Override
public User login( User user ) {
User u = this.userdao.login(user);
if(u==null){
throw new LoginException("用戶名或者密碼錯誤,請重新輸入??!");
}else {
if(u.getStatus()==-1){
throw new LoginException("該賬號已被注銷??!");
}else {
return u;
}
}
}
}
為了信息訪問的安全 將view層(jsp文件)放在WEB-INF文件夾下
新建servlet文件 處理web命令
在base包下新建IndexServlet用于在之初能夠打開登陸頁面
WEB-INF文件夾內(nèi)資源不可直接訪問!!
DAO層內(nèi)放置數(shù)據(jù)庫訪問文件 使用面向接口編程方式
UserDao 文件的實現(xiàn)類UserDaoImpl.java代碼示例:
package com.shxt.framework.rbac.user.dao.impl;
import org.apache.ibatis.session.SqlSession;
import com.shxt.framework.base.util.MyBatisUtils;
import com.shxt.framework.rbac.user.dao.UserDao;
import com.shxt.framework.rbac.user.model.User;
public class UserDaoimpl implements UserDao {
@Override
public User login( User user ) {
SqlSession sqlSession = null;
try {
sqlSession = MyBatisUtils.getSqlSession();
return sqlSession.selectOne(User.class.getName()+".login",user);
} finally {
MyBatisUtils.closeSqlSession(sqlSession);
}
}
}
整體編碼邏輯如下圖:
image