jsp short tutorial

32
JSP Tutorial  By Emmanuel MASABO

Upload: emmanuel-masabo

Post on 04-Jun-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 1/32

JSP Tutorial

 By Emmanuel MASABO

Page 2: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 2/32

Three-Tier Architecture 

OracleDB Server

Glassfish Server 

MicrosoftInternetExplorer 

HTML

Tuples

HTTPRequests

JDBC

Requests

Java ServerPages (JSPs)

Located@ DBLab

Located@ Your PC

Located@ Any PC

Page 3: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 3/32

Data Entry Forms 

Page 4: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 4/32

import java.sql.*;

class JdbcTest {

 public static void main (String args []) throws SQLException {

try{

// Connect to the local databaseConnection conn =

DriverManager.getConnection("jdbc:mysql://localhost:3306/student

s_db","root","");

// Query the student first names

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery ("SELECT * FROM Students");

JDBC

Page 5: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 5/32

// Print the first name out

//firstname is the 3rd attribute of Student

while (rset.next ())

System.out.println(rset.getString(3));

//close the result set, statement, and the connection

rset.close();

stmt.close();

conn.close();

}

catch(SQLException err){System.out.println(err.getMessage());

}

}

Page 6: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 6/32

  PreparedStatement Object

If you want to execute a Statement object many times, it will

normally reduce execution time to use a PreparedStatement

object instead.

PreparedStatement updateStud = conn.prepareStatement(

"UPDATE Students SET first_name = ? WHERE last_name

LIKE ?");

updateStud.setString(1, “John”);

updateStud.setString(2, “Smith”);

updateStud.executeUpdate();

Page 7: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 7/32

  PreparedStatement Object

the following two code fragments accomplish the same thing:

• Code Fragment 1:

String updateString = "UPDATE COFFEES SET SALES = 75" + "WHERE COF_NAME LIKE 'Colombian'";

stmt.executeUpdate(updateString);

• Code Fragment 2:

PreparedStatement updateSales = con.prepareStatement("UPDATE COFFEES SET SALES = ? WHERE COF_NAME

LIKE ? "); updateSales.setInt(1, 75);

updateSales.setString(2, "Colombian");

updateSales.executeUpdate():

Page 8: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 8/32

•  int getInt int columnIndex)

Retrieves the value of the designated column inthe current row of this ResultSet object as an int in the

Java programming language.

•  int getInt String columnName)

•  String getString int columnIndex)

•  String getString String columnName)

Page 9: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 9/32

Using TransactionsWhen a connection is created, it is in auto-commit mode. This means that

each individual SQL statement is treated as a transaction and will beautomatically committed right after it is executed.

conn.setAutoCommit(false);

....transaction

...

con.commit();

con.setAutoCommit(true);

Page 10: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 10/32

Page 11: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 11/32

Retrieving Exceptions

JDBC lets you see the warnings and exceptions generated by your

DBMS and by the Java compiler. To see exceptions, you can have a

catch block print them out. For example, the following two catch 

 blocks from the sample code print out a message explaining the

exception:

try {

 // Code that could generate an exception goes here.

 // If an exception is generated, the catch block below

 // will print out information about it. } catch(SQLException ex) {

System.err.println("SQLException: " + ex.getMessage());

 }  

Page 12: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 12/32

JSP Syntax 

• Comment– <%-- Comment --%>

• Expression– <%= java expression %>

• Scriplet– <% java code fragment %>

• Include– <jsp:include page="relativeURL " />

Page 13: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 13/32

Entry Form - First Attempt 

Page 14: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 14/32

Entry Form - First Attempt 

<b>Data Entry Menu</b>

<ul>

<li>

<a href=“Courses.jsp">Courses<a> </li>

<li>

<a href=“Classes.jsp">Classes<a> 

</li>

<li><a href=“Students.jsp">Students<a> 

</li>

</ul>

Menu HTML Code 

Page 15: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 15/32

Entry Form - First Attempt 

<html>

<body>

<table>

<tr>

<td>

<jsp:include page="menu.html" /></td>

<td>

Open connection code

Statement code

Presentation codeClose connection code

</td>

</tr>

</table>

</body>

</html>

JSP Code 

Page 16: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 16/32

Entry Form - First Attempt 

<%-- Set the scripting language to java and --%>

<%-- import the java.sql package --%>

<%@ page language="java" import="java.sql.*" %>

<%try {

// Make a connection to the MySql datasource

Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3

306/students_db","root","");%>

NB:In the case we get no suitable driver… message, we can useClass.forName("com.mysql.jdbc.Driver").newInstance(); before connection or we can go to

services, drivers and add mysql driver. Don’t forget to add the mysql connect driver also inthe library folder.

Open Connectivity Code 

Page 17: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 17/32

Entry Form - First Attempt 

<%

// Create the statement

Statement statement = conn.createStatement();

// Use the statement to SELECT the student attributes// FROM the Student table.

ResultSet rs = statement.executeQuery

("SELECT * FROM Students");

%>

Statement Code 

Page 18: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 18/32

Entry Form - First Attempt 

<table>

<tr>

<th>SSN</th>

<th>First</th>

<th>Last</th>

<th>College</th></tr>

<%

// Iterate over the ResultSet

while ( rs.next() ) {

%>Iteration Code

<%

}

%>

</table>

Presentation Code 

Page 19: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 19/32

Entry Form - First Attempt 

Page 20: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 20/32

Page 21: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 21/32

Entry Form - First Attempt 

<%

// Close the ResultSet

rs.close();

// Close the Statementstatement.close();

// Close the Connection

conn.close();

} catch (SQLException sqle) {

out.println(sqle.getMessage());

} catch (Exception e) {

out.println(e.getMessage());

}

%>

Close Connectivity Code

Page 22: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 22/32

Entry Form - Second Attempt 

Page 23: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 23/32

Entry Form - Second Attempt 

<html>

<body>

<table>

<tr>

<td>

Open connection code

Insertion Code

Statement code

Presentation code

Close connection code

</td>

</tr>

</table>

</body>

</html>

JSP Code

Page 24: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 24/32

Entry Form - Second Attempt 

// Check if an insertion is requestedString action = request.getParameter("action");

if (action != null && action.equals("insert")) {

conn.setAutoCommit(false);

// Create the prepared statement and use it to// INSERT the student attrs INTO the Students table.

PreparedStatement pstmt = conn.prepareStatement(

("INSERT INTO Students VALUES (?, ?, ?, ?, ?)"));

pstmt.setInt(1,Integer.parseInt(request.getParameter("SSN")));

pstmt.setString(2, request.getParameter("ID"));pstmt.setString(3,request.getParameter("FIRSTNAME"));

pstmt.setString(4,request.getParameter("LASTNAME"));

pstmt.setString(5,request.getParameter("COLLEGE"));

pstmt.executeUpdate();

conn.commit();

conn.setAutoCommit(true);}

Insertion Code

Page 25: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 25/32

Entry Form - Second Attempt

<table>

<tr>

<th>SSN</th>

<th>First</th>

<th>Last</th>

<th>College</th></tr>

Insert Form Code

<%

// Iterate over the ResultSet

while ( rs.next() ) {%>

Iteration Code

<%

}

%>

</table>

Presentation Code 

Page 26: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 26/32

Entry Form - Second Attempt

<tr>

<form action="students.jsp" method="get">

<input type="hidden" value="insert" name="action">

<th><input value="" name="SSN" size="10"></th>

<th><input value="" name="ID" size="10"></th>

<th><input value="" name="FIRSTNAME" size="15"></th>

<th><input value="" name="LASTNAME" size="15"></th>

<th><input value="" name="COLLEGE" size="15"></th>

<th><input type="submit" value="Insert"></th>

</form></tr>

Insert Form Code 

Page 27: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 27/32

Entry Form - Third Attempt

Page 28: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 28/32

Entry Form - Third Attempt

<html>

<body>

<table>

<tr>

<td>

Open connection codeInsertion Code

Update Code

Delete Code

Statement code

Presentation codeClose connection code

</td>

</tr>

</table>

</body>

</html>

JSP Code

Page 29: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 29/32

Entry Form - Third Attempt

// Check if an update is requestedif (action != null && action.equals("update")) {

conn.setAutoCommit(false);

// Create the prepared statement and use it to

// UPDATE the student attributes in the Student table.PreparedStatement pstatement = conn.prepareStatement(

"UPDATE Students SET ID = ?, FIRSTNAME = ?, " +

"LASTNAME = ?, COLLEGE = ? WHERE SSN = ?");

pstatement.setString(1, request.getParameter("ID"));

pstatement.setString(2, request.getParameter("FIRSTNAME"));pstatement.setString(3,request.getParameter("LASTNAME"));

pstatement.setString(4,request.getParameter("COLLEGE"));

pstatement.setString(5,request.getParameter("SSN"));

int rowCount = pstatement.executeUpdate();

//conn.setAutoCommit(false);

conn.setAutoCommit(true);}

Update Code

Page 30: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 30/32

Entry Form - Third Attempt

// Check if a delete is requestedif (action != null && action.equals("delete")) {

conn.setAutoCommit(false);

// Create the prepared statement and use it to

// DELETE the student FROM the Student table.

PreparedStatement pstmt = conn.prepareStatement(

"DELETE FROM Student WHERE SSN = ?");

pstmt.setInt(1,

Integer.parseInt(request.getParameter("SSN")));int rowCount = pstmt.executeUpdate();

//conn.setAutoCommit(false);

conn.setAutoCommit(true);

}

Delete Code

Page 31: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 31/32

Entry Form - Third Attempt

<table>

<tr>

<th>SSN</th>

<th>First</th>

<th>Last</th>

<th>College</th></tr>

Insert Form Code

<%

// Iterate over the ResultSet

while ( rs.next() ) {%>

Iteration Code

<%

}

%>

</table>

Presentation Code 

Page 32: JSP Short Tutorial

8/13/2019 JSP Short Tutorial

http://slidepdf.com/reader/full/jsp-short-tutorial 32/32

Entry Form - Third Attempt

<tr>

<form action="students.jsp" method="get">

<input type="hidden" value="update" name="action">

<td><input value="<%= rs.getInt("SSN") %>" name="SSN"></td>

<td><input value="<%= rs.getString("ID") %>" name="ID"></td>

<td><input value=" <%= rs.getString("first_name") %>"name="FIRSTNAME"></td>

<td><input value="<%= rs.getString("last_name") %>"name="LASTNAME"></td>

<td><input value=" <%= rs.getString("college") %>"name="COLLEGE"></td>

<td><input type="submit" value="Update"></td>

</form>

<form action="students2.jsp" method="get"><input type="hidden" value="delete" name="action">

<input type="hidden" value="<%= rs.getInt("SSN") %>" name="SSN">

<td><input type="submit" value="Delete"></td>

</form>

</tr>

Iteration Code changed