基于javaweb的JSP+Servlet图书商城管理系统(java+servlet+jsp+jdbc+tomcat+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

402323471807

412323471807

422323471807

432323471807

442323471807

462323471807

基于javaweb的JSP+Servlet图书商城管理系统(java+servlet+jsp+jdbc+tomcat+mysql)

项目介绍

1
2
3
4
5
6
7
8
前台用户(member表)
user1 123456
user2 123456
user3 123456
user4 123456

后台管理员(sysuser表)
admin 123456

本项目包含前后台,前台为普通用户登录,后台为管理员登录。 管理员角色包含以下功能: 管理员登录,会员信息管理,用户信息管理,资讯管理,链接管理,滚动广告管理,图书类别管理,图书出版社管理,图书管理,图书库存管理,订单管理,留言管理等功能。

用户角色包含以下功能: 按分类查看,查看商品详情,用户登录,加入购物车,提交订单,查看订单,查看站内资讯,提交留言,修改个人资料,新增收货地址等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7、8.0等版本均可; 6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目;

技术栈

Servlet、JSP、JDBC、MySQL5.7/8.0、Tomcat8等

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目; 3. 将项目中util/SimpleDataSource.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/jsp_tushushop/ 登录 用户账号/密码:user/123456 管理员账号/密码:admin/admin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

imgtype = ((FileItem) items.get(1)).getString();
imgtype = Info.getUTFStr(imgtype);

FileItem fileItem = (FileItem) items.get(0);
if (fileItem.getName() != null && fileItem.getSize() != 0) {
if (fileItem.getName() != null
&& fileItem.getSize() != 0) {
File fullFile = new File(fileItem.getName());
img = Info.generalFileName(fullFile.getName());
File newFile = new File(
request.getRealPath("/upfile/") + "/" + img);
try {
fileItem.write(newFile);
} catch (Exception e) {
e.printStackTrace();
}
} else {
}
}
}

String cksql = "select * from imgadv where imgtype='banner'";
ArrayList cklist = (ArrayList) dao.select(cksql);
if (imgtype.equals("banner") && cklist.size() != 0) {
request.setAttribute("no", "");
go("/admin/imgadvadd.jsp", request, response);
} else {
String sql = "insert into imgadv (filename,imgtype) "
+ "values('" + img + "','" + imgtype + "')";
dao.commOper(sql);
request.setAttribute("suc", "");
go("/admin/imgadvadd.jsp", request, response);
}
} catch (Exception e1) {
e1.printStackTrace();
request.setAttribute("no", "");
request.getRequestDispatcher("/admin/imgadvadd.jsp").forward(
request, response);
}
}
// 编辑图片
if (ac.equals("imgadvedit")) {
String id = request.getParameter("id");
HashMap map = dao.select("select * from imgadv where id=" + id)
.get(0);
try {
String img = map.get("filename").toString();
request.setCharacterEncoding("utf-8");
RequestContext requestContext = new ServletRequestContext(
request);
if (FileUpload.isMultipartContent(requestContext)) {

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
       String sub1,sub2,subLowcase1,subLowcase2;
sub1=sub2=subLowcase1=subLowcase2="";
int start=0,end;
boolean done=true;
if(source==null) return null;
if(from==null||from.equals("")||to==null||to.equals(""))
return source;
while(done){
start=sourceLowcase.indexOf(from,start);
if(start==-1) {
break;
}
subLowcase1=sourceLowcase.substring(0,start);
sub1=source.substring(0,start);
end=sourceLowcase.indexOf(to,start);
if(end==-1){
end=sourceLowcase.indexOf("/>",start);
if(end==-1) {
done=false;
}
}
else{
end=end+to.length();
subLowcase2=sourceLowcase.substring(end,source.length());
sub2=source.substring(end,source.length());
sourceLowcase=subLowcase1+subLowcase2;
source=sub1+sub2;
}
//System.out.println(start+" "+end);
}
return source.replaceAll(" ", "");
}


public static void delPic(String path,String img)
{
if(img!=null)
{
if(!img.equals(""))
{
File file1=new File(path + "/" + img);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
	}

buf.append("    ");
if (this.currentPage == this.pageNumber)
buf.append("末页  ");
else
buf.append("<a href='").append(this.path).append("&currentPage=")
.append(this.pageNumber).append(parameter).append(
"' class='ls'>").append("末页")
.append("</a></font>&nbsp;&nbsp;");
// ////////////////////
// for (int i = 0; i < this.pageNumber; i++) {
// if (this.currentPage == i + 1) {
// buf.append("<font color=red>[" + (i + 1) + "]</font>").append(
// "&nbsp;");
// } else {
// buf.append("<a href='").append(this.path).append(
// "&currentPage=").append(i + 1).append(parameter)
// .append("' style='TEXT-DECORATION:none'>").append(
// "[" + (i + 1) + "]").append("</a>&nbsp;");
// }

// }
buf.append("<select class='input-xlarge' onchange=\"javascript:window.location='").append(
this.path).append("&currentPage='+").append(
"this.options[this.selectedIndex].value").append(parameter)
.append("\">");
for (int i = 0; i < this.pageNumber; i++) {
if (this.currentPage == i + 1)
buf.append("<option value=" + (i + 1)
+ " selected=\"selected\">" + (i + 1) + "</option>");
else
buf.append("<option value=" + (i + 1) + ">" + (i + 1)
+ "</option>");

}
buf.append("</select>");
this.info = buf.toString();

}

public Collection getCollection() {
return collection;
}

public long getCount() {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

FileItem fileItem = (FileItem) items.get(0);
if (fileItem.getName() != null && fileItem.getSize() != 0) {
if (fileItem.getName() != null
&& fileItem.getSize() != 0) {
File fullFile = new File(fileItem.getName());
img = Info.generalFileName(fullFile.getName());
File newFile = new File(
request.getRealPath("/upfile/") + "/" + img);
try {
fileItem.write(newFile);
} catch (Exception e) {
e.printStackTrace();
}
} else {
}
}
}
String sql = "update imgadv set filename='" + img
+ "' where id=" + id;
dao.commOper(sql);
request.setAttribute("suc", "");
go("/admin/imgadvedit.jsp?id=" + id, request, response);
} catch (Exception e1) {
e1.printStackTrace();
request.setAttribute("error", "");
request.getRequestDispatcher("/admin/imgadvedit.jsp?id=" + id)
.forward(request, response);
}
}

// 检查用户名唯一性AJAX 会员注册
if (ac.equals("memberunamecheck")) {
String uname = request.getParameter("username");
ArrayList cklist = (ArrayList) dao
.select("select * from member where uname='" + uname
+ "' and delstatus='0' ");
if (cklist.size() > 0) {
out.print("false");

} else {
out.print("true");
}
}

// 检查商品的库存
if (ac.equals("checkgoodkc")) {
String gid = request.getParameter("gid");
String sl = request.getParameter("sl");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
			+ "','"
+ savetime + "')");
request.setAttribute("suc", "操作成功!");
go("/admin/userlist.jsp", request, response);
}

if (ac.equals("useredit")) {
String id = request.getParameter("id");
String userpwd = request.getParameter("userpwd");
String email = request.getParameter("email") == null ? "" : request
.getParameter("email");
String realname = request.getParameter("realname") == null ? ""
: request.getParameter("realname");
String sex = request.getParameter("sex") == null ? "" : request
.getParameter("sex");
String addr = request.getParameter("addr") == null ? "" : request
.getParameter("addr");
String idcard = request.getParameter("idcard") == null ? ""
: request.getParameter("idcard");
String tel = request.getParameter("tel") == null ? "" : request
.getParameter("tel");
String delstatus = "0";
String savetime = Info.getDateStr();
dao.commOper("update sysuser set userpwd='" + userpwd + "',email='"
+ email + "',realname='" + realname + "'," + "sex='" + sex
+ "',addr='" + addr + "',idcard='" + idcard + "',tel='"
+ tel + "' where id=" + id);
request.setAttribute("suc", "操作成功!");
go("/admin/userlist.jsp", request, response);
}

if (ac.equals("pwdedit")) {
String oldpwd = request.getParameter("oldpwd");
String newpwd = request.getParameter("newpwd");
HashMap oldmap = dao.select(
"select * from sysuser where id=" + admin.get("id")).get(0);
if (oldpwd.equals(oldmap.get("userpwd"))) {
dao.commOper("update sysuser set userpwd = '" + newpwd
+ "' where id=" + admin.get("id"));
request.setAttribute("info", "密码修改成功!");
} else {
request.setAttribute("info", "旧密码不正确!");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
	ArrayList cklist = (ArrayList) dao
.select("select * from member where uname='" + uname
+ "' and upass='" + upass + "' and delstatus='0'");
if (cklist.size() > 0) {
session.setAttribute("member", cklist.get(0));
go("/index.jsp", request, response);
} else {
request.setAttribute("no", "用户名或密码错误!");
go("/login.jsp", request, response);
}

}

// 前台退出
if (ac.equals("frontexit")) {
session.removeAttribute("member");
go("/index.jsp", request, response);
}

// 发布商品
if (ac.equals("goodsadd")) {
try {
String goodno = Info.getAutoNo();
String goodname = "";
String fid = "";
String sid = "";
String goodpp = "";
String price = "";
String filename = "";
String note = "";
String shstatus = "通过";
String istj = "no";
String savetime = Info.getDateStr();
String tprice = "";
request.setCharacterEncoding("utf-8");
RequestContext requestContext = new ServletRequestContext(
request);
if (FileUpload.isMultipartContent(requestContext)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(request
.getRealPath("/upfile/") + "/"));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(100 * 1024 * 1024);
List items = new ArrayList();
items = upload.parseRequest(request);
goodname = ((FileItem) items.get(0)).getString();
goodname = Info.getUTFStr(goodname);


项目链接:
https://javayms.github.io?id=590023051907201al
https://javayms.pages.dev?id=590023051907201al