8.Write a swing program to connect database and display student details in JTable.
package awt;
import java.sql.*;
import java.io.*;
public class jdbc {
public static void main(String[] args) throws Exception {
Statement st;
ResultSet rs;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int ch, rno, n;
String na, ad, ph;
// Correct Driver
Class.forName("com.mysql.cj.jdbc.Driver");
// Correct Connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java",
"root", "1234");
st = conn.createStatement();
do {
System.out.println("\nDATABASE MANIPULATION USING JDBC");
System.out.println("1. INSERT");
System.out.println("2. DELETE");
System.out.println("3. UPDATE");
System.out.println("4. DISPLAY");
System.out.println("5. EXIT");
System.out.print("Enter your choice: ");
ch = Integer.parseInt(br.readLine());
switch (ch) {
case 1:
System.out.print("Enter Id to Insert: ");
rno = Integer.parseInt(br.readLine());
System.out.print("Enter name to Insert: ");
na = br.readLine();
System.out.print("Enter address to Insert: ");
ad = br.readLine();
System.out.print("Enter phone number to Insert: ");
ph = br.readLine();
try {
n = st.executeUpdate("INSERT INTO student_tab VALUES (" + rno + ",'"
+ na + "','" ad + "','" + ph + "')");
System.out.println(n + " row(s) Inserted!");
} catch (SQLException e) {
System.out.println("Insertion Error: " + e.getMessage());
}
break;
case 2:
System.out.print("Enter Id to Delete: ");
rno = Integer.parseInt(br.readLine());
try {
n = st.executeUpdate("DELETE FROM student_tab WHERE id=" + rno);
System.out.println(n + " row(s) Deleted!");
} catch (SQLException e) {
System.out.println("Deletion Error: " + e.getMessage());
}
break;
case 3:
System.out.print("Enter Id to Update: ");
rno = Integer.parseInt(br.readLine());
System.out.print("Enter new name: ");
na = br.readLine();
try {
n = st.executeUpdate("UPDATE student_tab SET name='" + na + "' WHERE
id=" + rno);
System.out.println(n + " row(s) Updated!");
} catch (SQLException e) {
System.out.println("Update Error: " + e.getMessage());
}
break;
case 4:
try {
rs = st.executeQuery("SELECT * FROM student_tab");
System.out.println("ID\tNAME\tADDRESS\tPHONE");
System.out.println("*****************************************");
while (rs.next()) {
System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t" +
rs.getString(3) + "\t" + rs.getString(4));
}
} catch (SQLException e) {
System.out.println("Display Error: " + e.getMessage());
}
break;
case 5:
System.out.println("Exiting Program.");
break;
default:
System.out.println("Invalid Choice! Please select between 1-5.");
}
} while (ch != 5);
st.close();
conn.close();
}
}
10. Write a swing program to check login validation by using database.
package awt;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class LoginCheck extends JFrame {
JTextField userField;
JPasswordField passField;
JButton loginBtn;
JLabel statusLabel;
// Database connection info — change if needed
final String DB_URL = "jdbc:mysql://localhost:3306/testdb";
final String DB_USER = "root"; // <-- change this if your user is different
final String DB_PASS = "1234"; // <-- change this to your MySQL root password
public LoginCheck() {
setTitle("Login Checker");
setSize(350, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
JLabel userLabel = new JLabel("Username:");
userLabel.setBounds(30, 30, 80, 25);
add(userLabel);
userField = new JTextField();
userField.setBounds(120, 30, 160, 25);
add(userField);
JLabel passLabel = new JLabel("Password:");
passLabel.setBounds(30, 70, 80, 25);
add(passLabel);
passField = new JPasswordField();
passField.setBounds(120, 70, 160, 25);
add(passField);
loginBtn = new JButton("Login");
loginBtn.setBounds(120, 110, 80, 25);
add(loginBtn);
statusLabel = new JLabel("");
statusLabel.setBounds(30, 140, 300, 25);
add(statusLabel);
loginBtn.addActionListener(e -> checkLogin());
setLocationRelativeTo(null);
setVisible(true);
}
private void checkLogin() {
String username = userField.getText().trim();
String password = new String(passField.getPassword()).trim();
System.out.println("Trying: " + username + " / " + password);
if (username.isEmpty() || password.isEmpty()) {
statusLabel.setText("Please fill both fields.");
return;
}
try {
// Load JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
// Connect to database
Connection con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
// Query with prepared statement
String sql = "SELECT * FROM users WHERE username=? AND password=?";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, username);
pst.setString(2, password);
ResultSet rs = pst.executeQuery();
if (rs.next()) {
JOptionPane.showMessageDialog(null, "Valid Username and Password",
"Success", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Invalid Username or Password", "Login
Failed", JOptionPane.ERROR_MESSAGE);
}
rs.close();
pst.close();
con.close();
} catch (Exception ex) {
ex.printStackTrace(); // Show in console
statusLabel.setText("⚠ Error: " + ex.getMessage());
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(LoginCheck::new);
}
}
11. Write a program create distributed system using RMI.
-RMIProject.Client
ClientApp.java
package RMIProject.client;
import RMIProject.shared.ChatServer;
import RMIProject.shared.ClientCallBack;
import javax.swing.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class ClientApp extends JFrame {
private JTextField inputField;
private JTextArea chatArea;
private JButton sendButton;
private ChatServer server;
private ClientCallBack clientStub;
public ClientApp() {
setTitle("RMI Chat Client");
setSize(400, 300);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
chatArea = new JTextArea();
chatArea.setBounds(30, 20, 320, 160);
chatArea.setEditable(false);
add(chatArea);
inputField = new JTextField();
inputField.setBounds(30, 200, 220, 30);
add(inputField);
sendButton = new JButton("Send");
sendButton.setBounds(260, 200, 90, 30);
add(sendButton);
try {
Registry registry = LocateRegistry.getRegistry("localhost", 1099);
server = (ChatServer) registry.lookup("ChatService");
clientStub = new ClientCallBackImpl(chatArea);
server.registerClient(clientStub);
} catch (Exception e) {
chatArea.setText("❌ Error connecting to server: " + e.getMessage());
sendButton.addActionListener(e -> {
String msg = inputField.getText();
if (!msg.isEmpty()) {
try {
chatArea.append("You: " + msg + "\n");
server.sendMessage(msg, clientStub);
inputField.setText("");
} catch (Exception ex) {
chatArea.append("❌ Error sending message\n");
}
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new ClientApp().setVisible(true));
}
}
- ClientCallBackImpl.java
package RMIProject.client;
import RMIProject.shared.ClientCallBack;
import javax.swing.*;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class ClientCallBackImpl extends UnicastRemoteObject implements ClientCallBack {
private JTextArea chatArea;
public ClientCallBackImpl(JTextArea chatArea) throws RemoteException {
this.chatArea = chatArea;
}
@Override
public void retrieveMessage(String msg) throws RemoteException {
chatArea.append(msg + "\n");
}
}
-RMIProject.server
ChatServerImpl.java
package RMIProject.server;
import RMIProject.shared.ChatServer;
import RMIProject.shared.ClientCallBack;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class ChatServerImpl extends UnicastRemoteObject implements ChatServer {
private ClientCallBack client;
public ChatServerImpl() throws RemoteException {
super();
}
@Override
public void sendMessage(String message, ClientCallBack client) throws RemoteException
{
System.out.println("Client says: " + message);
client.retrieveMessage("Server received: " + message);
}
@Override
public void registerClient(ClientCallBack client) throws RemoteException {
this.client = client;
}
public void broadcastFromServer(String msg) throws RemoteException {
if (client != null) {
client.retrieveMessage("Server: " + msg);
}
}
public void setClient(ClientCallBack client) {
this.client = client;
}}
-ServerApp.java
package RMIProject.server;
import RMIProject.shared.ClientCallBack;
import javax.swing.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class ServerApp extends JFrame {
private JTextArea chatArea;
private JTextField inputField;
private JButton sendButton;
private ChatServerImpl server;
public ServerApp() {
setTitle("RMI Chat Server");
setSize(400, 300);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
chatArea = new JTextArea();
chatArea.setBounds(30, 20, 320, 160);
chatArea.setEditable(false);
add(chatArea);
inputField = new JTextField();
inputField.setBounds(30, 200, 220, 30);
add(inputField);
sendButton = new JButton("Send");
sendButton.setBounds(260, 200, 90, 30);
add(sendButton);
try {
server = new ChatServerImpl() {
@Override
public void sendMessage(String message, ClientCallBack client) {
chatArea.append("Client: " + message + "\n");
try {
client.retrieveMessage("Server received: " + message);
} catch (Exception e) {
chatArea.append("❌ Error replying\n");
}
}
@Override
public void registerClient(ClientCallBack client) {
chatArea.append("✅ Client registered\n");
setClient(client);
}
};
Registry registry = LocateRegistry.createRegistry(1099);
registry.rebind("ChatService", server);
chatArea.append("🟢 Server is running...\n");
} catch (Exception e) {
chatArea.setText("❌ Server failed: " + e.getMessage());
sendButton.addActionListener(e -> {
String msg = inputField.getText();
if (!msg.isEmpty()) {
try {
server.broadcastFromServer(msg);
chatArea.append("You: " + msg + "\n");
inputField.setText("");
} catch (Exception ex) {
chatArea.append("❌ Error sending to client\n");
}
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new ServerApp().setVisible(true));
}}
-RMIProject.shared
-ChatServer.java
package RMIProject.shared;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface ChatServer extends Remote {
void sendMessage(String message, ClientCallBack client) throws RemoteException;
void registerClient(ClientCallBack client) throws RemoteException;
}
-ClientCallBack.java
package RMIProject.shared;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface ClientCallBack extends Remote {
void retrieveMessage(String msg) throws RemoteException;
}
12. Write a program using JSP and Servlet to accept user details through a form and
display a personalized welcome message.
-WelcomeServlet.java
package example;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/WelcomeServlet")
public class WelcomeServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("username");
String email = request.getParameter("email");
String gender = request.getParameter("gender");
String country = request.getParameter("country");
request.setAttribute("name", name);
request.setAttribute("email", email);
request.setAttribute("gender", gender);
request.setAttribute("country", country);
RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp");
rd.forward(request, response);
}}
-index.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>User Form</title>
</head>
<body>
<h2>User Registration</h2>
<form action="WelcomeServlet" method="post">
Username: <input type="text" name="username" required><br><br>
Email: <input type="email" name="email" required><br><br>
Gender:
<input type="radio" name="gender" value="Male" checked> Male
<input type="radio" name="gender" value="Female"> Female<br><br>
Country:
<select name="country">
<option value="Nepal">Nepal</option>
<option value="India">India</option>
<option value="USA">USA</option>
</select><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
-Welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Welcome Page</title>
</head>
<body>
<h2>Welcome Page</h2>
<p>
Welcome <strong><%= request.getAttribute("name") %></strong> from
<strong><%= request.getAttribute("country") %></strong>!<br>
We have sent a confirmation email to <strong><%= request.getAttribute("email")
%></strong>.<br>
Your gender: <strong><%= request.getAttribute("gender") %></strong>
</p>
</body>
</html>
-Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>example.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/WelcomeServlet</url-pattern>
</servlet-mapping> </web-app>
13.Write a Java Servlet program to demonstrate the use of Cookies and Session
management.
-CookieServlet.java
package cookie;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = request.getParameter("username");
Cookie cookie = new Cookie("userName", name);
response.addCookie(cookie); // Store cookie in response
out.println("<html><body>");
out.println("<h2>Cookie Set!</h2>");
out.println("<p>Name stored in cookie: " + name + "</p>");
out.println("</body></html>");
}
}
-SessionServlet.java
package Session;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = request.getParameter("username");
HttpSession session = request.getSession(); // Get or create session
session.setAttribute("userName", name);
out.println("<html><body>");
out.println("<h2>Session Set!</h2>");
out.println("<p>Name stored in session: " + name + "</p>");
out.println("</body></html>");
}
}
-index.html
<!DOCTYPE html>
<html>
<head>
<title>Cookie and Session Example</title>
</head>
<body>
<h2>Enter Your Name</h2>
<form action="cookie-display/CookieServlet" method="post">
<label>Name (for Cookie):</label>
<input type="text" name="username">
<input type="submit" value="Send via Cookie">
</form>
<br><br>
<form action="session-display/SessionServlet" method="post">
<label>Name (for Session):</label>
<input type="text" name="username">
<input type="submit" value="Send via Session">
</form>
</body>
</html>