任务是认识ssm与搭建ssm,别的不多说了,我直接就上过程好了
1.点击idea左上角 File->new->project
如下图所示
选择finish,进入项目后等待一会,会在输出台输出Build Success的字样提示项目构建成功
User类
package com.zhongruan.bean;
import com.mysql.cj.x.protobuf.MysqlxDatatypes;
public class User {
private int id;
private String username;
private String password;
public User() {
}
public User(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public User(String username, String password) {
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 "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
UserHandler类
package com.zhongruan.controller;
import com.zhongruan.bean.User;
import com.zhongruan.dao.UserDao;
import com.zhongruan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping("/user")
public class UserHandler {
// @Controller 表示UserHandler类 是一个控制器类(处理请求)
@Autowired
UserDao userDao;
@Autowired
UserService userService;
@RequestMapping("/findAll")
public ModelAndView index() {
System.out.println("index方法执行 ");
ModelAndView mv = new ModelAndView();
mv.addObject("list", userService.findAll());
mv.setViewName("list");
return mv;
// ModelAndView 数据视图
// return "index";
}
@RequestMapping("/findAll01")
public ModelAndView index01() {
ModelAndView mv = new ModelAndView();
mv.addObject("list", userService.findAll());
mv.setViewName("list");
return mv;
}
@RequestMapping("/login")
public String login(String username, String password) {
System.out.println(username + "====" + password);
// 对 用户名和密码 进行 校验
User user = userService.login(new User(username, password));
System.out.println(user);
if (user == null) {
System.out.println("登录失败");
return "false";
} else {
System.out.println("登录成功");
return "success";
}
}
@RequestMapping("/register")
public String register(String username, String password, String check_password) {
if (password.equals(check_password)) {
System.out.println(username + "====" + password);
userService.register(new User(username, password));
System.out.println("注册成功");
return "success";
}else {
System.out.println("两次密码输入不一致");
return "false";
}
}
}
UserDao类
package com.zhongruan.dao;
import com.zhongruan.bean.User;
import java.util.List;
public interface UserDao {
// 查询全部用户 的方法
List<User> findAll();
// List集合的接口 <User> 泛型就是 将运行期间的错误 转换到 编译期间 User.login() Student.login()
//检查
User checkUser(User user);
// 新增用户
int addUser(User user);
}
UserDao.xml
<?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.UserDao">
<select id="findAll" resultType="User">
select * from t_user
</select>
<insert id="addUser" parameterType="User">
insert into t_user (username, password) values (#{username}, #{password})
</insert>
<select id="checkUser" parameterType="User" resultType="User">
select * from t_user where username=#{username} and password = #{password};
</select>
注意啊这里有个坑,insert语句返回的都是int类型,所以UserDao类里面的addUser方法会出错,所以addUser方法要是int类型,我会详细解释,在下一篇笔记里面
UserServiceImpl
package com.zhongruan.service.impl;
import com.zhongruan.bean.User;
import com.zhongruan.dao.UserDao;
import com.zhongruan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserDao userDao;
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public User login(User user) {
return userDao.checkUser(user);
}
//修改之后的register 因为insert语句返回值是int类型,所以如果写成User register()会返回错误
@Override
public boolean register(User user) {
User queryUser = userDao.checkUser(user);
if (queryUser != null){
return false;
}else{
int rows=userDao.addUser(user);
return rows ==1;
}
}
}
UserService
package com.zhongruan.service;
import com.zhongruan.bean.User;
import java.util.List;
public interface UserService {
List<User> findAll();
User login(User user);
// User register(User user);
boolean register(User user);
}
login.jsp
<%--
Created by IntelliJ IDEA.
User: time ocean
Date: 2020/7/22
Time: 16:17
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>用户登陆</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<!-- Font Awesome -->
<!-- Ionicons -->
<!-- Theme style -->
<!-- iCheck -->
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" href="../plugins/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../plugins/ionicons/css/ionicons.min.css">
<link rel="stylesheet" href="../plugins/adminLTE/css/AdminLTE.css">
<link rel="stylesheet" href="../plugins/iCheck/square/blue.css">
</head>
<%-- 需求分析
login.jsp 需要讲用户名以及密码传递到后台
from表单用来提交数据
表单域 <form></form>
action属性 表示 提交数据地址
method 提交方式
get方式 <a></a>用的就是get请求 优点 速度快 缺点 不安全
post方式 优点 安全 传递数据量大 数据类型不限
表单元素 <input>
type 类型
placeholder 占位符
name 必须要加的属性
提交按钮 <button type="submit" >
--%>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<a href=" "><b>武汉理工</b>后台管理系统</a>
</div>
<!-- /.login-logo -->
<div class="login-box-body">
<p class="login-box-msg">登录系统</p>
<form action="/user/login" method="post">
<div class="form-group has-feedback">
<input type="text" class="form-control" placeholder="用户名" name="username" >
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="密码" name="password">
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
<img src="" />
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
<label><input type="checkbox"> 记住 下次自动登录</label>
</div>
</div>
<!-- /.col -->
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat">登录</button>
</div>
<!-- /.col -->
</div>
</form>
<div class="social-auth-links text-center">
<p>- 或者 -</p>
<a href="#" class="btn btn-block btn-social btn-facebook btn-flat"><i class="fa fa-qq"></i> 腾讯QQ用户登录</a>
<a href="#" class="btn btn-block btn-social btn-google btn-flat"><i class="fa fa-weixin"></i> 微信用户登录</a>
</div>
<!-- /.social-auth-links -->
<a href="#">忘记密码</a><br>
<a href="/pages/register.jsp" class="text-center">新用户注册</a>
</div>
<!-- /.login-box-body -->
</div>
<!-- /.login-box -->
<!-- jQuery 2.2.3 -->
<!-- Bootstrap 3.3.6 -->
<!-- iCheck -->
<script src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js"></script>
<script src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js"></script>
<script>
$(function() {
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%' // optional
});
});
</script>
</body>
</html>
register.jsp
<%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2020/7/22
Time: 13:26
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>注册</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<!-- Font Awesome -->
<!-- Ionicons -->
<!-- Theme style -->
<!-- iCheck -->
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css">
</head>
<body class="hold-transition register-page">
<div class="register-box">
<div class="register-logo">
<a href="all-admin-"><b>数据</b>后台管理系统</a>
</div>
<div class="register-box-body">
<p class="login-box-msg">新用户注册</p>
<form action="/user/register" method="post">
<div class="form-group has-feedback">
<input type="text" class="form-control" placeholder="用户名" name="username">
<span class="glyphicon glyphicon-user form-control-feedback"></span>
</div>
<%--
<div class="form-group has-feedback">
<input type="email" class="form-control" placeholder="Email" name="username">
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
--%>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="密码" name="password">
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="确认密码" name="check_password">
<span class="glyphicon glyphicon-log-in form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
<label>
<input type="checkbox"> 我同意 <a href="#">协议</a>
</label>
</div>
</div>
<!-- /.col -->
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat">注册</button>
</div>
<!-- /.col -->
</div>
</form>
<div class="social-auth-links text-center">
<p>- 或者 -</p>
<a href="#" class="btn btn-block btn-social btn-facebook btn-flat"><i class="fa fa-qq"></i> 腾讯QQ用户登录</a>
<a href="#" class="btn btn-block btn-social btn-google btn-flat"><i class="fa fa-weixin"></i> 微信用户登录</a>
</div>
<a href="/pages/login.jsp" class="text-center">我有账号,现在就去登录</a>
</div>
<!-- /.form-box -->
</div>
<!-- /.register-box -->
<!-- jQuery 2.2.3 -->
<!-- Bootstrap 3.3.6 -->
<!-- iCheck -->
<script src="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js"></script>
<script src="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js"></script>
<script>
$(function() {
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%' // optional
});
});
</script>
</body>
</html>
spring.xml springmvc.xml config.xml 就不写了,记得修改数据库密码
本文地址:https://blog.csdn.net/weixin_43889700/article/details/107525736
如对本文有疑问, 点击进行留言回复!!
MFC的静态库.lib、动态库.dll(包含引入库.lib)以及Unicode库示例
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)
javascript如何使用函数random来实现课堂随机点名方法详解
网友评论