web programming assistant professor xiaozhong liu
DESCRIPTION
Servlet + File Compute test Please submit your information First number: Second number: web.html copy to project folder/WebContent/TRANSCRIPT
![Page 1: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/1.jpg)
Web Programming
Assistant Professor Xiaozhong Liu
http://scholarwiki.indiana.edu/S517/S517.html
![Page 2: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/2.jpg)
Compare
Read from File Write to File
FileReader file = new FileReader("test.txt");
Scanner s = new Scanner(reader); while( s.hasNext()) { System.out.println(s.next()); }
s.close();
BufferedReader reader = new BufferedReader(file);
FileWriter file = new FileWriter("test.txt");
writer.write(“Hello, I’m writing…”);
writer.close();
BufferedWriter writer = new BufferedReader(file);
![Page 3: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/3.jpg)
Servlet + File<html><head><title>Compute test</title></head><body><h2>Please submit your information</h2><form method="post" action ="/S517-Web/addnums_load" ><table border="0"><tr><td valign="top">First number: </td> <td valign="top"><input type="text" name="firstnum" size="20"></td></tr><tr><td valign="top">Second number: </td> <td valign="top"><input type="text" name="secondname" size="20"></td></tr><tr><td valign="top"><input type="submit" value="Submit Info"></td></tr></table></form></body></html>
web.html copy to project folder/WebContent/
![Page 4: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/4.jpg)
Servlet + Fileprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = "/web.html";request.getRequestDispatcher(path).forward(request, response);
}
load the html or jsp file from hard drive
![Page 5: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/5.jpg)
Scope of variables
public class test {String name; int time;
public void connect () { int age;String name;for (int i = 0; i < 5; i++) { String bookname;}
}
}
![Page 6: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/6.jpg)
Scope of variables
public class test {String name; int time;
public void connect () { int age;String name;for (int i = 0; i < 5; i++) { String bookname;}
}
}
Class global variable: belongs to the class
local variable: belongs to the method
temp variable: belongs to the loop
![Page 7: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/7.jpg)
Information problem…
Input Output
jTextFieldGUIServlet
File?Database?Internet?
Error???
![Page 8: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/8.jpg)
Database: Table
Fields (of table)Type: String Type: int
Data
![Page 9: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/9.jpg)
Java open DB
Java
JDBC (Java Database Connectivity)
Database
Jar, complied Java classes
![Page 10: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/10.jpg)
Java open DB
![Page 11: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/11.jpg)
Java operates DB
1.Establish a connection (Connection class)2.Create JDBC Statements (Statement class)3.Execute SQL Statements (stmtement.executeUpdate…)4.GET ResultSet (ResultSet class)5.Close connections
![Page 12: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/12.jpg)
Java – DB Connectionimport java.sql.*;
Load the vendor specific driverClass.forName("oracle.jdbc.driver.OracleDriver");
// for Oracle database
Class.forName("org.gjt.mm.mysql.Driver");// for MYSQL database
Make the connection Connection con =
DriverManager.getConnection(…);
![Page 13: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/13.jpg)
Java open DB
Connection connection;Statement statement = null;Class.forName("org.gjt.mm.mysql.Driver");String url = "jdbc:mysql://rdc04.uits.iu.edu:3264/S517DB";String username = "S517";String password = "S517"; connection = DriverManager.getConnection (url, username, password);statement = connection.createStatement();
![Page 14: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/14.jpg)
Java open DB
String url = "jdbc:mysql://rdc04.uits.iu.edu:3264/S517DB”;
Server Address
Port Number on DB server
DB name
![Page 15: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/15.jpg)
Java read from DB
ResultSet rs = statement.executeQuery("select * from user"); while (rs.next()) { //Read each record
int ID = rs.getInt("ID");String firstname = rs.getString("Firstname");String lastname = rs.getString("Lastname");int age = rs.getInt("Age");String gender = rs.getString("gender");System.out.println(ID + "\t" + firstname + "\t"+ lastname + "\t" + age + "\t" +
gender + "\t");}
rs.close(); statement.close();connection.close();
![Page 16: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/16.jpg)
Java read from DB
rs.previous(); / / go back in the RS
rs.relative(-5); / / go 5 records back
rs.relative(7); / / go 7 records forward
rs.absolute(100); / / go to 100th record
![Page 17: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/17.jpg)
Java DB updateConnection connection = DriverManager.getConnection (url, username, password);Statement statement = connection.createStatement();
statement.executeUpdate("insert into sometable…"); //shows how many rows are affected
statement.close();connection.close();
Insert, Delete, Update…
![Page 18: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/18.jpg)
Basic DB search querySelect * from user // Get all the record from user table
Select Firstname, age, gender from user // Get Firstname, age, gender fields for all the record from user table
Select * from user where age > 15 // Get all the record from user table where age larger than 15
Select * from user where Firstname = ‘Jenny’ // Get all the record from user table where Firstname is ‘Jenny’
![Page 19: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/19.jpg)
DB TransactionTransaction control can be implemented by the Connection object, default mode is auto-commit, (each sql statement is treated as a transaction)
We can turn off the auto-commit mode with con.setAutoCommit(false);
Or turn on by con.setAutoCommit(true);
If auto-commit is off, no SQL statement will be committed until - con.commit();
![Page 20: Web Programming Assistant Professor Xiaozhong Liu](https://reader036.vdocuments.mx/reader036/viewer/2022062317/5a4d1b817f8b9ab0599bb15b/html5/thumbnails/20.jpg)
DB Metadata
Statement stmt = conn.createStatement();ResultSet resultSet = stmt.executeQuery("SELECT * FROM student");ResultSetMetaData md = resultSet.getMetaData();
for (int i = 1; i <= md.getColumnCount(); i++)System.out.print(md.getColumnLabel(i) + " ");
System.out.println();while (resultSet.next()) {
for (int i = 1; i <= md.getColumnCount(); i++)System.out.print(resultSet.getString(i) + " ");
System.out.println();}