Unit4 Webtechnology
Unit4 Webtechnology
Gadiraju Dinesh
2022115094
SUGGESTED ACTIVITY 1:
3) Session tracking ensures only logged-in users can access the dashboard.
Database Setup
USE servlet_demo;
);
('admin', 'password123'),
('user', 'userpass');
Servlet Code
1. LoginServlet.java
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
String query = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
// Valid user, create session
HttpSession session = request.getSession();
session.setAttribute("username", username);
// Redirect to Dashboard
response.sendRedirect("dashboard");
} else {
out.println("<h3>Invalid username or password!</h3>");
out.println("<a href='login.html'>Try Again</a>");
}
stmt.close();
conn.close();
} catch (Exception e) {
out.println("<h3>Error: " + e.getMessage() + "</h3>");
}
}
}
2. DashboardServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
response.setContentType("text/html");
out.println("<a href='logout'>Logout</a>");
} else {
response.sendRedirect("login.html");
3) LogoutServlet.java :
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
if (session != null) {
response.sendRedirect("login.html");
Login.html
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<label for="username">Username:</label>
<label for="password">Password:</label>
<button type="submit">Login</button>
</form>
</body>
</html>
Web.xml
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DashboardServlet</servlet-name>
<servlet-class>DashboardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DashboardServlet</servlet-name>
<url-pattern>/dashboard</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/logout</url-pattern>
</servlet-mapping>
</web-app>
SUGGESTED ACTIVITY 2:
4) The session is tracked to ensure only logged-in users access the dashboard.
Database Setup:
USE jsf_demo;
);
('admin', 'password123'),
('user', 'userpass');
JSF Application
import java.io.Serializable;
import java.sql.*;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
@ManagedBean
@SessionScoped
return username;
this.username = username;
return password;
this.password = password;
}
public boolean isLoggedIn() {
return loggedIn;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String query = "SELECT * FROM users WHERE username = ? AND password = ?";
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
loggedIn = true;
} else {
FacesContext.getCurrentInstance().addMessage(null,
return "login";
} catch (Exception e) {
e.printStackTrace();
return "login";
loggedIn = false;
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
return "login?faces-redirect=true";
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>Login</title>
</h:head>
<h:body>
<h2>Login</h2>
<h:form>
</h:form>
</h:body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>Dashboard</title>
</h:head>
<h:body>
<h2>Welcome, #{loginBean.username}!</h2>
<h:form>
</h:form>
</h:body>
</html>
Web.xml
<servlet>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
</web-app>