版权声明:此文章为许诗宇所写,如需转载,请写下转载文章的地址 https://blog.csdn.net/xushiyu1996818/article/details/82732957
1 注册界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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 name="viewport" content="width=device-width, initial-scale=1">
<!-- Font Awesome -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/conf1/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/conf1/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/conf1/dist/css/adminlte.min.css">
<!-- Google Font: Source Sans Pro -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" >
</head>
<script type="text/javascript">
function checkForm(){
if($.trim($("#name").val())==""){
alert("请填写名字");
$("#name").focus();
return false;
}
if($("#name").val().length>50){
alert("名字长度不得大于50个字符");
$("#name").focus();
return false;
}
if($.trim($("#username").val())==""){
alert("请填写用户名");
$("#username").focus();
return false;
}
if($("#username").val().length>50){
alert("用户名长度不得大于50个字符");
$("#username").focus();
return false;
}
if($.trim($("#password").val())==""){
alert("请填写密码");
$("#password").focus();
return false;
}
if($("#password").val().length>50){
alert("密码长度不得大于50个字符");
$("#password").focus();
return false;
}
if($.trim($("#studentId").val())==""){
alert("请填写学号");
$("#studentId").focus();
return false;
}
if($("#studentId").val().length>50){
alert("学号长度不得大于50个字符");
$("#studentId").focus();
return false;
}
if($.trim($("#className").val())==""){
alert("请填写班级名字");
$("#className").focus();
return false;
}
if($("#className").val().length>50){
alert("班级名字长度不得大于50个字符");
$("#className").focus();
return false;
}
if($.trim($("#dormitoryNumber").val())==""){
alert("请填写宿舍号");
$("#dormitoryNumber").focus();
return false;
}
if($("#dormitoryNumber").val().length>50){
alert("宿舍号长度不得大于50个字符");
$("#dormitoryNumber").focus();
return false;
}
if($.trim($("#signature").val())==""){
alert("请填写个性签名");
$("#signature").focus();
return false;
}
if($("#signature").val().length>50){
alert("个性签名长度不得大于50个字符");
$("#signature").focus();
return false;
}
if($.trim($("#introduction").val())==""){
alert("请填写自我介绍");
$("#introduction").focus();
return false;
}
if($("#introduction").val().length>5000){
alert("自我介绍长度不得大于5000个字符");
$("#introduction").focus();
return false;
}
if($.trim($("#pic").val())==""){
alert("请上传校园卡照片");
$("#pic").focus();
return false;
}
return true;
}
</script>
<%
if ((String)request.getAttribute("status") == "success") { %>
<script>
alert("${info}");
</script>
<%}%>
<body>
<div class="wrapper">
<jsp:include page="side_buyer.jsp"></jsp:include>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>买家注册</h1>
</div>
</div>
</div><!-- /.container-fluid -->
</section>
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<div class="row">
<!-- left column -->
<div class="col-12">
<!-- general form elements -->
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">自身信息</h3>
</div>
<!-- /.card-header -->
<!-- form start -->
<form role="form" method="post" enctype="multipart/form-data" onSubmit="return checkForm()"
action="${pageContext.request.contextPath}/buyer/register.do">
<div class="card-body">
<div class="form-group">
<label for="exampleInputEmail1">名字</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter ...">
</div>
<div class="form-group">
<label for="exampleInputEmail1">用户名</label>
<input type="text" class="form-control" id="username" name="username" placeholder="Enter ...">
</div>
<div class="form-group">
<label for="exampleInputEmail1">密码</label>
<input type="text" class="form-control" id="password" name="password" placeholder="Enter ...">
</div>
<div class="form-group">
<label>性别</label>
<select class="form-control" id="sex" name="sex">
<option value="男">男</option>
<option value="女">女</option>
</select>
</div>
<div class="form-group">
<label for="exampleInputEmail1">学号</label>
<input type="text" class="form-control" id="studentId" name="studentId" placeholder="Enter ...">
</div>
<div class="form-group">
<label for="exampleInputEmail1">班级</label>
<input type="text" class="form-control" id="className" name="className" placeholder="Enter ...">
</div>
<div class="form-group">
<label for="exampleInputEmail1">宿舍号</label>
<input type="text" class="form-control" id="dormitoryNumber" name="dormitoryNumber" placeholder="Enter ...">
</div>
<div class="form-group">
<label for="exampleInputEmail1">个性签名</label>
<input type="text" class="form-control" id="signature" name="signature" placeholder="Enter ...">
</div>
<div class="form-group">
<label>自我介绍</label>
<textarea class="form-control" id="introduction" name="introduction" rows="10" placeholder="Enter ..."></textarea>
</div>
<div class="form-group">
<label for="pic">校园卡图片</label>
<div class="input-group">
<div class="custom-file">
<input type="file" class="" size="80" id="pic" name="pic"/>
</div>
</div>
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</form>
</div>
<!-- /.card -->
</div>
<!-- /.row -->
</div><!-- /.container-fluid -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<footer class="main-footer">
<div class="float-right d-none d-sm-block">
<b></b>
</div>
<strong>Copyright © 2018 <a href="#">中央财经大学</a>.</strong> All rights
reserved.
</footer>
<!-- Control Sidebar -->
<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->
</div>
<!-- ./wrapper -->
<!-- jQuery -->
<script src="${pageContext.request.contextPath}/conf1/plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="${pageContext.request.contextPath}/conf1/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- FastClick -->
<script src="${pageContext.request.contextPath}/conf1/plugins/fastclick/fastclick.js"></script>
<!-- AdminLTE App -->
<script src="${pageContext.request.contextPath}/conf1/dist/js/adminlte.min.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="${pageContext.request.contextPath}/conf1/dist/js/demo.js"></script>
</body>
</html>
2 登录界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录页面</title>
<link href="${pageContext.request.contextPath}/conf2/css/login.css" rel="stylesheet" rev="stylesheet" type="text/css" media="all" />
<script type="text/javascript" src="${pageContext.request.contextPath}/conf2/js/jQuery1.7.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/conf2/js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/conf2/js/jquery1.42.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/conf2/js/jquery.SuperSlide.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/conf2/js/Validform_v5.3.2_min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var $tab_li = $('#tab ul li');
$tab_li.hover(function(){
$(this).addClass('selected').siblings().removeClass('selected');
var index = $tab_li.index(this);
$('div.tab_box > div').eq(index).show().siblings().hide();
});
});
</script>
<script type="text/javascript">
$(function(){
$(".screenbg ul li").each(function(){
$(this).css("opacity","0");
});
$(".screenbg ul li:first").css("opacity","1");
var index = 0;
var t;
var li = $(".screenbg ul li");
var number = li.size();
function change(index){
li.css("visibility","visible");
li.eq(index).siblings().animate({opacity:0},3000);
li.eq(index).animate({opacity:1},3000);
}
function show(){
index = index + 1;
if(index<=number-1){
change(index);
}else{
index = 0;
change(index);
}
}
t = setInterval(show,8000);
//根据窗口宽度生成图片宽度
var width = $(window).width();
$(".screenbg ul img").css("width",width+"px");
});
</script>
</head>
</script>
<%
if ((String)request.getAttribute("status") == "success") { %>
<script>
alert("${info}");
</script>
<%}%>
<body>
<div id="tab">
<ul class="tab_menu">
<li class="selected">买家登录</li>
<li>卖家登录</li>
<li>管理员登录</li>
</ul>
<div class="tab_box">
<div>
<div class="stu_error_box"></div>
<form action="${pageContext.request.contextPath}/buyer/login.do" method="post" class="stu_login_error">
<div id="username">
<label>用户名:</label>
<input type="text" id="stu_username_hide" name="username" placeholder="输入用户名" />
</div>
<div id="password">
<label>密 码:</label>
<input type="password" id="stu_password_hide" name="password" placeholder="输入密码" />
</div>
<div id="username">
<a href="${pageContext.request.contextPath}/buyer/index.do" >
<span style="float:right;font-weight: bold;color: #3d96c9;">
返回首页        
</span></a>
<a href="${pageContext.request.contextPath}/views/buyer/register.jsp" >
<span style="float:right;font-weight: bold;color: #3d96c9;">
买家注册        
</span></a>
</div>
<div id="login">
<button type="submit">登录</button>
</div>
</form>
</div>
<div class="hide">
<div class="tea_error_box"></div>
<form action="${pageContext.request.contextPath}/seller/login.do" method="post" class="tea_login_error">
<div id="username">
<label>用户名:</label>
<input type="text" id="tea_username_hide" name="username" placeholder="输入用户名" />
</div>
<div id="password">
<label>密 码:</label>
<input type="password" id="tea_password_hide" name="password" placeholder="输入密码" />
</div>
<div id="username">
<a href="${pageContext.request.contextPath}/buyer/index.do" >
<span style="float:right;font-weight: bold;color: #3d96c9;">
返回首页        
</span></a>
<a href="${pageContext.request.contextPath}/views/seller/register.jsp" >
<span style="float:right;font-weight: bold;color: #3d96c9;">
卖家注册        
</span></a>
</div>
<div id="login">
<button type="submit">登录</button>
</div>
</form>
</div>
<div class="hide">
<div class="sec_error_box"></div>
<form action="${pageContext.request.contextPath}/admin/login.do" method="post" class="sec_login_error">
<div id="username">
<label>用户名:</label>
<input type="text" id="sec_username_hide" name="username" placeholder="输入用户名" />
</div>
<div id="password">
<label>密 码:</label>
<input type="password" id="sec_password_hide" name="password" placeholder="输入密码" />
</div>
<div id="username">
<a href="${pageContext.request.contextPath}/buyer/index.do" >
<span style="float:right;font-weight: bold;color: #3d96c9;">
返回首页        
</span></a>
</div>
<div id="login">
<button type="submit">登录</button>
</div>
</form>
</div>
</div>
</div>
<div class="bottom">©2018 中央财经大学</div>
<div class="screenbg">
<ul>
<li><a href="javascript:;"><img src="${pageContext.request.contextPath}/conf2/images/0.jpg"></a></li>
<li><a href="javascript:;"><img src="${pageContext.request.contextPath}/conf2/images/1.jpg"></a></li>
<li><a href="javascript:;"><img src="${pageContext.request.contextPath}/conf2/images/2.jpg"></a></li>
</ul>
</div>
</body>
</html>
3 登录注册的controller,附带退出登录
package com.ssh.controller;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.ssh.po.Activity;
import com.ssh.po.Buyer;
import com.ssh.po.Cart;
import com.ssh.po.Category;
import com.ssh.po.Collection;
import com.ssh.po.DetailedOrder;
import com.ssh.po.Order;
import com.ssh.po.Product;
import com.ssh.po.Seller;
import com.ssh.service.BuyerService;
@Controller
@RequestMapping("/buyer")
public class BuyerController
{
@Autowired
private BuyerService buyerService;
public BuyerService getBuyerService()
{
return buyerService;
}
public void setBuyerService(BuyerService buyerService)
{
this.buyerService = buyerService;
}
@RequestMapping(value="/login")
public ModelAndView login(String username,String password,HttpServletRequest request){
Buyer buyer=buyerService.login(username,password);
if(buyer==null){
ModelAndView modelAndView = new ModelAndView("/login");
modelAndView.addObject("status", "success");
modelAndView.addObject("info", "买家用户名和密码不正确");
return modelAndView;
}
request.getSession().setAttribute("buyer", buyer);
ModelAndView modelAndView = new ModelAndView("/buyer/info_show");
modelAndView.addObject("status", "success");
modelAndView.addObject("info", "用户"+buyer.getName()+"登录成功");
return modelAndView;
}
@RequestMapping(value = "/logout")
public String logout(HttpServletRequest request){
HttpSession session=request.getSession();
session.invalidate();
return "/login";
}
@RequestMapping(value="/register")
public ModelAndView register(Buyer buyer, MultipartFile pic,HttpServletRequest request) throws Exception{
String username=buyer.getUsername();
Buyer now=buyerService.hasUsername(username);
if(now!=null){
ModelAndView modelAndView = new ModelAndView("/buyer/register");
modelAndView.addObject("status", "success");
modelAndView.
addObject("info", "用户名"+username+"已经存在,请重新注册");
return modelAndView;
}
String originalFilename = pic.getOriginalFilename();
if (pic != null && originalFilename != null && originalFilename.length() > 0)
{
String pic_path = "C:\\Pic\\Buyer\\";
String newFileName = "买家_" + buyer.getUsername()+"_"
+ originalFilename;
//+ originalFilename.substring(originalFilename.lastIndexOf("."));
File newFile = new File(pic_path + newFileName);
pic.transferTo(newFile);
buyer.setPicPath(newFileName);
}
buyer.setMoney(10000);
buyerService.register(buyer);
request.getSession().setAttribute("buyer", buyer);
ModelAndView modelAndView = new ModelAndView("/buyer/register");
modelAndView.addObject("status", "success");
modelAndView.addObject("info", "注册成功");
return modelAndView;
}
4 对应的service
@Service
public class BuyerServiceImpl implements BuyerService
{
@Autowired
private BaseDao baseDao;
public BaseDao getBaseDao() {
return baseDao;
}
public void setBaseDao(BaseDao baseDao) {
this.baseDao = baseDao;
}
@Override
public Buyer hasUsername(String username){
return (Buyer)baseDao.
uniqueQuery("from Buyer where username=?0", username);
}
@Override
public void register(Buyer buyer){
baseDao.save(buyer);
}
@Override
public Buyer login(String username,String password){
return (Buyer)baseDao.uniqueQuery("From Buyer Where username=?0 And password =?1", username,password);
}