74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
# Directory Structure
|
|
|
|
> Backend directory organization for the JSP + Servlet + MySQL application.
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
Future backend code should follow the established B/S layered architecture.
|
|
There is no application source tree yet; the paths and package names below are
|
|
illustrative conventions to use when creating the first application code.
|
|
|
|
---
|
|
|
|
## Suggested Layout
|
|
|
|
```text
|
|
src/main/java/com/mzh/library/
|
|
controller/ Servlet controllers such as BookServlet
|
|
service/ Service interfaces such as BookService
|
|
service/impl/ Business implementations such as BookServiceImpl
|
|
dao/ DAO interfaces such as BookDao
|
|
dao/impl/ MySQL DAO implementations such as BookDaoImpl
|
|
entity/ JavaBeans/entities such as Book, Reader, BorrowRecord
|
|
filter/ Authentication, authorization, encoding filters
|
|
util/ Shared utilities such as JdbcUtil or DateUtil
|
|
src/main/resources/
|
|
db.properties MySQL connection configuration when introduced
|
|
src/main/webapp/
|
|
WEB-INF/web.xml Servlet/filter mappings when annotations are not used
|
|
```
|
|
|
|
Use the package root consistently once the first code is created. If a
|
|
different root package is chosen in IDEA, update this spec in the same change.
|
|
|
|
---
|
|
|
|
## Layer Responsibilities
|
|
|
|
- `controller`: Servlet classes dispatch requests, validate parameters, call
|
|
services, choose JSP forwards or redirects, and return results.
|
|
- `service`: Business workflows including book warehousing/intake, borrowing,
|
|
returning, renewals, inventory status updates, overdue statistics, and
|
|
permission checks.
|
|
- `dao`: CRUD and query access to MySQL. DAOs should not perform presentation
|
|
rendering or multi-step business workflows.
|
|
- `entity`: Plain data objects representing books, categories, readers,
|
|
borrowing records, administrators, roles/permissions, and system logs.
|
|
- `filter`: Cross-cutting web concerns such as login checks, role guards, and
|
|
request encoding.
|
|
- `util`: Small shared helpers only after searching for existing helpers first.
|
|
|
|
---
|
|
|
|
## Naming Conventions
|
|
|
|
- Servlet controllers use names such as `BookServlet`, `ReaderServlet`,
|
|
`BorrowServlet`, and `LoginServlet`.
|
|
- Service interfaces and implementations use names such as `BookService` and
|
|
`BookServiceImpl`.
|
|
- DAO interfaces and implementations use names such as `BookDao` and
|
|
`BookDaoImpl`.
|
|
- Entity names should be singular Java nouns such as `Book`, `BookCategory`,
|
|
`Reader`, `BorrowRecord`, `Administrator`, `RolePermission`, and
|
|
`SystemLog`.
|
|
|
|
---
|
|
|
|
## Boundaries
|
|
|
|
Do not put SQL in JSPs or Servlets. Do not put HTML generation in DAOs or
|
|
services. Keep permission checks in filters/services and keep request parameter
|
|
parsing in controllers.
|