Create a JSP that displays a form when the doGet method is invoked. The form wil
ID: 3911768 • Letter: C
Question
Create a JSP that displays a form when the doGet method is invoked. The form will contain a post action that directs the form post back to the same JSP, which in the doPost method will save the form data to a database using a Java Bean and a Custom Tag. Use your Oracle account to make the DB connection. After the form data has been saved to the database, respond back with a query from the database displaying all the current records contained in the database, in an appealing format. The form must contain a minimum of three input fields.
Java bean code
package beans;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.servlet.http.HttpServlet;
public class dillonIsaacsWeek6 extends HttpServlet {
private Connection con = null;
private String fName;
private String mName;
private String lName;
public String getfName() {
return fName;
}
public void setfName(String fName) {
this.fName = fName;
}
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public String getlName() {
return lName;
}
public void setlName(String lName) {
this.lName = lName;
}
public void init() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "student1", "pass");
Statement stmt = con.createStatement();
stmt.executeUpdate("CREATE TABLE MYTABLE (FNAME VARCHAR2(20), MNAME VARCHAR2(40), LNAME VARCHAR2(40))");
stmt.close();
} catch (Exception e) {
}
}
public List<Vector<String>> saveAndLoadUsers() throws SQLException {
if (con == null) {
init();
}
Statement stmt = con.createStatement();
stmt.executeUpdate(
"INSERT INTO MYTABLE VALUES('" + this.fName + "', '" + this.mName + "', '" + this.lName + "')");
List<Vector<String>> result = new ArrayList<Vector<String>>();
Vector<String> row = new Vector<String>();
ResultSet rset = stmt.executeQuery("SELECT * from MYTABLE");
while (rset.next()) {
row.add(rset.getString("FNAME"));
row.add(rset.getString("MNAME"));
row.add(rset.getString("LNAME"));
result.add(row);
}
stmt.close();
return result;
}
}
============================================================================================================================================================================================================================================================================================
index.jsp code
<html>
<body>
<%@ page import="java.util.*" %>
<jsp:useBean id="formPost" class="beans.dillonIsaacsWeek6">
<jsp:setProperty name="formPost" property="fName" param="FNAME" />
<jsp:setProperty name="formPost" property="mName" param="MNAME" />
<jsp:setProperty name="formPost" property="lName" param="LNAME" />
</jsp:useBean>
<% formPost.init(); %>
<%
if(request.getMethod().equals("GET"))
{
%>
<form action='<%=request.getRequestURI()%>' method='post' >
First Name: <input type='text' name='FNAME' /><br>
Middle Name: <input type='text' name='MNAME' /><br>
Last Name: <input type='text' name='LNAME' />
<input type='submit' value='Submit' />
</form>
<%
}
if(request.getMethod().equals("POST"))
{
try
{
List<Vector<String>> rset = formPost.saveAndLoadUsers();
for(int i=0; i<rset.size(); i++)
{
Vector<String> row = rset.get(i);
}
%>
<pre>Current Names (First, Middle, Last): <%=rset.get(0) %></pre>
<%
}
catch (Exception e)
{
out.println(e.getMessage());
}
}
%>
</body>
</html>
Explanation / Answer
SORCE CODE:
package beans;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.servlet.http.HttpServlet;
public class chegg_index extends HttpServlet {
private Connection con = null;
private String fName;
private String mName;
private String lName;
public String getfName() {
return fName;
}
public void setfName(String fName) {
this.fName = fName;
}
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public String getlName() {
return lName;
}
public void setlName(String lName) {
this.lName = lName;
}
public void init() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "student1", "pass");
} catch (Exception e) {
}
}
public List<Vector<String>> saveAndLoadUsers() throws SQLException {
if (con == null) {
init();
}
Statement stmt2 = con.createStatement();
Statement stmt1 = con.createStatement();
ResultSet rs =stmt1.executeQuery("select table_name from user_tables where table_name='MYTABLE'");
if(!rs.next()){
stmt2.executeUpdate("CREATE TABLE MYTABLE (FNAME VARCHAR2(20), MNAME VARCHAR2(40), LNAME VARCHAR2(40))");
}
Statement stmt = con.createStatement();
stmt.executeUpdate(
"INSERT INTO MYTABLE VALUES('" + this.fName + "', '" + this.mName + "', '" + this.lName + "')");
List<Vector<String>> result = new ArrayList<Vector<String>>();
Vector<String> row = new Vector<String>();
ResultSet rset = stmt.executeQuery("SELECT * from MYTABLE");
while (rset.next()) {
row.add(rset.getString("FNAME"));
row.add(rset.getString("MNAME"));
row.add(rset.getString("LNAME"));
result.add(row);
}
stmt.close();
stmt1.close();
stmt2.close();
return result;
}
}
index.jsp:
<html>
<body>
<%@ page import="java.util.*" %>
<jsp:useBean id="formPost" class="beans.chegg_index">
<jsp:setProperty name="formPost" property="fName" param="FNAME" />
<jsp:setProperty name="formPost" property="mName" param="MNAME" />
<jsp:setProperty name="formPost" property="lName" param="LNAME" />
</jsp:useBean>
<% formPost.init(); %>
<%
if(request.getMethod().equals("GET"))
{
%>
<form action='<%=request.getRequestURI()%>' method='post' >
First Name: <input type='text' name='FNAME' /><br>
Middle Name: <input type='text' name='MNAME' /><br>
Last Name: <input type='text' name='LNAME' /><br>
<input type='submit' value='Submit' />
</form>
<%
}
if(request.getMethod().equals("POST"))
{
try
{
List<Vector<String>> rset = formPost.saveAndLoadUsers();
for(int i=0; i<rset.size(); i++)
{
Vector<String> row = rset.get(i);
}
%>
<pre>Current Names (First, Middle, Last): <%=rset.get(0) %></pre>
<%
}
catch (Exception e)
{
out.println(e.getMessage());
}
}
%>
</body>
</html>