JSP+Servlet+JavaBean+DAOWeb—Student Grade Management System

Blog Summary

     Simply share the achievement management system designed based on JSP+Servlet+JavaBean+DAOWeb architecture~

System Development Overview

     This is a big assignment based on the JSP+Servlet+JavaBean+DAOWeb architecture design to complete the grade management system. It is an examination of the students' comprehensive knowledge application ability and practical ability after learning the Java Web course. The grade will be used as the final assessment grade for this course. Through this assignment, students can get more systematic skills training, so as to consolidate and deepen their understanding of the basic theoretical knowledge of Java Web programming, cultivate students' ability to comprehensively apply the theories they have learned to solve practical problems, and make students with solid computer theory Application-oriented talents with basic and strong independent hands-on ability.

project name: Grade (Student Grade Management System)
Development environment: Jdk8+Tomcat+Idea+MySql
Related technologies: JSP+Servlet+JavaBean+DAOWeb
project description: The project aims to realize the computerized management of students' grades and related personnel's information, which is convenient for school management.
Project functions:
1. Provide login and registration verification, divided into three categories of users
2. Students can inquire about personal information, including personal results inquiries and password modification
3. Teachers can inquire about personal information, entry and inquiry of student results, and modification of personal passwords
4. Administrators can manage users (students and teachers), manage grades, and modify the passwords of students, teachers and themselves
duty description: Independent development, responsible for all writing of technical documents, responsible for all development process 1.
Responsible for the code compilation of student information management module, teacher information management module, student achievement management module, all user management modules, etc.
Document writing, using a variety of word skills and Axure RP to draw flowcharts, etc., ps processing related pictures
Technical Description: Infrastructure technology
1. The project uses front-end technologies such as JQuery and Bootstrap to construct the project
2. This project adopts the infrastructure technology of JSP+Servlet+JavaBean+DAOWeb, and incorporates a small part of the design ideas of the mvc framework, using the aspect-oriented Programming idea
3. The project is simple and practical, login filtering

development requirements

(1) Users are divided into three categories: administrators, teachers and students.
(2) Provide user login verification function;
(3) Students can inquire about personal information, including personal results inquiry and password modification;
(4) Teachers can inquire about personal information, entry and inquiry of student results, and modification of personal password and student password;
(5) The administrator can realize the management of users (students and teachers) (add, delete, modify and check), and manage the class (add, delete, modify and check). Management of grades (adding, deleting, modifying, checking) and modifying the passwords of students, teachers and themselves;

demand analysis

     The student achievement management system can realize the computerized management of student grades and related personnel information, and can provide convenient and fast functions such as student information retrieval, grade query, information modification, etc., and can use student information, teacher information and administrator information. to facilitate the management of the school. The system is therefore required to:

(1) The operation is simple and easy to use.
(2) Reliable data storage and high processing efficiency.
(3) The system is safe and stable.
(4) Advanced development technology, complete functions and strong expansibility.

Overall structure diagram

overall design

Infrastructure understanding diagram

System function description

     In the student achievement management system, the administrator will perform relevant entry of users and grades after login and verification, and if necessary, the administrator will add, delete, modify and check these information. User information, including students, teachers, and administrators; after registration and login verification, students can inquire about personal information and modify passwords; teachers can inquire about student information and personal information, and can modify student information and grades, including personal information information and the corresponding password.

E-R

User function

data flow diagram

Database Design

Data items and data structures

1.用户信息:用户编号、用户名、密码、类型
2.学生信息:学生编号、学生名、班级、年龄、成绩、密码
3.教师信息:教师号、教师名、教师年龄、密码
4.成绩信息:成绩号、学生名、课程名、分数

detailed design

Code directory structure

Summarize

     This big homework depends entirely on myself, so I was a little panicked when I came up, I didn’t understand the idea at all, I didn’t have a clue, and I couldn’t grasp the basic knowledge, so I wanted to learn a little knowledge before writing, and think about the steps. Do it again. Anyway, the whole process is really tangled. In the end, I found that writing code, even if you can’t, you have to write it. Maybe you will have an idea when you write it. Through this time, I found that there are many routines in the program, and many places are similar. As long as I understand its meaning and meaning, everything is simple, so it is very important to learn the basic knowledge! ! !

     During the process, I encountered a lot of inexperienced places:

     1. Unable to connect to the database data: At the beginning, the MySql database was a zip version. I downloaded it but did not configure the environment variables. Later, I was too lazy to configure the environment and found an msi one. Next&finish was done in one step. So far, after the database is done, I will create a database to make a form, and then write the database-related code in the project. After completing the connection to the database, it still does not work. I repeatedly checked the code and database-related settings, but to no avail, so I asked Ge Sanjin for help. Check, he checked the code and the database and found that there was no problem. After a stalemate for a while, he found that the jar package needed to connect to the database did not import the project. This error is actually quite embarrassing. At that time, I wrote the code in a hurry. Also helpless to be laughed at~

     2. The jsp page cannot be jumped to call the servlet: adding the class name of the servlet corresponding to the servlet you want to jump to the path in the action attribute of the form form fails to complete the action successfully. I tried to change the path to an absolute path and a relative path, but nothing The work has paid off, so let's put it aside to write other code. Later, it was solved because of the version problem, and it was all right after changing the version.

     3. Large workload: In fact, personal feeling is the workload of two people. The front-end and back-end design is still a lot of work. It took me a long time to design the front-end. I always change it when I have inspiration. It took a long time to go back and forth, let alone the back-end. I thought the database was connected. It’s almost the same. The result is a complicated jump call. It took me a long time to figure out the entire logical relationship, and then it was hundreds of thousands of lines of code writing. The teacher is really, are you a devil?

     4. A set of small database problems: there will be a problem with timezone, and there is always a problem with the time returned by mysql, so there will be problems with the time zone configured in the url of the jdbc connection, and you need to add "?serverTimezone=GMT% after the original database url path. 2B8" can be solved; the location of the database attribute value in jdbc can be placed in the database connection function. If it is placed outside, it must be set as the global variable static attribute, otherwise an error will be reported; the password must not be forgotten, otherwise the initialization will be very annoying , it is best not to set a password; the SQL statement syntax of the database is not proficient, such as add (insert into table), delete (delete from table where condition), query (select from table where condition), modify (update table set attribute = 'value' where condition) The writing of these statements, I thought I was right, but there are always errors when I put the results in mysql, and I have to modify them every time. more efficient;

     5. Selection of citations: When following the book or copying the network code to the project, there will be an error report and a prompt for revision suggestions. Be careful when choosing a citation. I have chosen randomly a few times, and the selection is still wrong, which is a waste of my heart. no~

     6. Small set of problems in code format: It is not a good thing to get too detailed names. In the login section, I divide reader login and administrator login. At the beginning, I set the reader account as readerName, the password as readerPassword, and the administrator as adminName and adminName respectively. adminPassword, I found out later that it doesn’t work, it’s tiring to code too many letters, so I shortened the names reader and admin to rd and ad, but in fact, there are still quite a lot of codes, alas, who makes the teacher a devil; I have obsessive-compulsive disorder, spaces, brackets The position and everything should be very aligned, which is also a great effort; the name is also a big headache, sometimes it will be messed up when called, the case problem is okay, the bad thing is that some names are taken if they are not detailed, they will not be seen. I understand, the details may be too much code, and it is easy to make mistakes when losing, which is very annoying; quotation marks in SQL statements are very troublesome, single quotation marks and double quotation marks are often difficult to distinguish clearly, I always take the paper first Write clearly in a row, and then write it in a format that you feel comfortable with. Patience is the key;

     7. Overall control of the process: It is actually quite tricky to start the development at the beginning. It can be said that it is impossible to start. I design the front desk first, and then use the front desk to jump through the various processes through simple pages several times, so that I have a few ideas in my mind. A specific system process outline, and then through the front-end process to specifically design and implement a series of back-end functions. Among them, when going through the process, in order to build the outline at the beginning, I put a jump to the path of the web page where the button needs to submit data. Through this, the outline is gradually clearly visible, and then I start to add flesh and blood in the background. angry~

     8. Tomcat problem set: After I implemented the login, registration, addition and deletion functions, suddenly, when writing the query function, tomcat suddenly stopped and could not be started. After removing the project, it could be started again, but not Project import I want you to empty the server for what? ! I tried a lot of methods, and I also consulted the seniors in the big group. From the evening to the middle of the night, I still couldn't fix it, and the writing rhythm was not at all. In this situation, I can only say that the mentality must be good~ For now, I plan to Re-create the project and server, then copy and paste the code. . . Sorry! After creating a new project and copying all the source code, there is still a problem. I carefully thought about what happened before and after the problem. After editing the SelectBookServlet code, it cannot be run. Can deleting this code solve it? So delete, then, solved. . . It's been a few hours of bad things, it turned out that it was just a code error that caused the project to be too large, causing the server to overflow and unable to drive. Of course, I am very happy that it can be resolved in the end. After a few hours of stagnation, I can finally continue to catch up. This lesson reminds us that we should not be in a hurry if there is a problem, don’t just go online to find a solution, think about the problem before and after, and pinpoint the problem, maybe you don’t need to spend so much trouble!

     And yes, there is! very! many! different! often! However, as long as you know what kind of abnormality it is, translate the abnormal code to Baidu, and know the meaning, you can basically think of a solution. As long as you are good at thinking, the abnormality is easy to solve. On the road of coding for so many days, I have learned a lot, and I feel that I have a new understanding of the problems that I did not understand before. The new understanding has a lot of harvest~

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324105967&siteId=291194637
Recommended