Java JDBC, Servlet, JSP, Hibernate, and Security Notes
JDBC (Java Database Connectivity)
Purpose: Connect Java applications to a database.
Steps to Connect:
1. Load the Driver (Class.forName() or DriverManager.registerDriver()).
2. Establish Connection (DriverManager.getConnection()).
3. Create Statement (createStatement() or prepareStatement()).
4. Execute Query (executeQuery() for SELECT, executeUpdate() for INSERT/UPDATE/DELETE).
5. Process Results (ResultSet).
6. Close Resources (close() on Connection, Statement, etc.).
Common Classes:
- DriverManager: Manages database connections.
- Connection: Represents a connection to the database.
- Statement and PreparedStatement: Execute SQL queries.
- ResultSet: Handles query results.
Servlets
Purpose: Handle HTTP requests and responses on the server side.
Lifecycle Methods:
1. init(): Called once to initialize.
2. service(): Handles requests and responses (e.g., doGet(), doPost()).
3. destroy(): Cleanup before shutting down.
Java JDBC, Servlet, JSP, Hibernate, and Security Notes
Deployment: Configured in web.xml or using @WebServlet annotation.
Key Interfaces/Classes:
- HttpServlet: Base class for HTTP Servlets.
- HttpServletRequest: Represents client request.
- HttpServletResponse: Represents server response.
JSP (JavaServer Pages)
Purpose: Simplify the creation of dynamic web pages.
Structure: Combines HTML with Java code.
Key Elements:
- Directives (<%@ ... %>): E.g., page, include, taglib.
- Scriptlets (<% ... %>): Embed Java code.
- Expressions (<%= ... %>): Output dynamic content.
- Actions (<jsp:...>): Built-in tags for tasks like including files.
Implicit Objects: Predefined objects like request, response, session, out, etc.
Hibernate
Purpose: ORM (Object-Relational Mapping) framework to map Java objects to database tables.
Java JDBC, Servlet, JSP, Hibernate, and Security Notes
Core Concepts:
- Configuration File (hibernate.cfg.xml): Contains DB connection details.
- SessionFactory: Creates Session objects.
- Session: Main interface for CRUD operations.
- Transaction: Handles DB transactions.
- Query/HQL (Hibernate Query Language): Similar to SQL but uses class names instead of table names.
Annotations:
- @Entity: Marks a class as a persistent entity.
- @Id: Specifies the primary key.
- @Column, @Table: Define table and column details.
Java Security
Purpose: Protect web applications from common threats.
Techniques:
- Authentication and Authorization: Using frameworks like Spring Security or custom filters.
- Data Validation: Prevent SQL Injection (e.g., use PreparedStatement in JDBC).
- Input Sanitization: Remove malicious input to prevent XSS.
- Session Management: Use HTTPS, secure cookies, and proper session timeout.
- Encryption: Use libraries like JCA (Java Cryptography Architecture) for securing data.
Common APIs:
- javax.crypto (for encryption).
Java JDBC, Servlet, JSP, Hibernate, and Security Notes
- java.security (for key management).
- Servlet filters (e.g., for authentication).