项目源码_web

main
onlySYstem0331 8 months ago
parent f4c7f62707
commit a659d861a6

@ -0,0 +1,38 @@
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

@ -0,0 +1,21 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myValues">
<value>
<list size="7">
<item index="0" class="java.lang.String" itemvalue="nobr" />
<item index="1" class="java.lang.String" itemvalue="noembed" />
<item index="2" class="java.lang.String" itemvalue="comment" />
<item index="3" class="java.lang.String" itemvalue="noscript" />
<item index="4" class="java.lang.String" itemvalue="embed" />
<item index="5" class="java.lang.String" itemvalue="script" />
<item index="6" class="java.lang.String" itemvalue="String" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
</profile>
</component>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,16 @@

java:S1192"ODefine a constant instead of duplicating this literal "/login_MVC.jsp" 3 times.(ñŒÝ™8®â·ûº2J$d95f52d8-5e05-412b-b5f8-ec6f6702da65

java:S1192)"IDefine a constant instead of duplicating this literal "username" 3 times.(Ö¡Œ‰ûÿÿÿÿ8žŽ•úº2J$7b55891b-0cf8-4920-bd03-a2c91e038e83
¡ java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(áЇøùÿÿÿÿ8 Ž•úº2J$834470af-a104-4a36-92c8-3ce825af923f
¤
java:S1989"aHandle the following exceptions that could be thrown by "forward": ServletException, IOException.(ñŒÝ™8«Ž•úº2J$64ff008c-0003-4492-99a0-cabb4c680d8a
©
java:S1989"aHandle the following exceptions that could be thrown by "forward": ServletException, IOException.(§<>³Ðûÿÿÿÿ8«Ž•úº2J$69a859de-4418-438f-94bc-b41247b47366
¦
java:S1989!"cHandle the following exceptions that could be thrown by "loginUser": ServletException, IOException.(ÿ¶èš8¬Ž•úº2J$1b56fae7-45ef-4717-8961-65010bd5cef4
®
java:S1989#"fHandle the following exceptions that could be thrown by "registerUser": ServletException, IOException.(΅ÿÿÿÿÿ8¬Ž•úº2J$27fd0d02-b044-4ecc-8823-83648d16a45b
š
java:S2226 "XRemove this misleading mutable servlet instance field or make it "static" and/or "final"(´Ž©8°Ž•úº2J$69a9fdf9-7d87-4822-9cf8-143cc9525b44

@ -0,0 +1,8 @@
ˆ java:S112 "FDefine and throw a dedicated exception instead of using a generic one.(¥†É<E280A0>8<>Ü­ûº2J$92554d19-e77b-47df-97b8-050d781f1f19
 java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(¤<>ŠJ8†®Ðúº2J$edcf3a5f-7890-4ad8-bab6-555bdc952f92
x
java:S6437"6Revoke and change this password, as it is compromised.(‡„Ï 8¿®Ðúº2J$2662efc6-7386-4d87-8708-6e7adc3c4ce4
r java:S106!"+Replace this use of System.out by a logger.(ÎØø¥ýÿÿÿÿ8Íâ¨ûº2J$4e0dc0ce-dead-4d7a-9211-bf526242a46f
g
java:S69057"Don't use the query "SELECT *".(”Û¦ÿüÿÿÿÿ8®Ðúº2J$88117e75-da0b-4398-9b33-3c9362b93e1c

@ -0,0 +1,2 @@
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8컫ùº2J$ac1cf941-a7d6-41fd-a02a-9c2ba35ec1b0

@ -0,0 +1,3 @@
˜
java:S1989"PHandle the following exception that could be thrown by "getWriter": IOException.(ïô†<C3B4>úÿÿÿÿ8˜ŽÛ÷º2J$800f8096-6b96-4b3d-a34e-f8cfd4bcd8a4

@ -0,0 +1,2 @@
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8²ßþº2J$2302c146-affd-4326-a0e9-72a0d8d40491

@ -0,0 +1,4 @@
š java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(áЇøùÿÿÿÿJ$f18ae985-77eb-4cfc-b960-0b8bbffce4ae

java:S1989"SHandle the following exception that could be thrown by "sendRedirect": IOException.(÷ßÂËùÿÿÿÿJ$d953b6eb-f336-4b3d-84bb-92e265b2ebb1

@ -0,0 +1,3 @@
£
java:S1989$"aHandle the following exceptions that could be thrown by "forward": ServletException, IOException.(ÿí¶)8ìŒøº2J$8b77c1b1-574c-497d-8990-113ab32f5767

@ -0,0 +1,3 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ8×»åøº2J$adcaf128-56c0-43ba-a76d-d1b37e71b201
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8×»åøº2J$057b0d1c-1901-4a2d-b7c9-9e4908e51131

@ -0,0 +1,20 @@
š
java:S1192Ä"VDefine a constant instead of duplicating this literal "机械工业出版社" 3 times.(¦Ø<C2A6>ú8<>Œ°‰»2J$48222dc7-e4a3-4345-8ac1-1cb4f47391b4
x
java:S6437 "6Revoke and change this password, as it is compromised.(‡„Ï 8å÷Ðùº2J$4c4f836d-54b1-4ae2-b803-96468b14bdc5
b
java:S6905"Don't use the query "SELECT *".(þ̪ 8ê÷Ðùº2J$0765286e-bb93-4545-b9de-b42664b02256
a
java:S6905,"Don't use the query "SELECT *".(‡Í€H8í÷Ðùº2J$ebf1ead0-b692-45a9-af15-1c5f7c22bf76
s java:S106è"+Replace this use of System.out by a logger.(ØË¼óøÿÿÿÿ8¨Œ°‰»2J$3b1c9ea6-a973-49c1-b7de-6e78f4d7b53c
n java:S106ë"+Replace this use of System.out by a logger.(»<>¹Ì8©Œ°‰»2J$496bcaab-98e8-4193-9e41-64f10a2e9d4e
n java:S106ï"+Replace this use of System.out by a logger.(±ï§æ8©Œ°‰»2J$cc555eb3-bccd-425e-aa2c-08c09c5a7616
n java:S106ñ"+Replace this use of System.out by a logger.(äüÃâ8©Œ°‰»2J$b083ae2f-22ad-4e3b-967b-9c508acebd98
s java:S106õ"+Replace this use of System.out by a logger.(ߎÀÞþÿÿÿÿ8©Œ°‰»2J$c90b3edb-b773-4e7b-a6cd-7507707bda80
n java:S106÷"+Replace this use of System.out by a logger.(äüÃâ8©Œ°‰»2J$037855bc-f78a-4970-a87d-bb99796aba7c
n java:S106û"+Replace this use of System.out by a logger.(Ò¢Ç×8ªŒ°‰»2J$6f0e25f4-cfa5-4269-b0c3-39f7e97b80ed
n java:S106ý"+Replace this use of System.out by a logger.(äüÃâ8ªŒ°‰»2J$1d60cc13-0df2-47db-b5e4-181d3e67058e
s java:S106ƒ"+Replace this use of System.out by a logger.(ïöÉèúÿÿÿÿ8ªŒ°‰»2J$ca258fb4-4d55-4008-84fa-1423e8b3dbff
s java:S106"+Replace this use of System.out by a logger.(¸ˆÔöýÿÿÿÿ8ªŒ°‰»2J$c955066e-491d-4eca-a12d-c21016e100b7
n java:S106"+Replace this use of System.out by a logger.(äüÃâ8«Œ°‰»2J$fd5b7997-49d4-4a37-bd81-1aebd94c7ae9

@ -0,0 +1,2 @@
œ java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(ÉäÁˆ8µè“úº2J$c2a14214-3830-4f21-85b0-c9b25797b6c6

@ -0,0 +1,13 @@

java:S1161":Add the "@Override" annotation above this method signature(þ³‚”ûÿÿÿÿ8÷â®ùº2J$f6d00687-e28f-4311-943f-27a453299a12
´
java:S1989"lHandle the following exception that could be thrown by "setCharacterEncoding": UnsupportedEncodingException.(<28>áò‰øÿÿÿÿ8ùâ®ùº2J$43eeea7a-aea0-4bc5-8b89-8be926277a39
Ÿ
java:S1989"\Handle the following exception that could be thrown by "parseDouble": NumberFormatException.(ŠÂê¥8úâ®ùº2J$ecd346e2-884f-444f-b061-0cbbb022fbb7
œ
java:S1989"YHandle the following exception that could be thrown by "parseInt": NumberFormatException.(ÃÒÕ·8úâ®ùº2J$be10453d-8807-4e77-b1ea-6584a676f554

java:S2441$"MMake "List" and its parameters serializable or don't store it in the session.(À¬ìÖýÿÿÿÿ8÷Ÿùº2J$047c5bdc-aca5-4942-bb77-595e32910eb6
u
java:S1989&"SHandle the following exception that could be thrown by "sendRedirect": IOException.(€±öÕùÿÿÿÿ8²Èšˆ»2

@ -0,0 +1,7 @@
ˆ java:S112"FDefine and throw a dedicated exception instead of using a generic one.(¥†É<E280A0>8<>çÛûº2J$919ccba9-acd2-410b-b236-ddd24f8c97be
 java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(¤<>ŠJJ$f12e1ca0-a116-4c34-8e7a-aadad933db35
w
java:S6437"6Revoke and change this password, as it is compromised.(Í<>šòúÿÿÿÿJ$386e4f36-2d48-45e7-b09b-3c80a05b6854
b
java:S6905"Don't use the query "SELECT *".(þ̪ 8Áàþûº2J$293a1cdb-b689-46dc-b59a-ef6983e88dcd

@ -0,0 +1,5 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ8öå÷ùº2J$09c8c006-c076-42c7-b050-ed820b92da34
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8öå÷ùº2J$4e411361-c8ad-4a66-bc38-2ef4d789b5c3
v Web:S6853K"/A form label must be associated with a control.(<28>È©Óûÿÿÿÿ8ü°Ðˆ»2J$a3283baf-a1bf-41ec-89cd-82310237ce4d
q Web:S6853O"/A form label must be associated with a control.(<28>æÚé8ü°Ðˆ»2J$fa6fcd29-17ab-4656-b7d3-b415418b54da

@ -0,0 +1,3 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ­âøº2J$1a1550f2-6ce8-44b2-94bf-7bcb7fc9e4b8
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8ÿ­âøº2J$1075e8c5-e7b5-4aca-a96c-680e9e73fb28

@ -0,0 +1,5 @@
P
java:S1161 ":Add the "@Override" annotation above this method signature(÷¤‹ú
n
java:S1989"SHandle the following exception that could be thrown by "sendRedirect": IOException.(¦ÎªÔÿÿÿÿÿ

@ -0,0 +1,5 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ8¾þùùº2J$2f14d83c-4737-4dea-a2bb-90f10d330c77
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8¾þùùº2J$bef57bc5-25a2-476c-ba4b-a14df38d5363
v Web:S6853J"/A form label must be associated with a control.(<28>È©Óûÿÿÿÿ8ø®Âˆ»2J$fccdbf86-e3f4-47ab-b939-7381c0785483
q Web:S6853N"/A form label must be associated with a control.(<28>æÚé8ø®Âˆ»2J$9c97ca86-eaab-4733-a790-f26459b7df65

@ -0,0 +1,21 @@
<EFBFBD>
java:S1192G"MDefine a constant instead of duplicating this literal "/addBook.jsp" 4 times.(ÑûÙû8Ééýº2J$5705581a-2606-4384-bfd0-525598a78b57
Ž
java:S1192^"FDefine a constant instead of duplicating this literal "error" 3 times.(½äÌËýÿÿÿÿת‰»2J$8b926d9f-c056-4ad9-9aff-6887fc92268b

java:S1192A"FDefine a constant instead of duplicating this literal "books" 3 times.(ä¶ñô8Ééýº2J$d717ffb5-9583-41bb-88a6-ce5c9a2c0845
¡ java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(áЇøùÿÿÿÿ8£†Ìûº2J$b2c8e3ba-208c-4687-b2ec-1985111e9925
i java:S131""Add a default case to this switch.(ë´åÝþÿÿÿÿ8­†Ìûº2J$1ec04239-3d0f-4e18-a3ef-59e8fc9819c2
¦
java:S1989"cHandle the following exceptions that could be thrown by "listBooks": ServletException, IOException.(¥¢ñÛ8®†Ìûº2J$697079e7-cb72-437b-992d-26922b97f837
±
java:S1989 "iHandle the following exceptions that could be thrown by "showAddBookForm": ServletException, IOException.(µñáËýÿÿÿÿ8®†Ìûº2J$3b166e67-b265-4498-9fee-2109e3df6a01
§
java:S1989#"dHandle the following exceptions that could be thrown by "deleteBook": ServletException, IOException.(‹²Úã8®†Ìûº2J$ef2f61d7-f5c2-4cc4-aad7-c9b31c31b818
¤
java:S1989."aHandle the following exceptions that could be thrown by "addBook": ServletException, IOException.(µÿ·Ì8©Ééýº2J$679ee7cb-3261-4f1b-a746-3d1f7f09f6a6
¹
java:S1130s"wRemove the declaration of thrown exception 'javax.servlet.ServletException', as it cannot be thrown from method's body.(ýù±ת‰»2J$0890ed6c-716d-42f0-95b0-81ac78caf5ee

java:S2226"XRemove this misleading mutable servlet instance field or make it "static" and/or "final"(¤ø<C2A4>È8µ†Ìûº2J$fefc6424-9610-42f0-be37-0a993293cd55

@ -0,0 +1,2 @@
 java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(ÉäÁˆJ$60ece8fe-15eb-4107-b228-0cd9d4a5320a

@ -0,0 +1,3 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ8ßàÒûº2J$4f5155b6-f830-45cf-b4ab-2851c2f595ef
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8ßàÒûº2J$ce437215-e1f9-463f-a128-1f5f53fde49b

@ -0,0 +1,3 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ8Äɯùº2J$83785b02-1001-4df4-839c-776902458fa8
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8Åɯùº2J$77f815b1-a629-4b3a-bce5-9968b3afcf78

@ -0,0 +1,2 @@
 java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(ÉäÁˆJ$83fbf896-3e44-4c24-a4e4-cbaa40759ffd

@ -0,0 +1,3 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ8Íüúº2J$450ae604-49f8-4da7-88a4-1bb651ad6064
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8Íüúº2J$6f6d9705-cf88-48ac-ad83-25b84babd76a

@ -0,0 +1,3 @@
<EFBFBD>Web:DoctypePresenceCheck":Insert a <!DOCTYPE> declaration to before this <html> tag.(œ<>÷Ãûÿÿÿÿ8âè™úº2J$330936e9-762d-4493-99c7-279e2ae6d9b1
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8âè™úº2J$eb189698-5f38-4f91-9728-f96249b55d9f

@ -0,0 +1,2 @@
 Web:S5254"@Add "lang" and/or "xml:lang" attributes to this "<html>" element(œ<>÷Ãûÿÿÿÿ8¡†Ôøº2J$09432971-df0c-4d68-835a-51ed528ff707

@ -0,0 +1,61 @@
7
pom.xml,4/4/442292b8a7efeabbe4cc176709b833b1792140ec
^
.src/main/java/org/example/servlet/Student.java,a/9/a9bf0984037a3c5c7ae6b46f58b7e7390e5ce39e
e
5src/main/java/org/example/servlet/StudentServlet.java,2/7/27d1e9446e3bf7aaa97dfc1b07cb5abd3a7ed3fa
d
4src/main/java/org/example/servlet/HealthServlet.java,1/8/183de4a682ba2e0038893ac1ec0186c4d4c28b70
L
src/main/webapp/students.jsp,f/f/ffa8dbf33e10bfe9dc8cd04ae32e8b4e5847d7b1
I
src/main/webapp/login.jsp,8/5/85ee523d01e5e19376db640e846c91bbcb0a1c22
N
src/main/webapp/checkLogin.jsp,a/7/a7f5d4cb6c61c1a3f56ad354b2dae0c100f64731
K
src/main/webapp/success.jsp,2/d/2d2d75af380a99a96fb9b8e95f87e10616b18642
J
src/main/webapp/logout.jsp,e/7/e7a26d636a815ab45217ad388a04d73824e80eff
^
.src/main/java/org/example/servlet/Product.java,1/2/128e2f93541febe88c01a04d48cb56ac29f6e431
O
src/main/webapp/addProduct.html,0/9/09db676caf1c01dcb05af5eee6120f8c64796c0e
h
8src/main/java/org/example/servlet/AddProductServlet.java,6/4/645cab380b5f13ceb77000e2ef600688ba20aec8
N
src/main/webapp/allProduct.jsp,d/9/d92148e02a2078c1d309cf0aee2566e9e82f850b
g
7src/main/java/org/example/servlet/ClearCartServlet.java,8/9/897dd927731b137252f9db6179b57a66d08957fc
^
.src/main/java/org/example/servlet/BookDAO.java,4/4/4472ea3cdf3a629922ee37d5891d3e75795ece34
D
sql/create_table.sql,5/1/510eee06ce2a2d91bf446511ffd106e2d2d7aa07
^
.src/main/java/org/example/MVC/dao/UserDAO.java,0/8/08a919dced6bb16591956b0b3be56dc6d27fa6f7
]
-src/main/java/org/example/MVC/model/User.java,4/f/4f729cf5d05aa5f634d6388c74376107ed8ee087
l
<src/main/java/org/example/MVC/controller/UserController.java,0/1/0180b1b52222467d2a3db2b1be070e545c7ba90c
M
src/main/webapp/login_MVC.jsp,9/d/9df36a5c6fd37f12e7b4cb7f159be3f844d1cd68
M
src/main/webapp/dashboard.jsp,f/0/f00fb19f6df5a95bc0b1cca9e6f775f1ecab26c5
k
;src/main/java/org/example/MVC/controller/LogoutServlet.java,1/c/1cb79762654f870f8d54fd957dd24abe52aa36bf
P
src/main/webapp/register_MVC.jsp,7/a/7ac0c2068859590f009f555544e9ec7fe2a72ae7
]
-src/main/java/org/example/MVC/model/Book.java,d/e/de2f1035d9936a5678e127dc87217fc960adf9c0
^
.src/main/java/org/example/MVC/dao/BookDAO.java,7/2/7277fcdd598ab95cf5a2f2f3bd9c49e3c074e066
l
<src/main/java/org/example/MVC/controller/BookController.java,a/4/a433a6b71c63a2e59534399115b360f61a35c334
L
src/main/webapp/bookList.jsp,1/c/1cb318651a0b26d45abfffd6295a7899ac3922dd
K
src/main/webapp/addBook.jsp,c/9/c981ad8ec25423dbf0f4da89e25263a6436d9404
f
6src/main/java/org/example/MVC/model/BookViewModel.java,c/1/c1c16de72df45ae99c410ff1272348c828a8587e
O
src/main/webapp/welcome_MVC.jsp,f/b/fb6b5c13a92056ce7b544ddad91688ab61a2798e

@ -0,0 +1,61 @@
7
pom.xml,4/4/442292b8a7efeabbe4cc176709b833b1792140ec
^
.src/main/java/org/example/servlet/Student.java,a/9/a9bf0984037a3c5c7ae6b46f58b7e7390e5ce39e
e
5src/main/java/org/example/servlet/StudentServlet.java,2/7/27d1e9446e3bf7aaa97dfc1b07cb5abd3a7ed3fa
d
4src/main/java/org/example/servlet/HealthServlet.java,1/8/183de4a682ba2e0038893ac1ec0186c4d4c28b70
L
src/main/webapp/students.jsp,f/f/ffa8dbf33e10bfe9dc8cd04ae32e8b4e5847d7b1
I
src/main/webapp/login.jsp,8/5/85ee523d01e5e19376db640e846c91bbcb0a1c22
N
src/main/webapp/checkLogin.jsp,a/7/a7f5d4cb6c61c1a3f56ad354b2dae0c100f64731
K
src/main/webapp/success.jsp,2/d/2d2d75af380a99a96fb9b8e95f87e10616b18642
J
src/main/webapp/logout.jsp,e/7/e7a26d636a815ab45217ad388a04d73824e80eff
^
.src/main/java/org/example/servlet/Product.java,1/2/128e2f93541febe88c01a04d48cb56ac29f6e431
O
src/main/webapp/addProduct.html,0/9/09db676caf1c01dcb05af5eee6120f8c64796c0e
h
8src/main/java/org/example/servlet/AddProductServlet.java,6/4/645cab380b5f13ceb77000e2ef600688ba20aec8
N
src/main/webapp/allProduct.jsp,d/9/d92148e02a2078c1d309cf0aee2566e9e82f850b
g
7src/main/java/org/example/servlet/ClearCartServlet.java,8/9/897dd927731b137252f9db6179b57a66d08957fc
^
.src/main/java/org/example/servlet/BookDAO.java,4/4/4472ea3cdf3a629922ee37d5891d3e75795ece34
D
sql/create_table.sql,5/1/510eee06ce2a2d91bf446511ffd106e2d2d7aa07
^
.src/main/java/org/example/MVC/dao/UserDAO.java,0/8/08a919dced6bb16591956b0b3be56dc6d27fa6f7
]
-src/main/java/org/example/MVC/model/User.java,4/f/4f729cf5d05aa5f634d6388c74376107ed8ee087
l
<src/main/java/org/example/MVC/controller/UserController.java,0/1/0180b1b52222467d2a3db2b1be070e545c7ba90c
M
src/main/webapp/login_MVC.jsp,9/d/9df36a5c6fd37f12e7b4cb7f159be3f844d1cd68
M
src/main/webapp/dashboard.jsp,f/0/f00fb19f6df5a95bc0b1cca9e6f775f1ecab26c5
k
;src/main/java/org/example/MVC/controller/LogoutServlet.java,1/c/1cb79762654f870f8d54fd957dd24abe52aa36bf
P
src/main/webapp/register_MVC.jsp,7/a/7ac0c2068859590f009f555544e9ec7fe2a72ae7
]
-src/main/java/org/example/MVC/model/Book.java,d/e/de2f1035d9936a5678e127dc87217fc960adf9c0
^
.src/main/java/org/example/MVC/dao/BookDAO.java,7/2/7277fcdd598ab95cf5a2f2f3bd9c49e3c074e066
l
<src/main/java/org/example/MVC/controller/BookController.java,a/4/a433a6b71c63a2e59534399115b360f61a35c334
L
src/main/webapp/bookList.jsp,1/c/1cb318651a0b26d45abfffd6295a7899ac3922dd
K
src/main/webapp/addBook.jsp,c/9/c981ad8ec25423dbf0f4da89e25263a6436d9404
f
6src/main/java/org/example/MVC/model/BookViewModel.java,c/1/c1c16de72df45ae99c410ff1272348c828a8587e
O
src/main/webapp/welcome_MVC.jsp,f/b/fb6b5c13a92056ce7b544ddad91688ab61a2798e

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WebContextManager">
<option name="state">
<map>
<entry key="file://$PROJECT_DIR$/src/main/webapp/Num2_remember_login/logout.jsp" value="file://$PROJECT_DIR$/src/main/webapp/Num2_remember_login" />
<entry key="file://$PROJECT_DIR$/src/main/webapp/Num_library/index.html" value="file://$PROJECT_DIR$/src/main/webapp/Num_library" />
<entry key="file://$PROJECT_DIR$/src/main/webapp/WEB-INF/studentList.jsp" value="file://$PROJECT_DIR$/src/main/webapp/WEB-INF" />
<entry key="file://$PROJECT_DIR$/src/main/webapp/Web/register.html" value="file://$PROJECT_DIR$/src/main/webapp/Web" />
</map>
</option>
</component>
</project>

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ZYG</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Servlet API依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
</dependencies>
<packaging>war</packaging>
</project>

@ -0,0 +1,63 @@
package org.example.Goods;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@WebServlet("/deleteGoodsById")
public class DeleteGoodsByIdServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String goodsIdStr = request.getParameter("id");
// 先判断获取到的参数是否为空字符串或者为null
if (goodsIdStr == null || goodsIdStr.trim().isEmpty()) {
response.getWriter().print("请输入有效的商品id");
return;
}
int goodsId;
try {
// 尝试将参数转换为整数如果格式不对会抛出NumberFormatException异常
goodsId = Integer.parseInt(goodsIdStr);
} catch (NumberFormatException e) {
response.getWriter().print("输入的商品id格式不正确请输入整数");
return;
}
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JDBCUtil.getConnection();
String sql = "DELETE FROM goods WHERE goods_id =?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, goodsId);
int rowsAffected = preparedStatement.executeUpdate();
if (rowsAffected > 0) {
response.getWriter().print("删除成功");
} else {
response.getWriter().print("未找到对应商品,删除失败");
}
} catch (SQLException e) {
e.printStackTrace();
response.getWriter().print("删除操作出现错误");
} finally {
try {
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,105 @@
package org.example.Goods;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@WebServlet("/insertGoods")
public class InsertGoodsServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置请求编码格式为UTF-8确保能正确接收中文等特殊字符参数
request.setCharacterEncoding("UTF-8");
// 设置响应内容类型为JSON格式编码为UTF-8方便前端统一解析处理返回结果
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
// 获取前端传来的商品信息
String goodsIdStr = request.getParameter("goods_id");
String goodsName = request.getParameter("goods_name");
String specification = request.getParameter("specification");
String productionDateStr = request.getParameter("production_date");
String belongingWarehouseIdStr = request.getParameter("belonging_warehouse_id");
String supplierIdStr = request.getParameter("supplier_id");
// 进行参数完整性校验,如果有参数为空,则返回错误提示给前端
if (goodsIdStr == null || goodsName == null || specification == null || productionDateStr == null || belongingWarehouseIdStr == null || supplierIdStr == null) {
out.print("{\"result\":\"参数不完整,请检查输入信息\",\"success\":false}");
return;
}
int goodsId;
int belongingWarehouseId;
int supplierId;
try {
goodsId = Integer.parseInt(goodsIdStr);
belongingWarehouseId = Integer.parseInt(belongingWarehouseIdStr);
supplierId = Integer.parseInt(supplierIdStr);
// 可以在这里添加额外的合法性校验,比如日期格式是否正确等,示例如下:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.parse(productionDateStr);
} catch (NumberFormatException e) {
out.print("{\"result\":\"商品ID、所属仓库ID或供应商ID格式不正确请输入正确的整数\",\"success\":false}");
return;
} catch (ParseException e) {
out.print("{\"result\":\"生产日期格式不正确请输入正确的日期格式yyyy-MM-dd\",\"success\":false}");
return;
}
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JDBCUtil.getConnection();
// 构建插入商品的SQL语句注意字段顺序要与表结构中的定义一致
String sql = "INSERT INTO goods (goods_id, goods_name, specification, production_date, belonging_warehouse_id, supplier_id) VALUES (?,?,?,?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, goodsId);
preparedStatement.setString(2, goodsName);
preparedStatement.setString(3, specification);
preparedStatement.setString(4, productionDateStr);
preparedStatement.setInt(5, belongingWarehouseId);
preparedStatement.setInt(6, supplierId);
// 执行插入操作executeUpdate()方法返回受影响的行数对于插入操作成功则返回1
int rowsAffected = preparedStatement.executeUpdate();
if (rowsAffected > 0) {
out.print("{\"result\":\"商品插入成功\",\"success\":true}");
} else {
// 插入失败时,尝试获取更详细的数据库错误信息反馈给前端
String errorMessage = "商品插入失败,原因:";
SQLException sqlExceptionCause = preparedStatement.getWarnings();
if (sqlExceptionCause!= null) {
errorMessage += sqlExceptionCause.getMessage();
}
out.print("{\"result\":\"" + errorMessage + "\",\"success\":false}");
}
} catch (SQLException e) {
// 打印异常栈追踪信息(可用于开发调试阶段查看详细错误原因,生产环境建议记录到日志文件)
e.printStackTrace();
// 返回通用的数据库错误提示给前端
out.print("{\"result\":\"插入操作出现数据库错误\",\"success\":false}");
} finally {
try {
// 关闭 PreparedStatement释放相关资源
if (preparedStatement!= null) {
preparedStatement.close();
}
// 关闭数据库连接,释放连接资源
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,30 @@
package org.example.Goods;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCUtil {
private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
public static Connection getConnection() throws SQLException {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
public static void closeConnection(Connection connection) {
if (connection!= null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,63 @@
package org.example.Goods;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/queryAllGoods")
public class QueryAllGoodsServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = JDBCUtil.getConnection();
String sql = "SELECT * FROM goods";
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
StringBuilder jsonBuilder = new StringBuilder("[");
while (resultSet.next()) {
int goodsId = resultSet.getInt("goods_id");
String goodsName = resultSet.getString("goods_name");
String specification = resultSet.getString("specification");
String productionDate = resultSet.getString("production_date");
int belongingWarehouseId = resultSet.getInt("belonging_warehouse_id");
int supplierId = resultSet.getInt("supplier_id");
jsonBuilder.append("{\"goods_id\":\"").append(goodsId).append("\",\"goods_name\":\"").append(goodsName).append("\",\"specification\":\"").append(specification).append("\",\"production_date\":\"").append(productionDate).append("\",\"belonging_warehouse_id\":\"").append(belongingWarehouseId).append("\",\"supplier_id\":\"").append(supplierId).append("\"},");
}
if (jsonBuilder.length() > 1) {
jsonBuilder.deleteCharAt(jsonBuilder.length() - 1);
}
jsonBuilder.append("]");
out.print(jsonBuilder.toString());
} catch (SQLException e) {
e.printStackTrace();
out.print("[]");
} finally {
try {
if (resultSet!= null) {
resultSet.close();
}
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,79 @@
package org.example.Goods;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/queryGoodsByName")
public class QueryGoodsByName extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String warehouseIdStr = request.getParameter("name");
if (warehouseIdStr == null || warehouseIdStr.trim().isEmpty()) {
out.print("[]");
return;
}
int warehouseId;
try {
warehouseId = Integer.parseInt(warehouseIdStr);
} catch (NumberFormatException e) {
out.print("[]");
return;
}
try {
connection = JDBCUtil.getConnection();
String sql = "SELECT * FROM goods WHERE goods_id =?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, warehouseId);
resultSet = preparedStatement.executeQuery();
StringBuilder jsonBuilder = new StringBuilder("[");
while (resultSet.next()) {
int goodsId = resultSet.getInt("goods_id");
String goodsName = resultSet.getString("goods_name");
String specification = resultSet.getString("specification");
String productionDate = resultSet.getString("production_date");
int supplierId = resultSet.getInt("supplier_id");
jsonBuilder.append("{\"goods_id\":\"").append(goodsId).append("\",\"goods_name\":\"").append(goodsName).append("\",\"specification\":\"").append(specification).append("\",\"production_date\":\"").append(productionDate).append("\",\"supplier_id\":\"").append(supplierId).append("\"},");
}
if (jsonBuilder.length() > 1) {
jsonBuilder.deleteCharAt(jsonBuilder.length() - 1);
}
jsonBuilder.append("]");
out.print(jsonBuilder.toString());
} catch (SQLException e) {
e.printStackTrace();
out.print("[]");
} finally {
try {
if (resultSet!= null) {
resultSet.close();
}
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,30 @@
package org.example.boundrecord;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCUtil {
private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
public static Connection getConnection() throws SQLException {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
public static void closeConnection(Connection connection) {
if (connection!= null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,73 @@
package org.example.boundrecord;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/queryAllRecords")
public class QueryAllRecordsServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = JDBCUtil.getConnection();
// 通过关联 goods 表,将 inboundrecord、outboundrecord 和 goods 三个表连接起来查询所有信息
String sql = "SELECT ir.inbound_id, ir.goods_id, g.goods_name, ir.warehouse_id, ir.quantity_in, ir.inbound_date, orr.quantity_out, orr.outbound_date, g.specification, g.production_date, g.belonging_warehouse_id, g.supplier_id " +
"FROM inboundrecord ir " +
"LEFT JOIN goods g ON ir.goods_id = g.goods_id " +
"LEFT JOIN outboundrecord orr ON ir.goods_id = orr.goods_id";
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
StringBuilder jsonBuilder = new StringBuilder("[");
while (resultSet.next()) {
int inboundId = resultSet.getInt("inbound_id");
int goodsId = resultSet.getInt("goods_id");
String goodsName = resultSet.getString("goods_name");
int warehouseId = resultSet.getInt("warehouse_id");
int quantityIn = resultSet.getInt("quantity_in");
String inboundDate = resultSet.getString("inbound_date");
int quantityOut = resultSet.getInt("quantity_out");
String outboundDate = resultSet.getString("outbound_date");
String specification = resultSet.getString("specification");
String productionDate = resultSet.getString("production_date");
int belongingWarehouseId = resultSet.getInt("belonging_warehouse_id");
int supplierId = resultSet.getInt("supplier_id");
jsonBuilder.append("{\"inbound_id\":\"").append(inboundId).append("\",\"goods_id\":\"").append(goodsId).append("\",\"goods_name\":\"").append(goodsName).append("\",\"warehouse_id\":\"").append(warehouseId).append("\",\"quantity_in\":\"").append(quantityIn).append("\",\"inbound_date\":\"").append(inboundDate).append("\",\"quantity_out\":\"").append(quantityOut).append("\",\"outbound_date\":\"").append(outboundDate).append("\",\"specification\":\"").append(specification).append("\",\"production_date\":\"").append(productionDate).append("\",\"belonging_warehouse_id\":\"").append(belongingWarehouseId).append("\",\"supplier_id\":\"").append(supplierId).append("\"},");
}
if (jsonBuilder.length() > 1) {
jsonBuilder.deleteCharAt(jsonBuilder.length() - 1);
}
jsonBuilder.append("]");
out.print(jsonBuilder.toString());
} catch (SQLException e) {
e.printStackTrace();
out.print("[]");
} finally {
try {
if (resultSet!= null) {
resultSet.close();
}
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,82 @@
package org.example.boundrecord;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/queryRecordsByGoodsId")
public class QueryRecordsByGoodsIdServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String goodsIdStr = request.getParameter("goods_id");
if (goodsIdStr == null || goodsIdStr.trim().isEmpty()) {
out.print("[]");
return;
}
try {
connection = JDBCUtil.getConnection();
// 通过商品id关联查询入库记录、出库记录以及商品表的相关信息
String sql = "SELECT ir.inbound_id, ir.goods_id, g.goods_name, ir.warehouse_id, ir.quantity_in, ir.inbound_date, orr.quantity_out, orr.outbound_date, g.specification, g.production_date, g.belonging_warehouse_id, g.supplier_id " +
"FROM inboundrecord ir " +
"LEFT JOIN goods g ON ir.goods_id = g.goods_id " +
"LEFT JOIN outboundrecord orr ON ir.goods_id = orr.goods_id " +
"WHERE ir.goods_id =?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, Integer.parseInt(goodsIdStr));
resultSet = preparedStatement.executeQuery();
StringBuilder jsonBuilder = new StringBuilder("[");
while (resultSet.next()) {
int inboundId = resultSet.getInt("inbound_id");
int goodsId = resultSet.getInt("goods_id");
String goodsName = resultSet.getString("goods_name");
int warehouseId = resultSet.getInt("warehouse_id");
int quantityIn = resultSet.getInt("quantity_in");
String inboundDate = resultSet.getString("inbound_date");
int quantityOut = resultSet.getInt("quantity_out");
String outboundDate = resultSet.getString("outbound_date");
String specification = resultSet.getString("specification");
String productionDate = resultSet.getString("production_date");
int belongingWarehouseId = resultSet.getInt("belonging_warehouse_id");
int supplierId = resultSet.getInt("supplier_id");
jsonBuilder.append("{\"inbound_id\":\"").append(inboundId).append("\",\"goods_id\":\"").append(goodsId).append("\",\"goods_name\":\"").append(goodsName).append("\",\"warehouse_id\":\"").append(warehouseId).append("\",\"quantity_in\":\"").append(quantityIn).append("\",\"inbound_date\":\"").append(inboundDate).append("\",\"quantity_out\":\"").append(quantityOut).append("\",\"outbound_date\":\"").append(outboundDate).append("\",\"specification\":\"").append(specification).append("\",\"production_date\":\"").append(productionDate).append("\",\"belonging_warehouse_id\":\"").append(belongingWarehouseId).append("\",\"supplier_id\":\"").append(supplierId).append("\"},");
}
if (jsonBuilder.length() > 1) {
jsonBuilder.deleteCharAt(jsonBuilder.length() - 1);
}
jsonBuilder.append("]");
out.print(jsonBuilder.toString());
} catch (SQLException e) {
e.printStackTrace();
out.print("[]");
} finally {
try {
if (resultSet!= null) {
resultSet.close();
}
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,63 @@
package org.example.employee;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@WebServlet("/deleteEmployeeById")
public class DeleteEmployeeByIdServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String employeeIdStr = request.getParameter("id");
// 先判断获取到的参数是否为空字符串或者为null
if (employeeIdStr == null || employeeIdStr.trim().isEmpty()) {
response.getWriter().print("请输入有效的员工id");
return;
}
int employeeId;
try {
// 尝试将参数转换为整数如果格式不对会抛出NumberFormatException异常
employeeId = Integer.parseInt(employeeIdStr);
} catch (NumberFormatException e) {
response.getWriter().print("输入的员工id格式不正确请输入整数");
return;
}
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JDBCUtil.getConnection();
String sql = "DELETE FROM employee WHERE employee_id =?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, employeeId);
int rowsAffected = preparedStatement.executeUpdate();
if (rowsAffected > 0) {
response.getWriter().print("删除成功");
} else {
response.getWriter().print("未找到对应员工,删除失败");
}
} catch (SQLException e) {
e.printStackTrace();
response.getWriter().print("删除操作出现错误");
} finally {
try {
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,93 @@
package org.example.employee;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@WebServlet("/insertEmployee")
public class InsertEmployeeServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置请求编码格式为UTF-8确保能正确接收中文等特殊字符参数
request.setCharacterEncoding("UTF-8");
// 设置响应内容类型为JSON格式编码为UTF-8方便前端统一解析处理返回结果
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
// 获取前端传来的员工信息
String employeeIdStr = request.getParameter("employee_id");
String employeeName = request.getParameter("employee_name");
String department = request.getParameter("department");
String contactInfo = request.getParameter("contact_info");
String managedWarehouseIdStr = request.getParameter("managed_warehouse_id");
// 进行参数完整性校验,如果有参数为空,则返回错误提示给前端
if (employeeIdStr == null || employeeName == null || department == null || contactInfo == null || managedWarehouseIdStr == null) {
out.print("{\"result\":\"参数不完整,请检查输入信息\",\"success\":false}");
return;
}
int employeeId;
int managedWarehouseId;
try {
employeeId = Integer.parseInt(employeeIdStr);
managedWarehouseId = Integer.parseInt(managedWarehouseIdStr);
} catch (NumberFormatException e) {
out.print("{\"result\":\"员工ID或管理的仓库ID格式不正确请输入正确的整数\",\"success\":false}");
return;
}
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JDBCUtil.getConnection();
// 构建插入员工的SQL语句注意字段顺序要与表结构中的定义一致
String sql = "INSERT INTO employee (employee_id, employee_name, department, contact_info, managed_warehouse_id) VALUES (?,?,?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, employeeId);
preparedStatement.setString(2, employeeName);
preparedStatement.setString(3, department);
preparedStatement.setString(4, contactInfo);
preparedStatement.setInt(5, managedWarehouseId);
// 执行插入操作executeUpdate()方法返回受影响的行数对于插入操作成功则返回1
int rowsAffected = preparedStatement.executeUpdate();
if (rowsAffected > 0) {
out.print("{\"result\":\"员工插入成功\",\"success\":true}");
} else {
// 插入失败时,尝试获取更详细的数据库错误信息反馈给前端
String errorMessage = "员工插入失败,原因:";
SQLException sqlExceptionCause = preparedStatement.getWarnings();
if (sqlExceptionCause!= null) {
errorMessage += sqlExceptionCause.getMessage();
}
out.print("{\"result\":\"" + errorMessage + "\",\"success\":false}");
}
} catch (SQLException e) {
// 打印异常栈追踪信息(可用于开发调试阶段查看详细错误原因,生产环境建议记录到日志文件)
e.printStackTrace();
// 返回通用的数据库错误提示给前端
out.print("{\"result\":\"插入操作出现数据库错误\",\"success\":false}");
} finally {
try {
// 关闭 PreparedStatement释放相关资源
if (preparedStatement!= null) {
preparedStatement.close();
}
// 关闭数据库连接,释放连接资源
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,30 @@
package org.example.employee;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCUtil {
private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
public static Connection getConnection() throws SQLException {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
public static void closeConnection(Connection connection) {
if (connection!= null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,62 @@
package org.example.employee;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/queryAllEmployees")
public class QueryAllEmployeesServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = JDBCUtil.getConnection();
String sql = "SELECT * FROM employee";
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
StringBuilder jsonBuilder = new StringBuilder("[");
while (resultSet.next()) {
int employeeId = resultSet.getInt("employee_id");
String employeeName = resultSet.getString("employee_name");
String department = resultSet.getString("department");
String contactInfo = resultSet.getString("contact_info");
int managedWarehouseId = resultSet.getInt("managed_warehouse_id");
jsonBuilder.append("{\"employee_id\":\"").append(employeeId).append("\",\"employee_name\":\"").append(employeeName).append("\",\"department\":\"").append(department).append("\",\"contact_info\":\"").append(contactInfo).append("\",\"managed_warehouse_id\":\"").append(managedWarehouseId).append("\"},");
}
if (jsonBuilder.length() > 1) {
jsonBuilder.deleteCharAt(jsonBuilder.length() - 1);
}
jsonBuilder.append("]");
out.print(jsonBuilder.toString());
} catch (SQLException e) {
e.printStackTrace();
out.print("[]");
} finally {
try {
if (resultSet!= null) {
resultSet.close();
}
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,70 @@
package org.example.employee;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/queryEmployeeByName")
public class QueryEmployeeByNameServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String employeeName = request.getParameter("name");
if (employeeName == null || employeeName.trim().isEmpty()) {
out.print("[]");
return;
}
try {
connection = JDBCUtil.getConnection();
String sql = "SELECT * FROM employee WHERE employee_name LIKE?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "%" + employeeName + "%");
resultSet = preparedStatement.executeQuery();
StringBuilder jsonBuilder = new StringBuilder("[");
while (resultSet.next()) {
int employeeId = resultSet.getInt("employee_id");
String department = resultSet.getString("department");
String contactInfo = resultSet.getString("contact_info");
int managedWarehouseId = resultSet.getInt("managed_warehouse_id");
String employeeNameDB = resultSet.getString("employee_name");
jsonBuilder.append("{\"employee_id\":\"").append(employeeId).append("\",\"employee_name\":\"").append(employeeNameDB).append("\",\"department\":\"").append(department).append("\",\"contact_info\":\"").append(contactInfo).append("\",\"managed_warehouse_id\":\"").append(managedWarehouseId).append("\"},");
}
if (jsonBuilder.length() > 1) {
jsonBuilder.deleteCharAt(jsonBuilder.length() - 1);
}
jsonBuilder.append("]");
out.print(jsonBuilder.toString());
} catch (SQLException e) {
e.printStackTrace();
out.print("[]");
} finally {
try {
if (resultSet!= null) {
resultSet.close();
}
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,30 @@
package org.example.login;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/test"; // 修改为你的数据库地址
private static final String USER = "root"; // 修改为你的数据库用户名
private static final String PASSWORD = "123456"; // 修改为你的数据库密码
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
try {
return DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException("数据库连接失败!");
}
}
}

@ -0,0 +1,55 @@
package org.example.login;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
@WebFilter(filterName = "LoginFilter", urlPatterns = {"/Web/start.html", "/Web/*"}) // 过滤需要登录才能访问的资源
public class LoginFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(false);
// 获取请求的URL
String requestURI = request.getRequestURI();
// 检查用户是否已登录
if (session != null && session.getAttribute("username") != null) {
// 用户已登录,继续执行请求
chain.doFilter(req, res);
} else {
// 用户未登录,重定向到登录页面
// 如果是ajax请求则返回特定的状态码
if (requestURI.contains(".do") || "XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
response.setStatus(401); // 返回401状态码表示未授权
} else {
response.sendRedirect(request.getContextPath() + "/index.jsp");
}
}
}
public void init(FilterConfig config) throws ServletException {
// 过滤器初始化
}
public void destroy() {
// 过滤器销毁
}
}

@ -0,0 +1,38 @@
package org.example.login;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private UserDAO userDAO = new UserDAO();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
boolean isLoggedIn = userDAO.login(username, password);
if (isLoggedIn) {
// 登录成功将用户名存储在session中
HttpSession session = request.getSession();
session.setAttribute("username", username);
response.sendRedirect(request.getContextPath() + "/Web/start.html"); // 登录成功跳转到主页
} else {
request.setAttribute("error", "用户名或密码错误!");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
}

@ -0,0 +1,35 @@
package org.example.login;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.io.PrintWriter;
@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
private UserDAO userDAO = new UserDAO();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
boolean isRegistered = userDAO.register(username, password);
if (isRegistered) {
// 注册成功,设置提示信息
request.setAttribute("success", "注册成功,请登录!");
request.getRequestDispatcher("register.jsp").forward(request, response);
} else {
// 注册失败,设置错误信息
request.setAttribute("error", "用户名已存在或注册失败!");
request.getRequestDispatcher("register.jsp").forward(request, response);
}
}
}

@ -0,0 +1,41 @@
package org.example.login;
public class User {
private int id;
private String username;
private String password;
// Constructors
public User() {}
public User(String username, String password) {
this.username = username;
this.password = password;
}
// Getters and Setters
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;
}
}

@ -0,0 +1,45 @@
package org.example.login;
import java.sql.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDAO {
// 注册用户
public boolean register(String username, String password) {
String sql = "INSERT INTO user (username, password) VALUES (?, ?)";
try (Connection conn = DBUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, username);
pstmt.setString(2, password);
pstmt.executeUpdate();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
// 验证登录
public boolean login(String username, String password) {
String sql = "SELECT * FROM user WHERE username = ? AND password = ?";
try (Connection conn = DBUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
return rs.next(); // 如果有结果,说明用户名密码匹配
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}

@ -0,0 +1,63 @@
package org.example.order;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@WebServlet("/deleteOrderById")
public class DeleteOrderByIdServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String orderIdStr = request.getParameter("id");
// 先判断获取到的参数是否为空字符串或者为null
if (orderIdStr == null || orderIdStr.trim().isEmpty()) {
response.getWriter().print("请输入有效的订单id");
return;
}
int orderId;
try {
// 尝试将参数转换为整数如果格式不对会抛出NumberFormatException异常
orderId = Integer.parseInt(orderIdStr);
} catch (NumberFormatException e) {
response.getWriter().print("输入的订单id格式不正确请输入整数");
return;
}
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JDBCUtil.getConnection();
String sql = "DELETE FROM `order` WHERE order_id =?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, orderId);
int rowsAffected = preparedStatement.executeUpdate();
if (rowsAffected > 0) {
response.getWriter().print("删除成功");
} else {
response.getWriter().print("未找到对应订单,删除失败");
}
} catch (SQLException e) {
e.printStackTrace();
response.getWriter().print("删除操作出现错误");
} finally {
try {
if (preparedStatement!= null) {
preparedStatement.close();
}
if (connection!= null) {
JDBCUtil.closeConnection(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save