0% found this document useful (0 votes)
97 views

Servlet/JSP/JDBC Connect #2: Sensitivity: Internal & Restricted

Uploaded by

nivas reddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views

Servlet/JSP/JDBC Connect #2: Sensitivity: Internal & Restricted

Uploaded by

nivas reddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Servlet/JSP/JDBC

Connect #2

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 1


Agenda

Create a Web Application using Servlets and JDBC

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 2


Objectives
At the end of this session, you will be able to:
▪ Understand interaction of Servlet with database using JDBC

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 3


Connect#1 Recap

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 4


Connect#1 Recap
In our previous connect we have done the following
1. Created a login page using HTML
2. Applied style to login page using CSS
3. Validated the values in the textboxes using JavaScript
4. Created a Servlet Page to receive the request, validate the data and provide a
response

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 5


Connect#1 Recap

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 6


Adding JDBC code
to Servlet

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 7


Login Application with JDBC
To do list:
1. Reuse the login page from earlier demo
2. Create a table "user_table" in oracle and add sample records
3. Modify the Servlet to write JDBC code to validate the user details from
user_table

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 8


1. Reuse Login Page – No change
<form action="LoginServlet" name="LoginForm">
<div>
<br>
<table>
<tr><td>User Name</td><td> <input type="text" name="uname"/></td></tr>
<tr><td>Password </td><td> <input type="password" name="pwd"/></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value=“Login" onclick="return
loginValidation()"/></td></tr>
</table>
</div>
</form>

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 9


2. Create user_table in the database and add
records

• SQL> create table user_table ( username varchar2(20), password


varchar2(20));

• SQL> insert into user_table values('Admin','wipro@123’);

• SQL> insert into user_table values('PJP','PJP@123’);

• SQL> commit;

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 10


3. Add JDBC code in Servlet
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
try{
PrintWriter out = response.getWriter();
String userName = request.getParameter("uname");
String password = request.getParameter("pwd");
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
String sql = "select * from user_table where username=? and password=?";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, userName);
st.setString(2, password);
ResultSet rs = st.executeQuery();
Add ojdbc5.jar to WEB-INF/lib folder
if(rs.next())
out.println("<font color=green><b>Welcome User!</b></font>");
else
out.println("<font color=red><b>Invalid user name or password</b></font>");
out.close();
}
catch(Exception e){e.printStackTrace();}
}
}

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 11


Output

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 12


Output

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 13


Using MVC
design pattern

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 14


Using MVC design Pattern
To do list:
▪ Create a UserBean in bean package
▪ Create a DBUtil class in util package
▪ Create a UserDAO in dao package
▪ Update servlets package to controller
▪ Modify Servlet

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 15


4. Using MVC design pattern

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 16


UserBean
public class UserBean {
private String userName;
private String password;

public UserBean() {
}

public String getUserName() {


return userName;
}

public void setUserName(String userName) {


this.userName = userName;
}

public String getPassword() {


return password;
}

public void setPassword(String password) {


this.password = password;
}
}

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 17


DBUtil
public class DBUtil {
public static Connection getConnection(){
Connection con = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
}
catch(Exception e){e.printStackTrace();}}
return con;
}
}

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 18


UserDAO
public class UserDAO {
public String checkUser(UserBean userBean){
String status = "Fail";
try{
String sql = "select * from user_table where username=? and password=?";
Connection con = DBUtil.getConnection();
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, userBean.getUserName());
st.setString(2, userBean.getPassword());
ResultSet rs = st.executeQuery();
if(rs.next())
status = "Success";
st.close();
con.close();
}
catch(Exception e){e.printStackTrace();}
return status;
}

}
Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 19
LoginServlet
public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws


ServletException, IOException {
PrintWriter out = response.getWriter();
String userName = request.getParameter("uname");
String password = request.getParameter("pwd");
UserBean userBean = new UserBean();
userBean.setUserName(userName);
userBean.setPassword(password);
UserDAO dao = new UserDAO();
String status = dao.checkUser(userBean);
if(status.equals("Success"))
{
response.sendRedirect("Success.html");
}
else{
response.sendRedirect("Fail.html");
}
out.close();
}
}

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 20


Output

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 21


Output

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 22


Knowledge Check

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 23


Knowledge Check
▪ Which of the following method is used to load the JDBC driver?
1. Class.forName()
2. DriverManager.getConnection()
3. Con.prepareStatement()

▪ Which of the following method is used to establish a connection with


database?
1. Class.forName()
2. DriverManager.getConnection()
3. Con.prepareStatement()

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 24


Knowledge Check
▪ What is the return type of DriverManager.getConnection() method?
1. Connection
2. String
3. Statement

▪ What is the return type of executeUpdate() method?


1. String
2. boolean
3. int

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 25


Exercise

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 26


Exercise
▪ Create a Menu.html with the following links
1. Insert a Student
2. Update a Student
3. Delete a Student
4. Select a Student
5. Select All Students
If the links are clicked appropriate html with relevant controls should
open and it should perform the given operation

You can refer https://www.javatpoint.com/crud-in-servlet

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 27


Servlet life cycle

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 28


Thank you

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 29

You might also like