一、系统简介
本项目采用eclipse工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。
系统一共分为2个角色分别是:管理员,用户
二、模块简介
管理员
1、登录
2、个人信息管理
3、用户管理
4、类型管理
5、作家管理
6、音乐管理
7、评论管理
用户
1、登录注册
2、浏览网站
3、查看歌手
4、查看音乐
5、听音乐
6、收藏音乐
7、评论音乐
项目简介:
难度等级:✩✩✩
用户类型:2角色(管理员,用户)
设计模式:MVC
项目架构:B/S架构
开发语言:Java语言
前端技术:HTML、CSS、JS、JQuery等
后端技术:JSP、servlet框架
运行环境:Windows7或10、JDK1.8
运行工具:本系统采用Eclipse开发,仅支持Eclipse运行,不支持MyEclipse和IDEA运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。(如若想用idea运行,需要转换!!!!)
数 据 库:MySQL5.5/5.7/8.0版本
运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
是否基于Maven环境:否
是否采用框架:是
数据库表数量:7张表
JSP页面数量:20多张
是否有分页:有分页
相关截图
相关代码
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>音乐后台管理系统</title>
<link href="resource/css/bootstrap.min.css" rel="stylesheet">
<link href="resource/css/a3common.css" rel="stylesheet">
<link rel="stylesheet" href="resource/css/login.css">
<link rel="stylesheet" href="resource/css/font_43459_lbtux0zjkr6yldi.css">
</head>
<div id="main" class="main-warp" style="height: 100%;">
<div class="main-content">
<div class="formDiv">
<h2 class="text-center">登录</h2>
<form id="loginForm" action="LoginServlet?action=login" method="post">
<div class="dataform" >
<div class="input-warp gap">
<span class="input-icon iconfont icon-yonghu1"></span>
<input id="userName" name="userName" type="text" class="inputs" placeholder="手机号码或登录账号" maxlength="64">
</div>
<span id="userNameErr" style="color:red" >${msg}</span>
<div class="input-warp gap">
<span class="input-icon iconfont icon-baomi"></span>
<input class="inputs" type="password" name="password" placeholder="密码" id="password" maxlength="20">
</div>
<div class=" gap">
<span class="input-icon ">角色</span>
<select name="type" class="select">
<option value="1">管理员</option>
<option value="2">用户</option>
</select>
</div>
<div class="btn-warp gap">
<div class="text-center">
<button type="submit" id="btnLogin" class="btn btn-block lgbtn blue">登录</button>
</div>
</div>
<div class="gap">
<div class="pull-right" style="margin-top: -7px">
|<a type="button" id ="addUser" class="link">新用户注册</a></div>
<div class="pretty-box">
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<style>
.copyrights{text-indent:-9999px;height:0;line-height:0;font-size:0;overflow:hidden;}
</style>
<div class="copyrights" id="links20210126">
Collect from <a href="http://www.cssmoban.com/" title="网站模板">模板之家</a>
<a href="https://www.chazidian.com/" title="查字典">查字典</a>
</div>
<script src="resource/component/layui/layui.js"></script>
<script src="resource/component/pear/pear.js"></script>
<script>
layui.use(['layer', 'form','jquery'], function(){
var form = layui.form,
layer = layui.layer,
$= layui.jquery;
form.render();//这句一定要加,占坑
$('#addUser').on("click",function(e){
layer.open({
//调整弹框的大小
area:['500px','800px'],
shadeClose:true,//点击旁边地方自动关闭
//动画
anim:2,
//弹出层的基本类型
type: 2,
title: '注册用户',
//刚才定义的弹窗页面
content: 'UserServlet?action=toRegister', //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']
});
});
$("#btnLogin").on("click", function() {
var userName = $("#userName").val().trim(); // trim()去除空格
var password = $("#password").val().trim();
var type = $("#type").val();
if(userName == ""){
layer.msg('用户名或者手机号不能为空!');
return false;
}
if(password == ""){
layer.msg('密码不能为空!');
return false;
}
if(type == ""){
layer.msg('请选择角色!');
return false;
}
});
setTimeout(function(){ $("#userNameErr").html("")},3000);
});
</script>
</body>
</html>
protected void login(HttpServletRequest request, HttpServletResponse response) throws Exception {//璺宠浆鍒版坊鍔犵敤鎴风晫锟??
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String type = request.getParameter("type");
if(type != null && type.equals("1")){//admin
Admin admin = service.selectAdmin(userName,password);
if (admin == null) {
request.setAttribute("msg","管理员不存在或者密码错误?"); //缁戝畾鍙傛暟
request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request,response);
} else {
request.getSession().setAttribute("flag",1);
request.getSession().setAttribute("admin",admin);
request.getRequestDispatcher("/WEB-INF/views/main.jsp").forward(request,response);
}
}else if(type != null && type.equals("2")){//瀛︾敓
User ss = service.selectUser(userName,password);
if (ss == null) {
request.setAttribute("msg","用户不存在或者密码错误?"); //缁戝畾鍙傛暟
request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request,response);
} else {
request.getSession().setAttribute("flag",2);
request.getSession().setAttribute("user",ss);
response.sendRedirect(request.getContextPath()+"/IndexServlet?action=toIndex");
}
}else{
request.setAttribute("msg","璇烽?夋嫨鐧诲綍瑙掕壊");
request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request,response);
}
}