Techs
Techs
1. **Java Servlet**:
- It helps to create mini servlets. we can divide servlet to mini servlets. each
of them will have theirown functions. so if user request then the mini servlet
which has that function will trigger.
- Java Servlets are server-side components that handle requests and generate
responses for web applications running on a web server.
- In this project, Servlets are used to handle HTTP requests from the frontend,
process search queries, interact with the database, and send back search results to
the user's browser.
3. **Web Crawler**:
- A web crawler is a program that systematically browses the internet, typically
for the purpose of indexing web content.
- In this project, the `Crawler` class implements a web crawler using a Depth-
First Search (DFS) algorithm to navigate through web pages.
- The crawler extracts text and links from web pages using the Jsoup library and
stores crawled data in a HashSet.
4. **Indexer**:
- The indexer is a component responsible for indexing the content of crawled web
pages and storing relevant information in a database.
- In this project, the `Indexer` class indexes the title, link, and text content
of web pages and inserts this data into a MySQL database using JDBC.
5. **Jsoup**:
- Jsoup is a Java library for working with HTML documents, parsing,
manipulating, and extracting data from them.
- In this project, Jsoup is used by the web crawler (`Crawler` class) to parse
HTML documents, extract text, and retrieve links from web pages.
### 1. Java:
- Java serves as the primary programming language for the project, providing
robustness, platform independence, and object-oriented programming capabilities.
### 3. Hibernate:
- Hibernate is an ORM (Object-Relational Mapping) framework for Java, used in
conjunction with JPA to simplify database operations by mapping Java objects to
database tables.
- Hibernate provides features like automatic table creation, CRUD operations, and
querying capabilities through JPQL (Java Persistence Query Language).
### 5. Lombok:
- Lombok is a Java library that helps reduce boilerplate code by automatically
generating common code constructs like getters, setters, constructors, and
equals/hashCode methods.
- Annotations like `@Getter`, `@Setter`, `@NoArgsConstructor`, and
`@AllArgsConstructor` from Lombok are used to enhance code readability and
maintainability.