View
221
Download
0
Category
Preview:
DESCRIPTION
Servlet + File Compute test Please submit your information First number: Second number: web.html copy to project folder/WebContent/
Citation preview
Web Programming
Assistant Professor Xiaozhong Liu
http://scholarwiki.indiana.edu/S517/S517.html
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);
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/
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
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;}
}
}
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
Information problem…
Input Output
jTextFieldGUIServlet
File?Database?Internet?
Error???
Database: Table
Fields (of table)Type: String Type: int
Data
Java open DB
Java
JDBC (Java Database Connectivity)
Database
Jar, complied Java classes
Java open DB
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
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(…);
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();
Java open DB
String url = "jdbc:mysql://rdc04.uits.iu.edu:3264/S517DB”;
Server Address
Port Number on DB server
DB name
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();
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
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…
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’
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();
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();}
Recommended