Snippets Collections
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class InsertUserServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Retrieve form data
        String username = request.getParameter("username");
        String email = request.getParameter("email");

        // Database connection parameters
        String jdbcUrl = "jdbc:mysql://localhost:3306/your_database";
        String dbUser = "your_username";
        String dbPassword = "your_password";

        Connection conn = null;
        PreparedStatement pstmt = null;

        try {
            // Load the JDBC driver (optional in recent versions)
            Class.forName("com.mysql.cj.jdbc.Driver");

            // Connect to the database
            conn = DriverManager.getConnection(jdbcUrl, dbUser, dbPassword);

            // SQL insert statement
            String sql = "INSERT INTO users (username, email) VALUES (?, ?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, username);  // Set username parameter
            pstmt.setString(2, email);     // Set email parameter

            // Execute the insert
            int rowsInserted = pstmt.executeUpdate();

            // Send a response
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            if (rowsInserted > 0) {
                out.println("<h1>User added successfully!</h1>");
            } else {
                out.println("<h1>Failed to add user.</h1>");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) pstmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
------------<html>
  <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Add User</title>
</head>
<body>
    <h2>Add New User</h2>
    <form action="InsertUserServlet" method="POST">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required><br><br>
        
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required><br><br>
        
        <input type="submit" value="Add User">
    </form>
</body>
</html>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class UpdateEmailServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Get user input from request
        String userId = request.getParameter("id");
        String newEmail = request.getParameter("email");

        // Database connection parameters
        String jdbcUrl = "jdbc:mysql://localhost:3306/your_database";
        String dbUser = "your_username";
        String dbPassword = "your_password";

        Connection conn = null;
        PreparedStatement pstmt = null;

        try {
            // Step 1: Load the JDBC driver (optional in recent JDBC versions)
            Class.forName("com.mysql.cj.jdbc.Driver");

            // Step 2: Establish connection to the database
            conn = DriverManager.getConnection(jdbcUrl, dbUser, dbPassword);

            // Step 3: Create SQL update query
            String sql = "UPDATE users SET email = ? WHERE id = ?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, newEmail); // set email parameter
            pstmt.setInt(2, Integer.parseInt(userId)); // set id parameter

            // Step 4: Execute update
            int rowsUpdated = pstmt.executeUpdate();

            // Step 5: Handle response based on update result
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            if (rowsUpdated > 0) {
                out.println("<h1>Email updated successfully for user ID: " + userId + "</h1>");
            } else {
                out.println("<h1>No user found with ID: " + userId + "</h1>");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                // Close resources
                if (pstmt != null) pstmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
---<html>
  <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Update Email</title>
</head>
<body>
    <h2>Update User Email</h2>
    <form action="UpdateEmailServlet" method="POST">
        <label for="id">User ID:</label>
        <input type="text" id="id" name="id" required><br><br>
        
        <label for="email">New Email:</label>
        <input type="email" id="email" name="email" required><br><br>
        
        <input type="submit" value="Update Email">
    </form>
</body>
</html>
Step 1: Create a New Java Project
Create a New Project:
Click on File > New > Java Project.
In the dialog that appears, enter a project name (e.g., XMLValidationProject).
Uncheck the option to create a module-info.java file if it appears.
Click Finish.
Step 2: Create the DTD and XML Files
Create a DTD File:
Right-click on the src folder in your new project in the Package Explorer.
Select New > File.
Name it 'customers.dtd' and click Finish.
Open customers.dtd and add the following content:
xml
<!ELEMENT customers (customer+)>
<!ELEMENT customer (name, email, phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT phone (#PCDATA)>

Create an XML File:
Right-click on the src folder again.
Select New > File.
Name it 'external_dtd.xml' and click Finish.
Open external_dtd.xml and add the following content:
xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE customers SYSTEM "customers.dtd">
<customers>
    <customer>
        <name>Satyam Nayak</name>
        <email>Satyam@nayak.com</email>
        <phone>122-112-1234</phone>
    </customer>
    <customer>
        <name>Sonu N</name>
        <email>Sonu@N.com</email>
        <phone>112-554-9969</phone>
    </customer>
</customers>

Step 3: Create the Java Files
Create a Simple Error Handler Class:
Right-click on the src folder.
Select New > Class.
Name it 'SimpleErrorHandler', and click Finish.
Add the following code to handle validation errors:
java
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXParseException;

public class SimpleErrorHandler implements ErrorHandler {
    @Override
    public void warning(SAXParseException exception) throws SAXParseException {
        System.out.println("Warning: " + exception.getMessage());
    }

    @Override
    public void error(SAXParseException exception) throws SAXParseException {
        System.out.println("Error: " + exception.getMessage());
    }

    @Override
    public void fatalError(SAXParseException exception) throws SAXParseException {
        System.out.println("Fatal error: " + exception.getMessage());
    }
}

Create the Main Validation Class:
Right-click on the src folder.
Select New > Class.
Name it 'ValidateExternalDTD', and check the box to include the public static void main(String[] args) method, then click Finish.
Add the following code for XML validation:
java
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import java.io.File;
import java.io.IOException;

public class ValidateExternalDTD {
    public static void main(String[] args) {
        try {
            File xmlFile = new File("external_dtd.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            dbFactory.setValidating(true); // Enable validation
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            dBuilder.setErrorHandler(new SimpleErrorHandler());
            Document doc = dBuilder.parse(xmlFile);
            doc.getDocumentElement().normalize();
            System.out.println("XML is valid with External DTD.");
        } catch (ParserConfigurationException | SAXException | IOException e) {
            System.out.println("XML is invalid: " + e.getMessage());
        }
    }
}

Step 4: Run Your Program
Run the Program:
Right-click on the ValidateExternalDTD.java file in the Package Explorer.
Select Run As > Java Application.
View Output:
Check the Console view at the bottom of Eclipse for output messages indicating whether your XML is valid or invalid.
//customers.dtd
<!ELEMENT customers (customer+)>
<!ELEMENT customer (name, email, phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
                
//external_dtd.xml    
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE customers SYSTEM "customers.dtd">
<customers>
    <customer>
        <name>Satyam Nayak</name>
        <email>Satyam@nayak.com</email>
        <phone>122-112-1234</phone>
    </customer>
    <customer>
        <name>Sonu N</name>
        <email>Sonu@N.com</email>
        <phone>112-554-9969</phone>
    </customer>
</customers>
//ValidateExternalDTD.java
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import java.io.File;
import java.io.IOException;

public class ValidateExternalDTD {
    public static void main(String[] args) {
        try {
            File xmlFile = new File("external_dtd_example.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            dbFactory.setValidating(true); // Enable validation
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            dBuilder.setErrorHandler(new SimpleErrorHandler());
            Document doc = dBuilder.parse(xmlFile);
            doc.getDocumentElement().normalize();
            System.out.println("XML is valid with External DTD.");
        } catch (ParserConfigurationException | SAXException | IOException e) {
            System.out.println("XML is invalid: " + e.getMessage());
        }
    }
}
//internal_dtd.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE customers [
    <!ELEMENT customers (customer+)>
    <!ELEMENT customer (name, email, phone)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT email (#PCDATA)>
    <!ELEMENT phone (#PCDATA)>
]>
<customers>
    <customer>
        <name>Satyam Nayak</name>
        <email>Satyam@nayak.com</email>
        <phone>122-112-1234</phone>
    </customer>
    <customer>
        <name>Sonu N</name>
        <email>Sonu@N.com</email>
        <phone>112-554-9969</phone>
    </customer>
</customers>
// ValidateInternalDTD.java
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import java.io.File;
import java.io.IOException;

public class ValidateInternalDTD {
    public static void main(String[] args) {
        try {
            File xmlFile = new File("internal_dtd_example.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            dbFactory.setValidating(true); // Enable validation
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            dBuilder.setErrorHandler(new SimpleErrorHandler());
            Document doc = dBuilder.parse(xmlFile);
            doc.getDocumentElement().normalize();
            System.out.println("XML is valid with Internal DTD.");
        } catch (ParserConfigurationException | SAXException | IOException e) {
            System.out.println("XML is invalid: " + e.getMessage());
        }
    }
}
#internal.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookstore [
    <!ELEMENT bookstore (book+)>
    <!ELEMENT book (title, author, year, price)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
    <!ELEMENT year (#PCDATA)>
    <!ELEMENT price (#PCDATA)>
    <!ATTLIST book category CDATA #REQUIRED>
]>
<bookstore>
    <book category="fiction">
        <title>Harry Potter</title>
        <author>J.K. Rowling</author>
        <year>1997</year>
        <price>29.99</price>
    </book>
    <book category="non-fiction">
        <title>Sapiens</title>
        <author>Yuval Noah Harari</author>
        <year>2014</year>
        <price>19.99</price>
    </book>
</bookstore>
#external.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookstore SYSTEM "bookstore.dtd">
<bookstore>
    <book category="fiction">
        <title>Harry Potter</title>
        <author>J.K. Rowling</author>
        <year>1997</year>
        <price>29.99</price>
    </book>
    <book category="non-fiction">
        <title>Sapiens</title>
        <author>Yuval Noah Harari</author>
        <year>2014</year>
        <price>19.99</price>
    </book>
</bookstore>
#exrternal.dtd
<!ELEMENT bookstore (book+)>
<!ELEMENT book (title, author, year, price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ATTLIST book category CDATA #REQUIRED>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DatabaseOperations {
    public static void main(String[] args) throws ClassNotFoundException {
        String jdbcUrl = "jdbc:oracle:thin:@//localhost:1521/XE"; // Corrected URL
        String user = "system";
        String password = "hari123";
        
        try {
            // Load Oracle JDBC Driver
            Class.forName("oracle.jdbc.driver.OracleDriver");

            // Establish connection
            Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
            System.out.println("Connection established successfully");

            // Create Statement object
            Statement statement = connection.createStatement();

            // 1. Insert Operation
            String insertSQL = "INSERT INTO Users (username, password, email) VALUES ('hari', 'secure@123', 'john@example.com')";
            int insertResult = statement.executeUpdate(insertSQL);
            System.out.println(insertResult + " row(s) inserted.");

            // 2. Select Operation
            String selectSQL = "SELECT * FROM Users";
            ResultSet rs = statement.executeQuery(selectSQL);
            while (rs.next()) {
                System.out.println("UserName: " + rs.getString("username") + ", Password: " + rs.getString("password") +
                                   ", Email: " + rs.getString("email"));
            }

            // 3. Update Operation
            String updateSQL = "UPDATE Users SET email = 'john_new@example.com' WHERE username = 'john_doe'";
            int updateResult = statement.executeUpdate(updateSQL);
            System.out.println(updateResult + " row(s) updated.");

            // Close the resources
            statement.close();
            connection.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DatabaseOperations {
    public static void main(String[] args) throws ClassNotFoundException {
        String jdbcUrl = "jdbc:oracle:thin:@//localhost:1521/XE";
        String user = "system";
        String password = "hari123";
        
        try {
            // Load Oracle JDBC Driver
            Class.forName("oracle.jdbc.driver.OracleDriver");

            // Establish connection
            Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
            System.out.println("Connection established successfully");

            // 1. Insert Operation with PreparedStatement
            String insertSQL = "INSERT INTO Users (username, password, email) VALUES (?, ?, ?)";
            PreparedStatement insertStatement = connection.prepareStatement(insertSQL);
            insertStatement.setString(1, "hari");
            insertStatement.setString(2, "secure@123");
            insertStatement.setString(3, "john@example.com");
            int insertResult = insertStatement.executeUpdate();
            System.out.println(insertResult + " row(s) inserted.");
            insertStatement.close();

            // 2. Select Operation with PreparedStatement
            String selectSQL = "SELECT * FROM Users";
            PreparedStatement selectStatement = connection.prepareStatement(selectSQL);
            ResultSet rs = selectStatement.executeQuery();
            while (rs.next()) {
                System.out.println("Username: " + rs.getString("username") +
                                   ", Password: " + rs.getString("password") +
                                   ", Email: " + rs.getString("email"));
            }
            selectStatement.close();

            // 3. Update Operation with PreparedStatement
            String updateSQL = "UPDATE Users SET email = ? WHERE username = ?";
            PreparedStatement updateStatement = connection.prepareStatement(updateSQL);
            updateStatement.setString(1, "john_new@example.com");
            updateStatement.setString(2, "john_doe");
            int updateResult = updateStatement.executeUpdate();
            System.out.println(updateResult + " row(s) updated.");
            updateStatement.close();

            // Close the connection
            connection.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
All Important Installation Links

//For oracle database and Run SQL
https://tinyurl.com/oraclexe11g123

//For Java Installation

https://tinyurl.com/java-installation-steps-123
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookstore [
    <!ELEMENT bookstore (book+)>
    <!ELEMENT book (title,author,publisher,price)>
    <!ATTLIST book category CDATA #REQUIRED>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
    <!ELEMENT publisher (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>
<bookstore>
    <book category="fiction">
        <title>GGG</title>
        <author>hhh</author>
        <publisher>hi</publisher>
        <price>2000</price>
    </book>
</bookstore>
//Cookies



//index.html


<!DOCTYPE html>
<html>
<head>
    <meta charset="ISO-8859-1">
    <title>LoginPage</title>
    <style>
        div {
            display: block;
            height: 600px;
            color: white;
        }
    </style>
</head>
<body style="text-align:center;background-color:green;">
    <div>
        <form action="Cookie1" method="post">
            <h1>Login to Cookie Application</h1>
            <label>Username:</label><input type="text" name="username"><br>
            <label>Password:</label><input type="password" name="password"><br>
            <label>Email:</label><input type="text" name="email"><br>
            <button type="submit" value="Login">Submit</button>
        </form>
    </div>
</body>
</html>


//CookieServlet1.java

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CookieServlet1
 */
@WebServlet("/Cookie1")
public class CookieServlet1 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public CookieServlet1() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
        
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        
        String name = request.getParameter("username");
        String pass = request.getParameter("password");
        String email = request.getParameter("email");
        
        Cookie ck = new Cookie("username", name);
        Cookie ck1 = new Cookie("emailaddr", email);
        
        response.addCookie(ck);
        response.addCookie(ck1);
        
        out.println("<h1> Hello, welcome " + name + "!!! </h1>");
        out.println("<h1><a href =\"Cookie2\">Course Details</a></h1>");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}



//CookieServlet2.java


import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CookieServlet2
 */
@WebServlet("/Cookie2")
public class CookieServlet2 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public CookieServlet2() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
        
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        
        out.println("<h1> Welcome Back!!!</h1>");
        
        Cookie[] cks = request.getCookies();
        
        if (cks != null) {
            for (int i = 0; i < cks.length; i++) {
                out.println("<h1> " + cks[i].getName() + ": " + cks[i].getValue() + "</h1>");
            }
        } else {
            out.println("<h1>No cookies found!</h1>");
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}
//Update Table in the database

//index.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="ISO-8859-1">
    <title>Updating User Details</title>
    <style>
        div {
            background-color: lightgreen;
            color: Red;
            padding: 20px;
            margin: 20px;
            border: 2px yellow;
        }
    </style>
</head>
<body>
    <div>
        <h1>Updating User Details</h1>
        <form action="UpdateDetails" method="post">
            <label>Username:</label>
            <input type="text" name="username" required>
            <br>
            <h3>Give updated details of the above user</h3>
            <label>Password:</label>
            <input type="password" name="password" required>
            <br>
            <label>Email:</label>
            <input type="email" name="email" required>
            <br>
            <input type="submit" name="submit" value="Update">
        </form>
    </div>
</body>
</html>


//UpdateServlet.java

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/UpdateDetails")
public class UpdateServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public UpdateServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Connection con = null;
        PreparedStatement st = null;

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        try {
            // Load the Driver Class
            Class.forName("oracle.jdbc.OracleDriver");
            System.out.println("Driver loaded");

            // Create the connection
            con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/XE", "system", "1234");
            System.out.println("Connection established");

            String user = request.getParameter("username");
            String pwd = request.getParameter("password");
            String email = request.getParameter("email");

            // Update statement (ensure the table and column names match your Oracle schema)
            st = con.prepareStatement("UPDATE studentdata SET password=?, email=? WHERE username=?");
            st.setString(1, pwd);
            st.setString(2, email);
            st.setString(3, user);

            int r = st.executeUpdate();
            if (r > 0) {
                pw.println("<h1>Hi " + user + ", your password and email have been updated successfully.</h1>");
            } else {
                pw.println("<h1>User not found or details are the same.</h1>");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            pw.println("<h1>Error loading database driver: " + e.getMessage() + "</h1>");
        } catch (SQLException e) {
            e.printStackTrace();
            pw.println("<h1>Error updating details: " + e.getMessage() + "</h1>");
        } finally {
            try {
                if (st != null) {
                    st.close();
                }
                if (con != null) {
                    con.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}
//Request Parameters

//index.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="ISO-8859-1">
    <title>Check Voting Credentials</title>
    <style>
        div {
            background-color: lightgreen;
            color: Red;
            padding: 20px;
            margin: 20px;
            border: 2px solid yellow;
        }
    </style>
</head>
<body>
    <div>
        <h1>Checking Voting Credentials</h1>
        <form action="Voting" method="get">
            <label>Username:</label>
            <input type="text" name="Name">
            <br>
            <label>Age:</label>
            <input type="text" name="Age">
            <br>
            <input type="submit" name="submit">
        </form>
    </div>
</body>
</html>


//VotingServlet.java


// program on request parameters

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class VotingServlet
 */
@WebServlet("/Voting")
public class VotingServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public VotingServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see Servlet#init(ServletConfig)
     */
    public void init(ServletConfig config) throws ServletException {
        System.out.println("Init method is called");
    }

    /**
     * @see Servlet#destroy()
     */
    public void destroy() {
        System.out.println("I'm done with work, Destroy method is called");
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
        String name = request.getParameter("Name");
        String age = request.getParameter("Age");
        
        int a = Integer.parseInt(age);
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        if (a < 18) {
            pw.println("<h1>You " + name + " are not eligible for casting vote! Wait until you are 18 years old.</h1>");
        } else {
            pw.println("<h1>Congrats!!! " + name + ", you are eligible for casting vote!</h1>");
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}
//Inserting rows of servlet

//index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Insert Student Data</title>
</head>
<body>
    <h1>Insert Student Data</h1>
    <form action="InsertStudent" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required><br><br>

        <label for="password">Password:</label>
        <input type="password" id="password" name="password" required><br><br>

        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required><br><br>

        <input type="submit" value="Insert">
    </form>
</body>
</html>



//InsertStudentServlet.java

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/InsertStudent")
public class InsertStudentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public InsertStudentServlet() {
        super();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Connection con = null;
        PreparedStatement st = null;

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        try {
            // Load the Driver Class
            Class.forName("oracle.jdbc.OracleDriver");
            System.out.println("Driver loaded");

            // Create the connection
            con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/XE", "system", "1234");
            System.out.println("Connection established");

            String user = request.getParameter("username");
            String pwd = request.getParameter("password");
            String email = request.getParameter("email");

            // Insert statement
            st = con.prepareStatement("INSERT INTO studentdata (username, password, email) VALUES (?, ?, ?)");
            st.setString(1, user);
            st.setString(2, pwd);
            st.setString(3, email);

            int r = st.executeUpdate();
            if (r > 0) {
                pw.println("<h1>Student data inserted successfully!</h1>");
            } else {
                pw.println("<h1>Error inserting student data.</h1>");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            pw.println("<h1>Error loading database driver: " + e.getMessage() + "</h1>");
        } catch (SQLException e) {
            e.printStackTrace();
            pw.println("<h1>Error inserting data: " + e.getMessage() + "</h1>");
        } finally {
            try {
                if (st != null) {
                    st.close();
                }
                if (con != null) {
                    con.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
//Login Servlet

//index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Page</title>
</head>
<body>
    <h2>Login Page</h2>
    <form action="Logininit" method="post">
        <label for="username">Username:</label><br>
        <input type="text" id="username" name="username" required><br><br>
        <label for="password">Password:</label><br>
        <input type="password" id="password" name="password" required><br><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>


//LoginServletInit.java

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

@WebServlet("/Logininit")
public class LoginServletInit extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    // Define valid credentials directly in the servlet
    private final String validUsername = "ramesh";
    private final String validPassword = "fattah";

    public LoginServletInit() {
        // Default constructor
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        if (validUsername.equals(username) && validPassword.equals(password)) {
            out.println("<html><body>");
            out.println("<h1>Login successful! Welcome, " + username + "</h1>");
            out.println("</body></html>");
        } else {
            out.println("<html><body>");
            out.println("<h1>Invalid credentials. Please try again.</h1>");
            out.println("<a href=\"index.html\">Go back to Login</a>");
            out.println("</body></html>");
        }
        out.close();
    }
}
//Servlet Lifecycle Methods

//input.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Servlet Lifecycle Example</title>
</head>
<body>
    <h2>Welcome to the Servlet Lifecycle Example</h2>
    <form action="ServletLifecycleExample1" method="post">
        <label for="name">Enter your name:</label>
        <input type="text" id="name" name="name" required>
        <input type="submit" value="Submit">
    </form>
</body>
</html>



//ServletLifecycleExample1.java

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/ServletLifecycleExample1")
public class ServletLifecycleExample1 extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private int requestCount;

    // Constructor (optional)
    public ServletLifecycleExample1() {
        super();
        System.out.println("Servlet Constructor is called.");
    }

    // Initialization (called once when the servlet is first loaded)
    @Override
    public void init() throws ServletException {
        requestCount = 0;  // Initialize the request counter
        System.out.println("init() method called.");
    }

    // Service method (called for each client request)
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        requestCount++;  // Increment the request counter

        // Log the request count
        System.out.println("service() method called. Request count: " + requestCount);

        // Set content type for response
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        // Respond to the client
        out.println("<html><body>");
        out.println("<h1>Hello, " + request.getParameter("name") + "!</h1>");
        out.println("<p>This servlet has served " + requestCount + " request(s).</p>");
        out.println("</body></html>");
    }

    // Destruction (called once before the servlet is destroyed)
    @Override
    public void destroy() {
        System.out.println("destroy() method called.");
    }
}
//flex.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Flexbox Layout Example</title>
    <link rel="stylesheet" href="flexstyles.css">
</head>
<body>
    <div class="flex-container">
        <div class="flex-item">Item 1</div>
        <div class="flex-item">Item 2</div>
        <div class="flex-item">Item 3</div>
        <div class="flex-item">Item 4</div>
        <div class="flex-item">Item 5</div>
    </div>
</body>
</html>
//flexstyles.css
* {
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
}

.flex-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    background-color: #f4f4f4;
    padding: 20px;
}

.flex-item {
    background-color: #009688;
    color: white;
    padding: 20px;
    margin: 10px;
    flex: 1 1 30%; /* Grow, shrink, and set base width */
    text-align: center;
}
//login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Page</title>
</head>
<body>
    <h2>Login</h2>
    <form action="LoginServlet" method="post">
        Username: <input type="text" name="username" required><br><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>

//Login Servlet.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String username = request.getParameter("username");

        // Create a new session or retrieve existing one
        HttpSession session = request.getSession();
        
        // Store the username in the session
        session.setAttribute("username", username);

        // Redirect to welcome page
        response.sendRedirect("welcome.jsp");
    }
}
//welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="javax.servlet.http.HttpSession" %>
<%
    HttpSession session = request.getSession(false); // Get existing session
    String username = null;

    if (session != null) {
        username = (String) session.getAttribute("username");
    }

    if (username == null) {
        response.sendRedirect("login.html"); // Redirect to login if not logged in
    }
%>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome</title>
</head>
<body>
    <h2>Welcome, <%= username %>!</h2>
    <a href="LogoutServlet">Logout</a> <!-- Link to logout -->
</body>
</html>
//logout.java

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

@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Invalidate the session
        HttpSession session = request.getSession(false);
        if (session != null) {
            session.invalidate(); // Remove all attributes and invalidate the session
        }
        
        // Redirect to login page
        response.sendRedirect("login.html");
    }
}
//First, create a database named 'user_db' and a table named 'users'
sql: 
CREATE DATABASE user_db;
 
USE user_db;
 
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL
);
 
-- Insert a sample user (password should be hashed in real applications)
INSERT INTO users (username, password) VALUES ('testuser', 'password123');
 
//login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h2>Login</h2>
    <form action="LoginServlet" method="post">
        Username: <input type="text" name="username" required><br><br>
        Password: <input type="password" name="password" required><br><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>
 
//LoginServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
 
        // JDBC connection setup
        String jdbcURL = "jdbc:mysql://localhost:3306/user_db";
        String dbUser = "root"; // Change as needed
        String dbPassword = "password"; // Change as needed
 
        try (Connection conn = DriverManager.getConnection(jdbcURL, dbUser, dbPassword)) {
            String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
            PreparedStatement statement = conn.prepareStatement(sql);
            statement.setString(1, username);
            statement.setString(2, password);
            ResultSet resultSet = statement.executeQuery();
 
            if (resultSet.next()) {
                // User found, create a cookie
                Cookie loginCookie = new Cookie("username", username);
                loginCookie.setMaxAge(30 * 60); // Set cookie to expire in 30 minutes
                response.addCookie(loginCookie);
 
                // Redirect to welcome page
                response.sendRedirect("welcome.jsp");
            } else {
                // Invalid credentials
                PrintWriter out = response.getWriter();
                out.println("<font color=red>Invalid username or password.</font>");
                request.getRequestDispatcher("login.html").include(request, response);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//logout.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Cookie loginCookie = new Cookie("username", null);
        loginCookie.setMaxAge(0); // Delete the cookie
        response.addCookie(loginCookie);
 
        response.sendRedirect("login.html");
    }
}
//welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="javax.servlet.http.Cookie"%>
<%@ page import="javax.servlet.http.HttpServletRequest"%>
<%
    String username = null;
    Cookie[] cookies = request.getCookies();
    
    if (cookies != null) {
        for (Cookie cookie : cookies) {
            if ("username".equals(cookie.getName())) {
                username = cookie.getValue();
                break;
            }
        }
    }
 
    if (username == null) {
        response.sendRedirect("login.html");
    }
%>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome</title>
</head>
<body>
    <h2>Welcome, <%= username %>!</h2>
    <form action="LogoutServlet" method="post">
        <input type="submit" value="Logout">
    </form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vertical Navigation Bar</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="sidebar">
        <a href="#home" class="active">Home</a>
        <a href="#news">News</a>
        <a href="#contact">Contact</a>
        <a href="#about">About</a>
    </div>
 
    <div class="content">
        <h1>Welcome to My Website</h1>
        <p>This is a simple vertical navigation bar example.</p>
    </div>
</body>
</html>
 
* {
    box-sizing: border-box;
}
 
body {
    font-family: Arial, sans-serif;
}
 
.sidebar {
    height: 100%; /* Full-height */
    width: 200px; /* Set the width of the sidebar */
    position: fixed; /* Fixed Sidebar (stay in place) */
    background-color: #333; /* Sidebar color */
}
 
.sidebar a {
    padding: 15px; /* Padding */
    text-decoration: none; /* No underline */
    font-size: 17px; /* Font size */
    color: #f2f2f2; /* Text color */
    display: block; /* Make links appear below each other */
}
 
.sidebar a:hover {
    background-color: #ddd; /* Add a hover effect */
    color: black; /* Text color on hover */
}
 
.sidebar a.active {
    background-color: #04AA6D; /* Active link color */
    color: white; /* Active link text color */
}
 
.content {
    margin-left: 220px; /* Margin to the left of the sidebar */
    padding: 20px; /* Padding for content */
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Horizontal Navigation Bar</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <nav class="navbar">
        <a href="#home" class="active">Home</a>
        <a href="#news">News</a>
        <a href="#contact">Contact</a>
        <a href="#about">About</a>
    </nav>
</body>
</html>

* {
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
}

.navbar {
    background-color: #333;
    overflow: hidden;
}

.navbar a {
    float: left;
    color: #f2f2f2;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 17px;
}

.navbar a:hover {
    background-color: #ddd;
    color: black;
}

.navbar a.active {
    background-color: #04AA6D;
    color: white;
}
Servlet Code for Updating Database Records
The servlet will receive id, name, and age parameters from the client, which it will use to update the name and age fields of a specific user in the database.

java
Copy code
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/UpdateUserServlet")
public class UpdateUserServlet extends HttpServlet {

    private static final String DB_URL = "jdbc:mysql://localhost:3306/yourDatabaseName";
    private static final String DB_USER = "yourUsername";
    private static final String DB_PASSWORD = "yourPassword";

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Get parameters from the request
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String age = request.getParameter("age");

        // Set response content type
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        Connection conn = null;
        PreparedStatement stmt = null;

        try {
            // Load JDBC driver
            Class.forName("com.mysql.cj.jdbc.Driver");

            // Establish database connection
            conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);

            // Prepare the SQL update statement
            String sql = "UPDATE users SET name = ?, age = ? WHERE id = ?";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, name);
            stmt.setInt(2, Integer.parseInt(age));
            stmt.setInt(3, Integer.parseInt(id));

            // Execute update and check if a record was updated
            int rowsUpdated = stmt.executeUpdate();
            if (rowsUpdated > 0) {
                out.println("<h1>User updated successfully!</h1>");
            } else {
                out.println("<h1>User not found or update failed.</h1>");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            out.println("<h1>Error: Unable to load database driver.</h1>");
        } catch (SQLException e) {
            e.printStackTrace();
            out.println("<h1>Error: Unable to execute update operation.</h1>");
        } finally {
            try {
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
Servlet Code to Insert Rows into the Database
This servlet will accept name and age as parameters and insert them into the users table.

java
Copy code
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/InsertUserServlet")
public class InsertUserServlet extends HttpServlet {

    private static final String DB_URL = "jdbc:mysql://localhost:3306/yourDatabaseName";
    private static final String DB_USER = "yourUsername";
    private static final String DB_PASSWORD = "yourPassword";

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Get parameters from the request
        String name = request.getParameter("name");
        String age = request.getParameter("age");

        // Set response content type
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        Connection conn = null;
        PreparedStatement stmt = null;

        try {
         
            Class.forName("com.mysql.cj.jdbc.Driver");

   
            conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);

            String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, name);
            stmt.setInt(2, Integer.parseInt(age));

       
            int rowsInserted = stmt.executeUpdate();
            if (rowsInserted > 0) {
                out.println("<h1>New user added successfully!</h1>");
            } else {
                out.println("<h1>Error: No user was added.</h1>");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            out.println("<h1>Error: Unable to load database driver.</h1>");
        } catch (SQLException e) {
            e.printStackTrace();
            out.println("<h1>Error: Unable to execute insert operation.</h1>");
        } finally {
            try {
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
Task-3
Implement Job Sequencing with deadlines algorithm
Algorithm
Algorithm GreedyJob(d, J, n)
// J is a set of jobs that can be completed by their deadlines.
{
  J := {1};
  for i := 2 to n do
  {
    if (all jobs in J ∪ {i} can be completed
        by their deadlines) then J := J ∪ {i};
  }
}
AlgorithmJS(d,j,n)
{
 // d[i] >1,1<i <n arethedeadlines, n >1.Thejobs
 // areorderedsuchthat p[\\] >p[2]>>......p[n].J[i]
 // istheith jobin theoptimalsolution,1<i <k.
 // Also,at terminationd[J[i]] <d[J[i+1]], 1<i <k.
  {
d[0] := J[0] := 0; // Initialize.
J[1] := 1; // Include job 1.
k := 1;
for i := 2 to n do
{
    // Consider jobs in nonincreasing order of p[i]. Find
    // position for i and check feasibility of insertion.
    r := k;
    while ((d[J[r]] > d[i]) and (d[J[r]] ≠ r)) do r := r - 1;
    if ((d[J[r]] ≤ d[i]) and (d[i] > r)) then
    {
        // Insert i into J[ ].
        for q := k to (r + 1) step -1 do J[q + 1] := J[q];
        J[r + 1] := i; k := k + 1;
    }
}
return k;
}
Program:
class Job:
    def __init__(self, job_id, deadline, profit):
        self.job_id = job_id
        self.deadline = deadline
        self.profit = profit

# Function to schedule jobs to maximize profit
def job_sequencing(jobs):
    # Step 1: Sort jobs by profit in descending order
    jobs.sort(key=lambda job: job.profit, reverse=True)
    
    # Step 2: Initialize an array to keep track of free time slots
    max_deadline = max(job.deadline for job in jobs)
    slots = [-1] * max_deadline  # -1 indicates the slot is free
    
    total_profit = 0
    job_sequence = []
    
    # Step 3: Place jobs in available slots to maximize profit
    for job in jobs:
        # Find a slot for the job, starting from the latest possible slot (deadline)
        for j in range(min(job.deadline, max_deadline) - 1, -1, -1):
            if slots[j] == -1:
                # Slot found
                slots[j] = job.job_id
                job_sequence.append(job.job_id)
                total_profit += job.profit
                break
    
    # Output the sequence and profit
    return job_sequence, total_profit

# Example usage
jobs = [
    Job('Job1', 2, 100),
    Job('Job2', 1, 50),
    Job('Job3', 2, 10),
    Job('Job4', 1, 20),
    Job('Job5', 3, 15)
]

# Get the job sequence and total profit
sequence, profit = job_sequencing(jobs)
print("Job sequence:", sequence)
print("Total Profit:", profit)
OUTPUT:
Job Sequence: ['Job1', 'Job2', 'Job5']
Total Profit: 165


(VIVEK'S CODE)
# greedy job sequencing

def greedyJS(d,j,n):
    d[0]=j[0]=0
    j[1]=1
    k=1
    for i in range(2,n):
        r = k
        while d[j[r]]>d[i] and d[j[r]]!=r:
            r-=1
        if d[j[r]]<=d[i] and d[i]>r:
            for q in range(r+1,k-1,-1):
                j[q+1]=j[q]
            j[r+1]=i
            k+=1
    return k
            

def sort(p,d,n):
    for i in range(1,n):
        k = i
        m = p[i]
        for j in range(i+1,n):
            if(p[j]>m):
                m = p[j]
                k = j
        if i!=k:
            d[i],d[k] = d[k],d[i]
            p[i],p[k] = p[k],p[i]

n = int(input())
p = [-1]*(n+1)
d = [-1]*(n+1)
for i in range(1,n+1):
    p[i],d[i] = map(int,input().split())
sort(p,d,n+1)
print(p[1:])
print(d[1:])
j = [0]*(n+1)
k = greedyJS(d,j,n+1)
print(k)
for i in range(1,k+1):
    print(j[i],end=" ")
print()
profit = 0
for i in range(1,k+1):
    profit+=p[j[i]]
print(profit)

'''
INPUT:
5
15 2
20 2
10 1
1 3
5 3

OUTPUT:
[20, 15, 10, 5, 1]
[2, 2, 1, 3, 3]
3
1 2 4
40
'''
//SQL:
CREATE TABLE Users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

//INSERT
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class InsertUser {
    private static final String INSERT_USER_SQL = "INSERT INTO Users (username, password, email) VALUES (?, ?, ?)";

    public static void main(String[] args) {
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
             PreparedStatement preparedStatement = connection.prepareStatement(INSERT_USER_SQL)) {

            preparedStatement.setString(1, "john_doe");
            preparedStatement.setString(2, "securepassword");
            preparedStatement.setString(3, "john@example.com");

            int rowsAffected = preparedStatement.executeUpdate();
            System.out.println(rowsAffected + " row(s) inserted.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//SELECT
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class SelectUsers {
    private static final String SELECT_ALL_USERS_SQL = "SELECT * FROM Users";

    public static void main(String[] args) {
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
             PreparedStatement preparedStatement = connection.prepareStatement(SELECT_ALL_USERS_SQL);
             ResultSet resultSet = preparedStatement.executeQuery()) {

            while (resultSet.next()) {
                System.out.println("ID: " + resultSet.getInt("id") +
                                   ", Username: " + resultSet.getString("username") +
                                   ", Email: " + resultSet.getString("email"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//UPDATE
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class UpdateUserEmail {
    private static final String UPDATE_EMAIL_SQL = "UPDATE Users SET email = ? WHERE username = ?";

    public static void main(String[] args) {
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
             PreparedStatement preparedStatement = connection.prepareStatement(UPDATE_EMAIL_SQL)) {

            preparedStatement.setString(1, "new_email@example.com");
            preparedStatement.setString(2, "john_doe");

            int rowsAffected = preparedStatement.executeUpdate();
            System.out.println(rowsAffected + " row(s) updated.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//OUTPUT:
ID: 1, Username: john_doe, Email: john@example.com
package login;

import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * Servlet implementation class RequestExample
 */
@WebServlet("/RequestExample")
public class RequestExample extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RequestExample() {
        super();
        // TODO Auto-generated constructor stub
    }
    public void init(ServletConfig config) throws ServletException
    {
    	super.init(config);
    	System.out.println("initialised");
    }
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		response.setContentType("text/html");
		String name = request.getParameter("name");
		String email = request.getParameter("email");
		String course = request.getParameter("course");
		String branch = request.getParameter("branch");
		String hobbies = request.getParameter("hobbies");
		String fname = request.getParameter("fname");
		PrintWriter out = response.getWriter();
		out.println("<html><body>");
		out.println("<h2>Welcome"+name+"</h2>");
		out.println("<h2>Email: "+email+"</h2>");
		out.println("<h2>Course: "+course+"</h2>");
		out.println("<h2>"+branch+"</h2>");
		out.println("<h2>"+hobbies+"</h2>");
		out.println("<h2>"+fname+"</h2>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
	public void destroy() {
		System.out.println("Destory");
	}
}


<html>
 
<body>
 
<form action="UserServlet" method="POST">
 
Name: <input type="text" name="name"><br>
 
Email: <input type="text" name="email"><br>
 
Course: <input type="text" name="course"><br>
 
Branch: <input type="text" name="branch"><br>
 
Hobbies: <input type="text" name="hobbies"><br>
 
<input type="submit" value="Submit">
 
</form>
 
</body>
 
</html>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sorting and Reversing Arrays</title>
</head>
<body>
    <h1>Sorting and Reversing Arrays</h1>
    <pre id="output"></pre> <!-- Preformatted text area for output -->

    <script>
        // Define an array of numbers
        const numbers = [4, 2, 5, 1, 3];
        let result = "Original Numbers: " + numbers.join(", ") + "\n";

        // Sort numbers in ascending order
        const sortedNumbers = [...numbers].sort((a, b) => a - b);
        result += "Sorted Numbers (Ascending): " + sortedNumbers.join(", ") + "\n";

        // Reverse the sorted numbers
        const reversedNumbers = [...sortedNumbers].reverse();
        result += "Reversed Numbers: " + reversedNumbers.join(", ") + "\n\n";

        // Define an array of fruits
        const fruits = ["Banana", "Orange", "Apple", "Mango"];
        result += "Original Fruits: " + fruits.join(", ") + "\n";

        // Sort fruits alphabetically
        const sortedFruits = [...fruits].sort();
        result += "Sorted Fruits: " + sortedFruits.join(", ") + "\n";

        // Reverse the sorted fruits
        const reversedFruits = [...sortedFruits].reverse();
        result += "Reversed Fruits: " + reversedFruits.join(", ");

        // Display the result in the HTML page
        document.getElementById("output").textContent = result;
    </script>
</body>
</html>
package com.example;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet(description = "Checks the hard coded UserName and Password by the user credentials", urlPatterns = { "/LoginServletNew" })
public class LoginServletNew extends HttpServlet {
private static final long serialVersionUID = 1L;
private final String validUsername = "Ramesh";
   private final String validPassword = "chand#123";
   public LoginServletNew() {
       super();
       System.out.println("Servlet Constructor is called once @ instantiation");
   }

   @Override
   protected void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {


       String username = request.getParameter("username");
       String password = request.getParameter("password");


       if (validUsername.equals(username) && validPassword.equals(password)) {

           response.setContentType("text/html");
           PrintWriter out = response.getWriter();
           

           SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
           Date date = new Date();
           
           out.println("<html><body>");
           out.println("<h1>Welcome, " + username + "!</h1>");
           out.println("<p>Current Date and Time: " + formatter.format(date) + "</p>");
           out.println("</body></html>");
       } else {
     
           response.setContentType("text/html");
           PrintWriter out = response.getWriter();
           out.println("<html><body>");
           out.println("<h1>Invalid username or password!</h1>");
           out.println("<a href=\"LoginServletNew.html\">Try Again</a>");
           out.println("</body></html>");
       }
   }

}

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
   <h2>Login Page</h2>
   <form action="LoginServletNew" method="post">
       <label for="username">Username:</label>
       <input type="text" id="username" name="username" required><br><br>
       <label for="password">Password:</label>
       <input type="password" id="password" name="password" required><br><br>
       <input type="submit" value="Login">
   </form>
</body>
</html>\
package Manish;

import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * Servlet implementation class LifeCycleExample
 */
@WebServlet("/LifeCycleExample")
public class LifeCycleExample extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LifeCycleExample() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		System.out.println("Iam from init() method");
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("Iam from destroy() method");
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		response.setContentType("text/html");
		try(PrintWriter out = response.getWriter())
		{
			out.println("<h3>Response from doGet() method</h3>");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
		response.setContentType("text/html");
		try(PrintWriter out = response.getWriter())
		{
			out.println("<h3>Response from doPost() method</h3>");
		}
	}

}
<!--DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Company Information</title>
</head>
<body>
    <h1>Company Information</h1>
    <pre id="output"></pre>

    <script>
        // Define a nested object for a company
        const company = {
            name: "GeeksforGeeks",
            location: "Noida",
            employees: {
                count: 100,
                departments: ["Development", "Design", "Marketing"],
                details: [
                    { name: "John Doe", position: "Developer" },
                    { name: "Jane Smith", position: "Designer" }
                ]
            }
        };

        // Function to display company information
        function displayCompanyInfo(company) {
            let output = "";
            output += "Company Name: " + company.name + "\n";
            output += "Location: " + company.location + "\n";
            output += "Employee Count: " + company.employees.count + "\n";
            output += "Departments: " + company.employees.departments.join(", ") + "\n\n";
            output += "Employee Details:\n";
            company.employees.details.forEach(employee => {
                output += `- ${employee.name}, Position: ${employee.position}\n`;
            });
            return output;
        }

        // Function to add a new employee
        function addEmployee(company, employeeName, employeePosition) {
            const newEmployee = { name: employeeName, position: employeePosition };
            company.employees.details.push(newEmployee);
            company.employees.count++;
        }

        // Function to update the department list
        function addDepartment(company, departmentName) {
            if (!company.employees.departments.includes(departmentName)) {
                company.employees.departments.push(departmentName);
                return `Department "${departmentName}" added.`;
            } else {
                return `Department "${departmentName}" already exists.`;
            }
        }

        // Display original company info
        let result = "Original Company Information:\n";
        result += displayCompanyInfo(company);

        // Add a new employee
        addEmployee(company, "Alice Johnson", "Project Manager");
        result += "\nAfter Adding New Employee:\n";
        result += displayCompanyInfo(company);

        // Add a new department
        result += addDepartment(company, "Sales") + "\n";
        result += "\nAfter Adding New Department:\n";
        result += displayCompanyInfo(company);

        // Attempt to add an existing department
        result += addDepartment(company, "Development") + "\n";

        // Display the result in the HTML page
        document.getElementById("output").textContent = result;
    </script>
</body>
</html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Company Info</title>
</head>
<body>
    <h1>Company Information</h1>
    <pre id="output"></pre>

    <script>
        // Define a simple nested object for a company
        const company = {
            name: "GeeksforGeeks",
            location: "Noida",
            employees: {
                count: 100,
                departments: ["Development", "Design", "Marketing"]
            }
        };

        // Function to display company information
        function displayCompanyInfo(company) {
            return `Company Name: ${company.name}\nLocation: ${company.location}\nEmployee Count: ${company.employees.count}\nDepartments: ${company.employees.departments.join(", ")}`;
        }

        // Display the company information in the HTML page
        document.getElementById("output").textContent = displayCompanyInfo(company);
    </script>
</body>
</html>
// Define a nested object for a company
const company = {
    name: "GeeksforGeeks",
    location: "Noida",
    employees: {
        count: 100,
        departments: ["Development", "Design", "Marketing"],
        details: [
            { name: "John Doe", position: "Developer" },
            { name: "Jane Smith", position: "Designer" }
        ]
    }
};

// Function to display company information
function displayCompanyInfo(company) {
    console.log("Company Name:", company.name);
    console.log("Location:", company.location);
    console.log("Employee Count:", company.employees.count);
    console.log("Departments:", company.employees.departments.join(", "));
    
    console.log("Employee Details:");
    company.employees.details.forEach(employee => {
        console.log(`- ${employee.name}, Position: ${employee.position}`);
    });
}

// Function to add a new employee
function addEmployee(company, employeeName, employeePosition) {
    const newEmployee = { name: employeeName, position: employeePosition };
    company.employees.details.push(newEmployee);
    company.employees.count++;
}

// Function to update the department list
function addDepartment(company, departmentName) {
    if (!company.employees.departments.includes(departmentName)) {
        company.employees.departments.push(departmentName);
        console.log(`Department "${departmentName}" added.`);
    } else {
        console.log(`Department "${departmentName}" already exists.`);
    }
}

// Display original company info
console.log("Original Company Information:");
displayCompanyInfo(company);

// Add a new employee
addEmployee(company, "Alice Johnson", "Project Manager");
console.log("\nAfter Adding New Employee:");
displayCompanyInfo(company);

// Add a new department
addDepartment(company, "Sales");
console.log("\nAfter Adding New Department:");
displayCompanyInfo(company);

// Attempt to add an existing department
addDepartment(company, "Development");

/*OUTPUT
Original Company Information:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 100
Departments: Development, Design, Marketing
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer

After Adding New Employee:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 101
Departments: Development, Design, Marketing
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer
- Alice Johnson, Position: Project Manager

After Adding New Department:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 101
Departments: Development, Design, Marketing, Sales
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer
- Alice Johnson, Position: Project Manager

Department "Development" already exists.*/
// Define an array of numbers
const numbers = [4, 2, 5, 1, 3];
console.log("Original Numbers:", numbers);

// Sort numbers in ascending order
numbers.sort((a, b) => a - b);
console.log("Sorted Numbers (Ascending):", numbers);

// Reverse the sorted numbers
const reversedNumbers = [...numbers].reverse();
console.log("Reversed Numbers:", reversedNumbers);

// Define an array of fruits
const fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log("Original Fruits:", fruits);

// Sort fruits alphabetically
fruits.sort();
console.log("Sorted Fruits:", fruits);

// Reverse the sorted fruits
const reversedFruits = [...fruits].reverse();
console.log("Reversed Fruits:", reversedFruits);

//OUTPUT
Original Numbers: [4, 2, 5, 1, 3]
Sorted Numbers (Ascending): [1, 2, 3, 4, 5]
Reversed Numbers: [5, 4, 3, 2, 1]
Original Fruits: ["Banana", "Orange", "Apple", "Mango"]
Sorted Fruits: ["Apple", "Banana", "Mango", "Orange"]
Reversed Fruits: ["Orange", "Mango", "Banana", "Apple"]
//Callable Statement

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

public class StatementDemo {
    public static void main(String[] args) {
        String DB_URL = "jdbc:oracle:thin:@//localhost:1521/XE";
        String user = "system";
        String pass = "1234";

        try (Connection conn = DriverManager.getConnection(DB_URL, user, pass)) {
            String insertQuery = "{call insert_employee(?, ?)}";
            try (CallableStatement cstmt = conn.prepareCall(insertQuery)) {
                cstmt.setString(1, "Queen");
                cstmt.setDouble(2, 400000);
                cstmt.execute();
                System.out.println("Sucessfully Inserted a record");
            }

        } catch (SQLException se) {
            System.out.println("An error occured");
            se.printStackTrace();
        }
    }
}

//Procedure

CREATE OR REPLACE PROCEDURE insert_employee(
    p_name IN VARCHAR2,
    p_salary IN NUMBER
) IS
BEGIN
    -- Insert the employee with the given name and salary
    INSERT INTO employees (name, salary)
    VALUES (p_name, p_salary);

    -- Commit the transaction
    COMMIT;

    DBMS_OUTPUT.PUT_LINE('Employee inserted successfully!');
EXCEPTION
    WHEN OTHERS THEN
        -- Handle exceptions
        ROLLBACK;
        DBMS_OUTPUT.PUT_LINE('Error inserting employee: ' || SQLERRM);
END;
/
//Prepared Statement

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

public class StatementDemo {
    public static void main(String[] args) {
        String DB_URL = "jdbc:oracle:thin:@//localhost:1521/XE";
        String user = "system";
        String pass = "1234";

        try (Connection conn = DriverManager.getConnection(DB_URL, user, pass)) {
            String insertQuery = "INSERT INTO employee(name, salary) VALUES (?, ?)";
            try (PreparedStatement pstmt = conn.prepareStatement(insertQuery)) {
                pstmt.setString(1, "Jack");
                pstmt.setDouble(2, 300000);
                pstmt.executeUpdate();
                System.out.println("Sucessfully Inserted a record");
            }

            String getQuery = "SELECT * FROM employee WHERE salary > ?";
            try (PreparedStatement pstmt = conn.prepareStatement(getQuery)) {
                pstmt.setDouble(1, 350000);
                ResultSet rs = pstmt.executeQuery();
                while (rs.next()) {
                    String str = rs.getString("name");
                    double sal = rs.getDouble("salary");

                    System.out.println("Employee Name: " + str + ", Salary is: " + sal);

                }
            }

        } catch (SQLException se) {
            System.out.println("An error occured");
            se.printStackTrace();
        }
    }
}
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Connection;

public class StatementDemo {
    public static void main(String[] args) {
        String DB_URL = "jdbc:oracle:thin:@//localhost:1521/XE";
        String user = "system";
        String pass = "1234";

        try (Connection conn = DriverManager.getConnection(DB_URL, user, pass)) {
            Statement stmt = conn.createStatement();
            String insertQuery = "INSERT INTO employee(name, salary) VALUES ('Alice', 500000)";
            stmt.executeUpdate(insertQuery);
            System.out.println("Sucessfully Inserted a record");

            String getQuery = "SELECT * FROM employee";

            ResultSet rs = stmt.executeQuery(getQuery);
            while (rs.next()) {
                String str = rs.getString("name");
                double sal = rs.getDouble("salary");

                System.out.println("Employee Name: " + str + ", Salary is: " + sal);

            }

        } catch (SQLException se) {
            System.out.println("An error occured");
            se.printStackTrace();
        }
    }
}
//External DTD

//books.dtd
<!ELEMENT catalog (book+)>
<!ELEMENT book (title, author, year, price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT price (#PCDATA)>


//name.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog SYSTEM "books.dtd">
<catalog>
    <book>
        <title>Learning XML</title>
        <author>John Doe</author>
        <year>2024</year>
        <price>29.99</price>
    </book>
    <book>
        <title>Mastering XML</title>
        <author>Jane Smith</author>
        <year>2023</year>
        <price>39.99</price>
    </book>
</catalog>
//Internal DTD
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog [
    <!ELEMENT catalog (book+)>
    <!ELEMENT book (title, author, year, price)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
    <!ELEMENT year (#PCDATA)>
    <!ELEMENT price (#PCDATA)>
]>
<catalog>
    <book>
        <title>Learning XML</title>
        <author>John Doe</author>
        <year>2024</year>
        <price>29.99</price>
    </book>
    <book>
        <title>Mastering XML</title>
        <author>Jane Smith</author>
        <year>2023</year>
        <price>39.99</price>
    </book>
</catalog>
// Example object
const person = {
    name: "Alice",
    age: 25,
    location: {
        city: "Wonderland",
        country: "Fantasy"
    }
};

// Destructuring the object
const { name, age } = person;

console.log("Name:", name); // Output: "Name: Alice"
console.log("Age:", age);   // Output: "Age: 25"

// Destructuring nested objects
const { city, country } = person.location;

console.log("City:", city);     // Output: "City: Wonderland"
console.log("Country:", country); // Output: "Country: Fantasy"

// Assigning to new variable names
const { name: fullName, age: years } = person;
console.log("Full Name:", fullName); // Output: "Full Name: Alice"
console.log("Years:", years);         // Output: "Years: 25"

// Rest parameter in object destructuring
const { name: personName, ...restOfPerson } = person;
console.log("Person Name:", personName); // Output: "Person Name: Alice"
console.log("Rest of Person:", restOfPerson); // Output: "Rest of Person: { age: 25, location: { city: 'Wonderland', country: 'Fantasy' } }"
// Creating a nested object
const person = {
    name: "John Doe",
    age: 30,
    address: {
        street: "123 Main St",
        city: "Anytown",
        country: "USA"
    },
    hobbies: ["reading", "traveling", "gaming"],
    contact: {
        email: "john.doe@example.com",
        phone: {
            home: "555-555-5555",
            mobile: "555-555-1234"
        }
    }
};

// Accessing properties of the nested object
console.log("Name:", person.name); // Output: "Name: John Doe"
console.log("Age:", person.age); // Output: "Age: 30"

// Accessing nested object properties
console.log("Street Address:", person.address.street); // Output: "Street Address: 123 Main St"
console.log("City:", person.address.city); // Output: "City: Anytown"
console.log("Country:", person.address.country); // Output: "Country: USA"

// Accessing hobbies
console.log("Hobbies:", person.hobbies.join(", ")); // Output: "Hobbies: reading, traveling, gaming"

// Accessing contact information
console.log("Email:", person.contact.email); // Output: "Email: john.doe@example.com"
console.log("Home Phone:", person.contact.phone.home); // Output: "Home Phone: 555-555-5555"
console.log("Mobile Phone:", person.contact.phone.mobile); // Output: "Mobile Phone: 555-555-1234"
// sortAndReverse.js

// Example arrays for demonstration
const numArray = [5, 3, 8, 1, 2];
const strArray = ["banana", "apple", "cherry", "date"];

// 1. Sort an array of numbers in ascending order
const sortedNumArray = numArray.sort((a, b) => a - b);
console.log('1. Sorted Number Array (Ascending):', sortedNumArray); // Output: [1, 2, 3, 5, 8]

// 2. Sort an array of strings in alphabetical order
const sortedStrArray = strArray.sort();
console.log('2. Sorted String Array (Alphabetical):', sortedStrArray); // Output: ["apple", "banana", "cherry", "date"]

// 3. Reverse the sorted array of numbers
const reversedNumArray = sortedNumArray.reverse();
console.log('3. Reversed Sorted Number Array:', reversedNumArray); // Output: [8, 5, 3, 2, 1]

// 4. Reverse the sorted array of strings
const reversedStrArray = sortedStrArray.reverse();
console.log('4. Reversed Sorted String Array:', reversedStrArray); // Output: ["date", "cherry", "banana", "apple"]
// stringMethods.js

// Example string for demonstration
const str = "  Hello World  ";

// 1. charAt(index): Returns the character at the specified index
console.log('1. charAt(1):', str.charAt(1)); // Output: "e"

// 2. concat(string1, string2, ...): Combines two or more strings
const str2 = " from JavaScript!";
console.log('2. concat():', str.concat(str2)); // Output: "  Hello World  from JavaScript!"

// 3. includes(searchString, position): Checks if the string contains the specified substring
console.log('3. includes("World"):', str.includes("World")); // Output: true

// 4. indexOf(searchValue, fromIndex): Returns the index of the first occurrence of a specified value
console.log('4. indexOf("o"):', str.indexOf("o")); // Output: 4

// 5. lastIndexOf(searchValue, fromIndex): Returns the index of the last occurrence of a specified value
console.log('5. lastIndexOf("o"):', str.lastIndexOf("o")); // Output: 7

// 6. slice(start, end): Extracts a section of the string
console.log('6. slice(0, 5):', str.slice(0, 5)); // Output: "  Hel"

// 7. split(separator, limit): Splits the string into an array of substrings
console.log('7. split(" "):', str.split(" ")); // Output: ["", "", "Hello", "World", "", ""]

// 8. toLowerCase(): Converts the string to lowercase
console.log('8. toLowerCase():', str.toLowerCase()); // Output: "  hello world  "

// 9. toUpperCase(): Converts the string to uppercase
console.log('9. toUpperCase():', str.toUpperCase()); // Output: "  HELLO WORLD  "

// 10. trim(): Removes whitespace from both ends of the string
console.log('10. trim():', str.trim()); // Output: "Hello World"
//Array Methods

// arrays.js

// 1. push(): Adds one or more elements to the end of an array
const fruits = ['apple', 'banana'];
console.log('Initial array:', fruits);
fruits.push('orange');
console.log('After push("orange"):', fruits); // ['apple', 'banana', 'orange']

// 2. pop(): Removes the last element from an array
const lastFruit = fruits.pop();
console.log('After pop():', fruits); // ['apple', 'banana']
console.log('Popped fruit:', lastFruit); // 'orange'

// 3. shift(): Removes the first element from an array
const firstFruit = fruits.shift();
console.log('After shift():', fruits); // ['banana']
console.log('Shifted fruit:', firstFruit); // 'apple'

// 4. unshift(): Adds one or more elements to the beginning of an array
fruits.unshift('kiwi');
console.log('After unshift("kiwi"):', fruits); // ['kiwi', 'banana']

// 5. slice(): Returns a shallow copy of a portion of an array
const citrus = fruits.slice(0, 1);
console.log('Citrus slice:', citrus); // ['kiwi']
console.log('Original array after slice():', fruits); // ['kiwi', 'banana']

// 6. splice(): Changes the contents of an array by removing or replacing existing elements
fruits.splice(1, 1, 'mango'); // Removes 1 element at index 1 and adds 'mango'
console.log('After splice(1, 1, "mango"):', fruits); // ['kiwi', 'mango']

// 7. forEach(): Executes a provided function once for each array element
console.log('Using forEach to log each fruit:');
fruits.forEach(fruit => console.log(fruit));

// 8. map(): Creates a new array populated with the results of calling a provided function on every element
const fruitLengths = fruits.map(fruit => fruit.length);
console.log('Fruit lengths:', fruitLengths); // [4, 5] for ['kiwi', 'mango']

// 9. filter(): Creates a new array with all elements that pass the test implemented by the provided function
const filteredFruits = fruits.filter(fruit => fruit.startsWith('m'));
console.log('Filtered fruits (starting with "m"):', filteredFruits); // ['mango']

// 10. concat(): Merges two or more arrays
const moreFruits = ['pineapple', 'grape'];
const allFruits = fruits.concat(moreFruits);
console.log('After concat(moreFruits):', allFruits); // ['kiwi', 'mango', 'pineapple', 'grape']
//Nav Bar

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Simple Navbar</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }
        .navbar {
            display: flex;
            justify-content: space-between;
            align-items: center;
            background-color: #333;
            padding: 15px 20px;
        }
        .navbar a {
            color: white;
            text-decoration: none;
            padding: 14px 20px;
            transition: background-color 0.3s;
        }
        .navbar a:hover {
            background-color: #575757;
        }
        .logo {
            font-size: 24px;
            font-weight: bold;
        }
        .navbar-links {
            display: flex;
        }
        .navbar-links a {
            margin-left: 20px;
        }
        .navbar-toggle {
            display: none;
            font-size: 24px;
            cursor: pointer;
        }
        @media (max-width: 600px) {
            .navbar-links {
                display: none; /* Hide links by default on small screens */
                flex-direction: column;
                width: 100%;
            }
            .navbar-links.show {
                display: flex; /* Show links when toggle is active */
            }
            .navbar-toggle {
                display: block; /* Show hamburger icon */
            }
            .navbar {
                flex-direction: column;
                align-items: flex-start;
            }
            .navbar a {
                margin-left: 0; /* Remove left margin for links in small view */
                text-align: left; /* Align text to the left */
                padding: 10px 20px; /* Adjust padding for better touch targets */
            }
        }
    </style>
</head>
<body>
    <div class="navbar">
        <div class="logo">MyLogo</div>
        <div class="navbar-toggle" onclick="toggleNavbar()">☰</div>
        <div class="navbar-links" id="navbarLinks">
            <a href="#home">Home</a>
            <a href="#about">About</a>
            <a href="#services">Services</a>
            <a href="#contact">Contact</a>
        </div>
    </div>

    <script>
        function toggleNavbar() {
            const navbarLinks = document.getElementById('navbarLinks');
            navbarLinks.classList.toggle('show'); // Toggle the "show" class on click
        }
    </script>
</body>
</html>
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.Toast
import com.google.android.material.snackbar.Snackbar
class MainActivity : AppCompatActivity() {
private lateinit var startBtn : Button
private lateinit var stopBtn : Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var task = LongOperation()
startBtn = findViewById(R.id.start)
stopBtn = findViewById(R.id.end)
startBtn.setOnClickListener {
val contextView = findViewById<View>(R.id.root)
val snack = Snackbar.make(contextView, "Demonstration of Asynchronous Task",
Snackbar.LENGTH_SHORT)
snack.show()
task.execute()
}
stopBtn.setOnClickListener {
task.cancel(true)
val contextView = findViewById<View>(R.id.root)
val snack = Snackbar.make(contextView, "Asynchronous Task Interrupted",
Snackbar.LENGTH_SHORT)
snack.show()
}
}
}
Long Operation:
import android.content.Context
import android.os.AsyncTask
import android.util.Log
import android.widget.Toast
import androidx.core.content.ContextCompat
import kotlin.coroutines.coroutineContext
class LongOperation : AsyncTask<String?, Void?, String>() {
protected override fun doInBackground(vararg params: String?): String? {
try {
Thread.sleep(100000)
} catch (e: InterruptedException) {
Log.e("LongOperation", "Interrupted", e)
return "Interrupted"
}
return "Executed"
}
override fun onPostExecute(result: String) {}
companion object {
fun execute() {}
}
}
Activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.button.MaterialButton
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="54dp"
android:layout_margin="8dp"
android:text="Start Task"
app:layout_constraintBottom_toTopOf="@+id/end"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<com.google.android.material.button.MaterialButton
android:id="@+id/end"
android:layout_width="wrap_content"
android:layout_height="54dp"
android:layout_margin="8dp"
android:text=" End Task "
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/start" />
</androidx.constraintlayout.widget.ConstraintLayout>



// App type: Empty Activity
// download the dice images form online and store it in Resource manager
// File: MainActivity.kt
// rename the package name in the below line with your folder name

package com.example.diceroller

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            DiceRollerApp()
            DiceWithButtonAndImage(
                    modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.Center)
            )
        }
    }
}

@Preview
@Composable
fun DiceRollerApp() {
    DiceWithButtonAndImage(modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.Center))
}

@Composable
fun DiceWithButtonAndImage(modifier: Modifier = Modifier) {
    var result by remember { mutableStateOf(1) }
    val imageResource =
            when (result) {
                1 -> R.drawable.dice_1
                2 -> R.drawable.dice_2
                3 -> R.drawable.dice_3
                4 -> R.drawable.dice_4
                5 -> R.drawable.dice_5
                else -> R.drawable.dice_6
            }
    Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) {
        Image(painter = painterResource(imageResource), contentDescription = result.toString())
        Spacer(modifier = Modifier.height(10.dp))
        Button(
                onClick = { result = (1..6).random() },
        ) { Text(text = "Roll", fontSize = 24.sp) }
    }
}
// App type: Empty Activity
// File: MainActivity.kt
// rename the package name in the below line with your folder name

package com.example.studentdata

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.text.font.FontWeight

data class Student(
    val name: String,
    val rollNumber: Int,
    val marks: Map<String, Int>
) {
    val totalMarks: Int = marks.values.sum()
    val percentage: Float = totalMarks / marks.size.toFloat()
}

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val student = Student(
            name = "John Doe",
            rollNumber = 12345,
            marks = mapOf(
                "Mathematics" to 85,
                "Physics" to 90,
                "Chemistry" to 78,
                "English" to 88,
                "Computer Science" to 95
            )
        )

        setContent {
            StudentInfoApp(student = student)
        }
    }
}

@Composable
fun StudentInfoApp(student: Student) {
    MaterialTheme {
        Surface(
            modifier = Modifier.fillMaxSize(),
            color = MaterialTheme.colorScheme.background
        ) {
            StudentInfo(student)
        }
    }
}

@Composable
fun StudentInfo(student: Student) {
    Column(
        modifier = Modifier
            .padding(16.dp)
            .fillMaxSize()
    ) {
        Text(
            text = "Student Information",
            fontSize = 24.sp,
            fontWeight = FontWeight.Bold,
            modifier = Modifier.padding(bottom = 16.dp)
        )

        Text(
            text = "Name: ${student.name}",
            fontSize = 18.sp,
            modifier = Modifier.padding(bottom = 8.dp)
        )

        Text(
            text = "Roll Number: ${student.rollNumber}",
            fontSize = 18.sp,
            modifier = Modifier.padding(bottom = 16.dp)
        )

        Text(
            text = "Marks:",
            fontSize = 20.sp,
            fontWeight = FontWeight.Bold,
            modifier = Modifier.padding(bottom = 8.dp)
        )

        student.marks.forEach { (subject, mark) ->
            Row(
                modifier = Modifier
                    .fillMaxWidth()
                    .padding(vertical = 4.dp),
                horizontalArrangement = Arrangement.SpaceBetween
            ) {
                Text(text = subject, fontSize = 18.sp)
                Text(text = "$mark", fontSize = 18.sp)
            }
        }

        Spacer(modifier = Modifier.height(16.dp))

        Text(
            text = "Total Marks: ${student.totalMarks}",
            fontSize = 18.sp,
            fontWeight = FontWeight.Bold
        )

        Text(
            text = "Percentage: %.2f%%".format(student.percentage),
            fontSize = 18.sp,
            fontWeight = FontWeight.Bold,
            modifier = Modifier.padding(top = 8.dp)
        )
    }
}


// App type: Empty Activity
// include the below line in dependencies in the build.gradle.kts (module) in gradle scripts
// implementation("androidx.navigation:navigation-compose:2.8.3")
// rename the package name in the below line with your folder name
// File: MainActivity.kt

package com.example.login

import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import com.example.mynavigation.ui.theme.MyNavigationTheme

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MyNavigationTheme {
                MyApplicationNavigation()
            }
        }
    }
}

@Composable
fun ScreenA(navController: NavController) {
    var email by remember { mutableStateOf("") }
    var password by remember { mutableStateOf("") }
    var message by remember { mutableStateOf("") }

    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(16.dp),
        horizontalAlignment = Alignment.CenterHorizontally,
        verticalArrangement = Arrangement.Center
    ) {
        val loginImage: Painter = painterResource(id = R.drawable.dice_1)

        Image(
            painter = loginImage,
            contentDescription = "login image",
            modifier = Modifier.size(200.dp)
        )
        Text(text = "Login")
        Spacer(modifier = Modifier.height(16.dp))

        OutlinedTextField(
            value = email,
            onValueChange = { email = it },
            label = { Text(text = "Email") }
        )
        Spacer(modifier = Modifier.height(8.dp))

        OutlinedTextField(
            value = password,
            onValueChange = { password = it },
            label = { Text(text = "Password") }
        )
        Spacer(modifier = Modifier.height(16.dp))

        Button(onClick = {
            if (email == "cse" && password == "cse") {
                navController.navigate("screenB/$email/$password")
            } else {
                navController.navigate("screenC/$email/$password")
            }
            Log.i("Credential", "email: $email password: $password")
        }) {
            Text(text = "Login")
        }
        Spacer(modifier = Modifier.height(4.dp))

        Text(text = "Forgot Password?", modifier = Modifier.clickable { })
        Spacer(modifier = Modifier.height(4.dp))
        Text(text = "or sign in with")
        Spacer(modifier = Modifier.height(16.dp))
        Text(text = message)
    }
}

@Composable
fun ScreenB(email: String, password: String) {
    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(16.dp),
        horizontalAlignment = Alignment.CenterHorizontally,
        verticalArrangement = Arrangement.Center
    ) {
        Text(text = "Email is: $email")
        Text(text = "Password is: $password")
        Text(text = "Valid")
    }
}

@Composable
fun ScreenC(email: String, password: String) {
    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(16.dp),
        horizontalAlignment = Alignment.CenterHorizontally,
        verticalArrangement = Arrangement.Center
    ) {
        val errorImage: Painter = painterResource(id = R.drawable.dice_1)
        Image(
            painter = errorImage,
            contentDescription = "Invalid email or password",
            modifier = Modifier.size(200.dp)
        )

        Text(text = "Invalid email or password.")
    }
}

@Composable
fun MyApplicationNavigation() {
    val navController = rememberNavController()
    NavHost(navController = navController, startDestination = "/screenA") {
        composable("/screenA") {
            ScreenA(navController)
        }
        composable("screenB/{email}/{password}") {
            val email = it.arguments?.getString("email") ?: ""
            val password = it.arguments?.getString("password") ?: ""
            ScreenB(email, password)
        }
        composable("screenC/{email}/{password}") {
            val email = it.arguments?.getString("email") ?: ""
            val password = it.arguments?.getString("password") ?: ""
            ScreenC(email, password)
        }
    }
}
package com.example.tipcalculator

import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.width
import androidx.compose.material3.Button
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            TipCal()
        }
    }
}

@Composable
fun TipCal() {
    var billAmount by remember {
        mutableStateOf("")
    }
    var tipPercentage by remember {
        mutableStateOf("")
    }
    var tipAmount by remember {
        mutableStateOf("")
    }
    var totalAmount by remember {
        mutableStateOf("")
    }
    Column(
        modifier = Modifier.fillMaxSize(),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        OutlinedTextField(value = billAmount, onValueChange = {
            billAmount = it
        }, label = {
            Text(text = "Enter bill amount")
        })
        Spacer(modifier = Modifier.height(4.dp))
        OutlinedTextField(value = tipPercentage, onValueChange = {
            tipPercentage  = it
        }, label = {
            Text(text = "Enter tip percentage")
        })
        Spacer(modifier = Modifier.height(4.dp))
        OutlinedTextField(enabled=false,value = tipAmount, onValueChange = {
            tipAmount  = it
        }, label = {
            Text(text = "Tip Amount")
        })
        Spacer(modifier = Modifier.height(4.dp))
        OutlinedTextField(enabled = false, value = totalAmount, onValueChange = {
            tipPercentage  = it
        }, label = {
            Text(text = "Total Amount")
        })
        Spacer(modifier = Modifier.height(4.dp))
        Button(modifier = Modifier.width(270.dp), onClick = {
            Log.i("Bill","Bill amount: ${billAmount}, Tip Percentage: ${tipPercentage}")
            val bill = billAmount.toDoubleOrNull() ?: 0.0
            val percentage = tipPercentage.toDoubleOrNull() ?: 0.0
            val tp = bill * (percentage / 100)
            tipAmount = tp.toString()
            totalAmount = (bill+tp).toString()
        }) {
            Text(text = "Pay Bill")
        }
    }
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
    TipCal()
}
// MainActivity.kt
package com.example.helloworld

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.sp

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            HelloWorld()
        }
    }
}

@Composable
fun HelloWorld() {
    Box(
        modifier = Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
        Text(
            text = "Hello World",
            color = Color.Red,
            fontSize = 24.sp,
            textAlign = TextAlign.Center
        )
    }
}

@Preview(showBackground = true)
@Composable
fun HelloWorldPreview() {
    HelloWorld()
}
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
public class javaupdate {
    public static void main(String[] args) throws ClassNotFoundException,SQLException{
        Connection conn = null;
        Statement st = null;
        String username = "system";
        String password = "1808";
        String QUERY = "UPDATE employee set job = 'manager' where empno=7999";
        try{
            conn = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/XE", username, password);
            st = conn.createStatement();
            int rows = st.executeUpdate(QUERY);
            System.out.println(rows);
        }catch(SQLException e)
        {
            e.printStackTrace();
        }
    }
}
star

Sun Nov 03 2024 20:35:15 GMT+0000 (Coordinated Universal Time)

@t4t5

star

Sun Nov 03 2024 20:34:05 GMT+0000 (Coordinated Universal Time)

@t4t5

star

Sun Nov 03 2024 19:52:55 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 19:27:20 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 19:24:51 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 19:14:55 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 19:13:20 GMT+0000 (Coordinated Universal Time)

@wtlab

star

Sun Nov 03 2024 19:10:54 GMT+0000 (Coordinated Universal Time)

@wtlab

star

Sun Nov 03 2024 18:54:46 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 18:52:17 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 18:33:15 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 18:32:46 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 18:32:21 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 18:31:53 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 18:31:02 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 18:30:17 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 18:17:47 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 18:16:43 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 18:16:21 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 18:15:16 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 18:14:53 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 18:12:03 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 18:11:44 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 17:44:24 GMT+0000 (Coordinated Universal Time)

@varuntej #python

star

Sun Nov 03 2024 17:30:06 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 17:12:12 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 16:59:56 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 16:33:59 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 16:32:11 GMT+0000 (Coordinated Universal Time)

@login123

star

Sun Nov 03 2024 16:29:47 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 16:16:49 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 16:14:42 GMT+0000 (Coordinated Universal Time)

@signup1

star

Sun Nov 03 2024 16:12:09 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 16:03:11 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 15:51:24 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 15:25:33 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 15:24:38 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 15:14:08 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 15:09:35 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 15:08:03 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 15:05:37 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 14:32:45 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 14:20:01 GMT+0000 (Coordinated Universal Time)

@signup_returns #html

star

Sun Nov 03 2024 14:13:08 GMT+0000 (Coordinated Universal Time)

@sem

star

Sun Nov 03 2024 14:12:41 GMT+0000 (Coordinated Universal Time)

@sem

star

Sun Nov 03 2024 14:11:41 GMT+0000 (Coordinated Universal Time)

@sem

star

Sun Nov 03 2024 14:11:02 GMT+0000 (Coordinated Universal Time)

@sem

star

Sun Nov 03 2024 14:10:18 GMT+0000 (Coordinated Universal Time)

@sem

star

Sun Nov 03 2024 14:09:30 GMT+0000 (Coordinated Universal Time)

@sem

star

Sun Nov 03 2024 13:56:40 GMT+0000 (Coordinated Universal Time)

@login123

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension