1.	Create a web page using the advanced features of CSS Grid. Apply transitions and animations to the contents of the web page.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Minimal CSS Grid</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    body {
      font-family: Arial, sans-serif;
      background: #f4f4f4;
      color: #333;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
    }
    .container {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      width: 80%;
      max-width: 800px;
    }

    .item {
      background: #ffffff;
      border: 1px solid #ddd;
      border-radius: 5px;
      padding: 20px;
      text-align: center;
      transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .item:hover {
      transform: scale(1.05);
      background-color: #f0f8ff;
    }
    @keyframes fadeIn {
      from {
        opacity: 0;
      }
      to {
        opacity: 1;
      }
    }
    .container {
      animation: fadeIn 1s ease-in-out;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item">Item 1</div>
    <div class="item">Item 2</div>
    <div class="item">Item 3</div>
    <div class="item">Item 4</div>
    <div class="item">Item 5</div>
    <div class="item">Item 6</div>
  </div>
</body>
</html>
2.	Create a web page using the advanced features of CSS Flexbox. Apply transitions and animations to the contents of the web page.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Basic Flexbox with Animation</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background: #f0f0f0;
            font-family: Arial, sans-serif;
        }

        .container {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-around;
            gap: 20px;
        }
        .card {
            background: #fff;
            padding: 20px;
            text-align: center;
            border-radius: 8px;
            width: 200px;
            transition: transform 0.3s ease;
        }
        .card:hover {
            transform: scale(1.05);
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="card">
            <h3>Card 1</h3>
            <p>Some interesting text.</p>
        </div>
        <div class="card">
            <h3>Card 2</h3>
            <p>More details here.</p>
        </div>
        <div class="card">
            <h3>Card 3</h3>
            <p>Additional content.</p>
        </div>
    </div>
</body>
</html>
3.	Demonstrate pop-up box alerts, confirm, and prompt using JavaScript.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>JavaScript Pop-ups</title>
</head>
<body>
  <button onclick="showAlert()">Show Alert</button>
  <button onclick="showConfirm()">Show Confirm</button>
  <button onclick="showPrompt()">Show Prompt</button>
  <script>
    function showAlert() {
      alert("This is a simple alert box!");
    }
    function showConfirm() {
      const result = confirm("Do you want to proceed?");
      if (result) {
        alert("You chose to proceed!");
      } else {
        alert("You chose to cancel.");
      }
    }
    function showPrompt() {
      const name = prompt("What is your name?");
      if (name) {
        alert(`Hello, ${name}! Welcome!`);
      } else {
        alert("You didn't enter a name.");
      }
    }
  </script>
</body>
</html>
4.	Demonstrate Responsive Web Design using Media Queries to create a webpage.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Simple Media Query</title>
  <style>
    body {
      color: black;
    }
    @media (max-width: 600px) {
      body {
        color: blue;
      }
    }
  </style>
</head>
<body>
  Resize the browser to see the text color change!
</body>
</html>
5.	Write a JavaScript program to demonstrate the working of callbacks, promises, and async/await.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>JavaScript Callbacks, Promises, Async/Await</title>
</head>
<body>
  <h1>JavaScript Callbacks, Promises, and Async/Await Demo</h1>
  <script>
    // Callback Example
    function doSomething(callback) {
      setTimeout(() => {
        callback("Callback done!");
      }, 1000);
    }
    doSomething(console.log);
    // Promise Example
    let promise = new Promise((resolve, reject) => {
      setTimeout(() => resolve("Promise resolved!"), 1000);
    });
    promise.then(console.log);
    // Async/Await Example
    async function asyncFunction() {
      let result = await promise;
      console.log(result);
    }
    asyncFunction();
  </script>
</body>
</html>
6.	Write an XML file that displays book information with the following fields: Title of the book, Author Name, ISBN number, Publisher name, Edition, and Price. Define a Document Type Definition (DTD) to validate the XML document created above.
Book.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "books.dtd">
<books>
  <book>
    <title>The Great Gatsby</title>
    <author>F. Scott Fitzgerald</author>
    <isbn>9780743273565</isbn>
    <publisher>Scribner</publisher>
    <edition>1st</edition>
    <price>10.99</price>
.
  </book>
  <book>
    <title>1984</title>
    <author>George Orwell</author>
    <isbn>9780451524935</isbn>
    <publisher>Signet Classic</publisher>
    <edition>Revised</edition>
    <price>9.99</price>
  </book>
</books>

Book.dtd

<!ELEMENT books (book+)>
<!ELEMENT book (title, author, isbn, publisher, edition, price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT edition (#PCDATA)>
<!ELEMENT price (#PCDATA)>
7.	Write an XML file that displays book information with the following fields: Title of the book, Author Name, ISBN number, Publisher name, Edition, and Price. Define an XML schema to validate the XML document created above.
Books.xml
<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com/books books.xsd">
  <book>
    <title>The Great Gatsby</title>
    <author>F. Scott Fitzgerald</author>
    <isbn>9780743273565</isbn>
    <publisher>Scribner</publisher>
    <edition>1st</edition>
    <price>10.99</price>
  </book>
  <book>
    <title>1984</title>
    <author>George Orwell</author>
    <isbn>9780451524935</isbn>
    <publisher>Signet Classic</publisher>
    <edition>Revised</edition>
    <price>9.99</price>
  </book>
</books>

Books.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/books" targetNamespace="http://example.com/books" elementFormDefault="qualified">
  
  <!-- Define the root element -->
  <xs:element name="books">
    <xs:complexType>
      <xs:sequence>
        <!-- The 'book' element can occur one or more times -->
        <xs:element name="book" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="title" type="xs:string"/>
              <xs:element name="author" type="xs:string"/>
              <xs:element name="isbn" type="xs:string"/>
              <xs:element name="publisher" type="xs:string"/>
              <xs:element name="edition" type="xs:string"/>
              <xs:element name="price" type="xs:decimal"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

8.	Write a Java application to validate the XML document using the DOM parser.
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import org.w3c.dom.Document; import org.xml.sax.SAXException;  
import java.io.File; public class DOMDTDValidator {     
public static void main(String[] args) {         
try {             
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();             
factory.setValidating(true);              
factory.setNamespaceAware(false);              
DocumentBuilder builder = factory.newDocumentBuilder();             
File xmlFile = new File("books.xml");             
builder.parse(xmlFile);             
System.out.println("The XML document is valid.");         
} catch (SAXException e) {             
System.out.println("Validation error: " + e.getMessage());         
} catch (Exception e) {             
System.out.println("Error: " + e.getMessage());         
}     } }
 
books.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE books SYSTEM "books.dtd"> 
<books>     
<book>         
<title>The Great Gatsby</title>         
<author>F. Scott Fitzgerald</author>         
<isbn>9780743273565</isbn>         
<price>10.99</price>     
</book>     
<book>         
<title>1984</title>         
<author>George Orwell</author>         
<isbn>9780451524935</isbn>         
<price>9.99</price>     
</book> 
</books> 


Books.dtd

<!ELEMENT books (book+)> 
<!ELEMENT book (title, author, isbn, price)> 
<!ELEMENT title (#PCDATA)> 
<!ELEMENT author (#PCDATA)> 
<!ELEMENT isbn (#PCDATA)> 
<!ELEMENT price (#PCDATA)> 





9.	Write a Java application to validate the XML document using the SAX parser.


Java code

import org.xml.sax.SAXException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.io.File;

public class SAXValidationExample {
    public static void main(String[] args) {
        try {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            factory.setValidating(true); 
            factory.setNamespaceAware(true); 
            SAXParser saxParser = factory.newSAXParser();
            saxParser.parse(new File("example.xml"), new SimpleHandler());
            System.out.println("XML is valid.");
        } catch (SAXException e) {
            System.out.println("Validation error: " + e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


books.xml
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE books SYSTEM "books.dtd"> 
<books>     
<book>         
<title>The Great Gatsby</title>         
<author>F. Scott Fitzgerald</author>        
<isbn>9780743273565</isbn>         
<price>10.99</price>     
</book>     
<book>         
<title>1984</title>         
<author>George Orwell</author>         
<isbn>9780451524935</isbn>         
<price>9.99</price>     
</book> </books>


Books.dtd
<!ELEMENT books (book+)> <!ELEMENT book (title, author, isbn, price)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT isbn (#PCDATA)> <!ELEMENT price (#PCDATA)> 
All three in same folder complie and run the java file

   
10. Write a Java program to access the metadata of an SQL database.
import java.sql.*;

public class DatabaseMetadataDemo {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/your_database_name"; // Replace with your DB name
        String user = "root"; // Replace with your DB username
        String password = "your_password"; // Replace with your DB password

        try (Connection conn = DriverManager.getConnection(url, user, password)) {
            DatabaseMetaData metaData = conn.getMetaData();
            System.out.println("Database: " + metaData.getDatabaseProductName());
            System.out.println("Version: " + metaData.getDatabaseProductVersion());

            System.out.println("\nTables:");
            ResultSet tables = metaData.getTables(null, null, "%", new String[]{"TABLE"});
            while (tables.next()) {
                System.out.println("- " + tables.getString("TABLE_NAME"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

11.Java script scientific Calculator
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Simple Calculator</title>
</head>
<body>
    <h2>Simple Calculator</h2>
    <input type="text" id="result" disabled>
    <br>
    <button onclick="appendToResult('1')">1</button>
    <button onclick="appendToResult('2')">2</button>
    <button onclick="appendToResult('3')">3</button>
    <button onclick="appendToResult('+')">+</button>
    <br>
    <button onclick="appendToResult('4')">4</button>
    <button onclick="appendToResult('5')">5</button>
    <button onclick="appendToResult('6')">6</button>
    <button onclick="appendToResult('-')">-</button>
    <br>
    <button onclick="appendToResult('7')">7</button>
    <button onclick="appendToResult('8')">8</button>
    <button onclick="appendToResult('9')">9</button>
    <button onclick="appendToResult('*')">*</button>
    <br>
    <button onclick="appendToResult('0')">0</button>
    <button onclick="clearResult()">C</button>
    <button onclick="calculateResult()">=</button>
    <button onclick="appendToResult('/')">/</button>

    <script>
        function appendToResult(value) {
            document.getElementById('result').value += value;
        }

        function clearResult() {
            document.getElementById('result').value = '';
        }

        function calculateResult() {
            const resultField = document.getElementById('result');
            try {
                resultField.value = eval(resultField.value);
            } catch (e) {
                resultField.value = 'Error';
            }
        }
    </script>
</body>
</html>

12.Demonstrate Servlet Lifecyle by implementing Servlet Interface
import javax.servlet.*; 
import java.io.IOException; 
import java.io.PrintWriter;  
public class MyServlet implements Servlet {   
public void init(ServletConfig config) throws ServletException {}   
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {     
PrintWriter out = res.getWriter();     
out.println("Hello Servlet Lifecycle!");   }   
public void destroy() {}   
public ServletConfig getServletConfig() { return null; }   
public String getServletInfo() { return null; } } 



13.Demonstrate Creation of Servlet program using Http Servlet class.

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.IOException; 
import java.io.PrintWriter;  
public class HelloServlet extends HttpServlet {   
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {     
PrintWriter out = response.getWriter();     out.println("Hello from HttpServlet!");   } }




14.Write a java program to establish a connection to a database and execute simple SQL queries.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class SimpleDatabaseConnection {
    public static void main(String[] args) {
        // Database credentials
        String url = "jdbc:mysql://localhost:3306/your_database_name"; // Replace 'your_database_name'
        String user = "root"; // Replace 'root' with your username
        String password = "your_password"; // Replace 'your_password'

        // SQL query
        String query = "SELECT * FROM your_table_name"; // Replace 'your_table_name'

        // Establish connection and execute query
        try (Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(query)) {

            System.out.println("Connected to the database!");

            // Process the result set
            while (rs.next()) {
                int id = rs.getInt("id"); // Replace 'id' with your column name
                String name = rs.getString("name"); // Replace 'name' with your column name
                System.out.println("ID: " + id + ", Name: " + name);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

15.Write a java program to demonstrate the usage of JDBC in performing various DML statements using prepared statements.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JdbcDmlDemo {
    public static void main(String[] args) {
        // Database connection details
        String url = "jdbc:mysql://localhost:3306/your_database_name"; // Replace with your DB name
        String user = "root"; // Replace with your DB username
        String password = "your_password"; // Replace with your DB password

        // SQL queries
        String insertQuery = "INSERT INTO users (name, email) VALUES (?, ?)";
        String updateQuery = "UPDATE users SET email = ? WHERE id = ?";
        String deleteQuery = "DELETE FROM users WHERE id = ?";

        try (Connection conn = DriverManager.getConnection(url, user, password)) {
            System.out.println("Connected to the database!");

            // INSERT operation
            try (PreparedStatement insertStmt = conn.prepareStatement(insertQuery)) {
                insertStmt.setString(1, "John Doe");
                insertStmt.setString(2, "john.doe@example.com");
                int rowsInserted = insertStmt.executeUpdate();
                System.out.println(rowsInserted + " row(s) inserted.");
            }

            // UPDATE operation
            try (PreparedStatement updateStmt = conn.prepareStatement(updateQuery)) {
                updateStmt.setString(1, "john.newemail@example.com");
                updateStmt.setInt(2, 1); // Assuming user with ID 1 exists
                int rowsUpdated = updateStmt.executeUpdate();
                System.out.println(rowsUpdated + " row(s) updated.");
            }

            // DELETE operation
            try (PreparedStatement deleteStmt = conn.prepareStatement(deleteQuery)) {
                deleteStmt.setInt(1, 1); // Assuming user with ID 1 exists
                int rowsDeleted = deleteStmt.executeUpdate();
                System.out.println(rowsDeleted + " row(s) deleted.");
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

16.Write a java based application to demonstrate the Scrollable Result sets.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ScrollableResultSetDemo {
    public static void main(String[] args) {
        // Database connection details
        String url = "jdbc:mysql://localhost:3306/your_database_name"; // Replace with your DB name
        String user = "root"; // Replace with your DB username
        String password = "your_password"; // Replace with your DB password

        // SQL query
        String query = "SELECT * FROM users";

        try (Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement(
                     ResultSet.TYPE_SCROLL_INSENSITIVE, // Allows scrolling
                     ResultSet.CONCUR_READ_ONLY          // Read-only ResultSet
             );
             ResultSet rs = stmt.executeQuery(query)) {

            System.out.println("Connected to the database!");

            // Move to the last row
            if (rs.last()) {
                System.out.println("Last Record:");
                System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
            }

            // Move to the first row
            if (rs.first()) {
                System.out.println("\nFirst Record:");
                System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
            }

            // Move to a specific row (e.g., second row)
            if (rs.absolute(2)) {
                System.out.println("\nSecond Record:");
                System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
            }

            // Iterate backward from the end
            System.out.println("\nIterating Backward:");
            rs.afterLast(); // Move to after the last row
            while (rs.previous()) {
                System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

17.Write a program to accept request parameters from a form and generate the response.

<!DOCTYPE html>
<html>
<head>
    <title>Form Example</title>
</head>
<body>
    <h1>Enter Your Details</h1>
    <form action="FormHandler" method="POST">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name" required>
        <br><br>
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required>
        <br><br>
        <button type="submit">Submit</button>
    </form>
</body>
</html>

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// Map the servlet to a URL
@WebServlet("/FormHandler")
public class FormHandler extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Set the response content type
        response.setContentType("text/html");
        // Retrieve form parameters
        String name = request.getParameter("name");
        String email = request.getParameter("email");
        // Generate the response
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head><title>Form Response</title></head>");
        out.println("<body>");
        out.println("<h1>Form Submitted Successfully</h1>");
        out.println("<p>Name: " + name + "</p>");
        out.println("<p>Email: " + email + "</p>");
        out.println("</body>");
        out.println("</html>");
    }
}
Jdbc
folder->settings icon->commad pallete->in search bar java: create project..->no build tools->a window will be opend selcr the option “select project location”->type project name(click enter new window will be opened)->in src folder you’ll have app.java file->rename the file and give the java code here (in app.java)->id run not suitable exception found error(mysql is not connected)->in search “mysql 8.0 command client”->java projects in vs code palette->select reference libraries->this pc,program files*86,my sql foler,connector (select t he jar file)->run the java code