新建maven项目
相关概念简单介绍:
监听器:监听器就是监听某个域对象的状态变化的组件
过滤器:filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理。作用:代码的抽取(可以对request设置编码,这样所有走过的servlet的编码都是统一的,没必要每一个都写)权限管理(在filter内部去除当前登录客户的角色,再看看访问的资源,如果匹配则放行,不匹配则不放行)
开发步骤
1.新建maven项目:
在右下角点击enable import,让其自动导包。
2.新建相关目录:例如java、resource等,具体目录列表如下图所示:
3.在bean包下新建UserInfo类,输入数据库中包含的属性值,选择自动生成构造方法、setter、getter方法、toString方法:
package com.zhongruan.bean;
public class UserInfo {
private int id;
private String username;
private String password;
public UserInfo() {
}
public UserInfo(int id,String username,String password){
this.id=id;
this.username=username;
this.password=password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
4.在UserInfoMapper.xml文件中编写关于数据库相关操作的代码,eg:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zhongruan.dao.IUserInfoDao" >
<select id="findAll" resultType="com.zhongruan.bean.UserInfo">
select * from userinfo
</select>
<select id="login" resultType="com.zhongruan.bean.UserInfo" parameterType="com.zhongruan.bean.UserInfo">
select * from userinfo where username=#{username} and password=#{password}
</select>
</mapper>
5.IUserInfoDao接口:
package com.zhongruan.dao;
import com.zhongruan.bean.UserInfo;
import java.util.List;
public interface IUserInfoDao {
public List<UserInfo> findAll();
public UserInfo login(UserInfo userInfo);
}
6.在service层新建一个接口类 IUserInfoService:
package com.zhongruan.service;
import com.zhongruan.bean.UserInfo;
import java.util.List;
public interface IUserInfoService {
public List<UserInfo> findAll();
public boolean login(UserInfo userInfo);
}
7.UserInfoServiceImpl实现IUserInfoService接口
import com.zhongruan.dao.IUserInfoDao;
import com.zhongruan.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("userInfoService")
public class UserInfoServiceImpl implements IUserInfoService {
@Autowired
private IUserInfoDao userInfoDao;
@Override
public List<UserInfo> findAll() {
return userInfoDao.findAll();
}
public boolean login(UserInfo userInfo){
UserInfo user = userInfoDao.login(userInfo);
if(user!=null)
{
return true;
}
else
return false;
}
}
上述加注解@Autowired,表明Spring会自动new一个对象出来;
8.配置文件介绍:
扫描dao包,注入sqlSessionFactory,连接数据库,扫描bean包,加载映射文件
描述了数据库的相关信息,不需要jdbc的七步操作了。
实现结果:
实现查询的功能,结果如下图所示:
登录成功界面:
登录失败:
相关实现代码(逻辑部分):
@Controller
@RequestMapping("user")
public class UserInfoController {
@Autowired
private IUserInfoService userInfoService;
@RequestMapping("/findAll.do")
public ModelAndView findAll()
{
ModelAndView mv=new ModelAndView();
List<UserInfo> userInfos=userInfoService.findAll();
mv.addObject("userInfos",userInfos);
mv.setViewName("user-list");
return mv;
}
@RequestMapping("login.do")
public ModelAndView login(UserInfo userInfo) {
boolean flag=userInfoService.login(userInfo);
ModelAndView mv = new ModelAndView();
if (flag) {
mv.setViewName("main");
return mv;
}
else{
mv.setViewName("../failer");
return mv;
}
}
}