e34e JSP. D.6. Гнездо задач. Сессионные бины. EJB. J2EE. JSP. Сборник задач по программированию Александра Приходько
 

Сборник задач по программированию. Старая версия

 

 Приходько А. Н.

 

xml, интерфейс, преобразование, обзоры, процедура, пролог, процедура, по программированию
 

JSP. D.6. Гнездо задач. Сессионные бины. EJB. J2EE. JSP

 

 

Калькулятор

/ - деление

\ - остаток

S - сумма чисел от и до

P - произведение чисел от и до

D.6.1    Ответы

(сессионный бин без состояния, транзакция открывается на момент выполнения операции и сразу же закрывается) Имеется база данных, содержащая таблицу с именем Tabl1. Таблица имеет столбец с именем XX и типом данных "целое число". Первоначально, таблица пустая. Определить содержимое таблицы после запусков следующего приложения и вводе клиентом пар значений (1, A), (2, A), (3, A), (4, A), (5, A) в поля ("Введите значение:", "Введите имя пользователя:").


Текст файла jsp1.jsp такой же как из задачи JSP.6.1.


Текст файла Interprise1Bean.java

package pr_c;

import java.rmi.*;
import javax.ejb.*;
import javax.naming.NamingException;
import java.sql.SQLException;
import javax.transaction.SystemException;
import javax.transaction.NotSupportedException;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.HeuristicMixedException;
import javax.transaction.RollbackException;

public class Enterprise1Bean implements SessionBean {
SessionContext sessionContext;
String pp;

public void ejbCreate() {
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}

public void doDo() throws NamingException, SQLException,
SystemException, NotSupportedException, IllegalStateException,
SecurityException, HeuristicRollbackException,
HeuristicMixedException, RollbackException {

javax.transaction.UserTransaction utx;
javax.sql.DataSource dataSour;
java.sql.Connection Conn;
java.sql.Statement Stmt;

javax.naming.Context context = new javax.naming.InitialContext();

dataSour = (javax.sql.DataSource)
context.lookup("java:comp/env/jdbcDatabase1");
Conn = dataSour.getConnection();

Stmt = Conn.createStatement();

utx = sessionContext.getUserTransaction();

utx.begin();

java.sql.ResultSet rs = Stmt.executeQuery("select sum(XX) from Tabl1");
rs.next();
int jj = rs.getInt(1);
Stmt.executeUpdate("insert into Tabl1 (XX) values ("+Integer.toString(jj)+")");

utx.commit();

Stmt.close();
Conn.close();
}

public String getPp() {
return pp;
}

public void setPp(String pp) {
this.pp = pp;
try {
doDo();
}
catch (RollbackException ex) { }
catch (HeuristicMixedException ex) { }
catch (HeuristicRollbackException ex) { }
catch (SecurityException ex) { }
catch (IllegalStateException ex) { }
catch (NotSupportedException ex) { }
catch (SystemException ex) { }
catch (SQLException ex) { }
catch (NamingException ex) {
}
}

}

 

 

Калькулятор

/ - деление

\ - остаток

S - сумма чисел от и до

P - произведение чисел от и до

D.6.2    Ответы

(сессионный бин без состояния, транзакция открывается на момент выполнения операции и сразу же закрывается) Имеется база данных, содержащая таблицу с именем Tabl1. Таблица имеет столбец с именем XX и типом данных "целое число". Первоначально, таблица пустая. Определить содержимое таблицы после запусков приложения из задачи JSP.6.1 и вводе клиентом пар значений (1, A), (2, B), (3, A), (4, B), (5, A) в поля ("Введите значение:", "Введите имя пользователя:").


 

 

Калькулятор

/ - деление

\ - остаток

S - сумма чисел от и до

P - произведение чисел от и до

D.6.3    Ответы

(сессионный бин без состояния, транзакция открывается на момент выполнения операции и сразу же закрывается) Имеется база данных, содержащая таблицу с именем Tabl1. Таблица имеет столбец с именем XX и типом данных "целое число". Первоначально, в таблице имеются 3 записи со значениями поля XX равными 1, 2, 3.. Определить содержимое таблицы после запусков следующего приложения и вводе клиентом пар значений (1, A), (2, A) в поля ("Введите значение:", "Введите имя пользователя:").


Текст файла Interprise1Bean.java

package pr_c;

import java.rmi.*;
import javax.ejb.*;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.HeuristicMixedException;
import javax.transaction.NotSupportedException;
import java.sql.SQLException;
import javax.naming.NamingException;
import javax.transaction.RollbackException;
import javax.transaction.SystemException;
import javax.naming.*;


public class Enterprise1Bean implements SessionBean {

SessionContext sessionContext;
javax.transaction.UserTransaction utx;
javax.sql.DataSource dataSour;
java.sql.Connection Conn;
java.sql.Statement Stmt;
String pp;

public void ejbCreate() {
utx = sessionContext.getUserTransaction();
try {
utx.begin();
}
catch (SystemException ex) { }
catch (NotSupportedException ex) {
}

Context context = null;
try {
context = new javax.naming.InitialContext();
dataSour = (javax.sql.DataSource)
context.lookup("java:comp/env/jdbcDatabase1");
Conn = dataSour.getConnection();
Stmt = Conn.createStatement();
}
catch (NamingException ex1) { }
catch (SQLException ex) { }
}

public void ejbRemove() {
try {
utx.commit();
}
catch (SystemException ex) { }
catch (IllegalStateException ex) { }
catch (SecurityException ex) { }
catch (HeuristicRollbackException ex) { }
catch (HeuristicMixedException ex) { }
catch (RollbackException ex) {
}

try {
Stmt.close();
Conn.close();
} catch (SQLException ex1) { }
}

public void ejbActivate() {
}
public void ejbPassivate() {
}

public void setSessionContext(SessionContext Par_sessionContext) {
sessionContext = Par_sessionContext;
}

public void doInsert(String Par1) throws SQLException {
Stmt.executeUpdate("insert into Tabl1 (XX) values ("+Par1+")");
}

public void setPp(String Par_pp) {
this.pp = Par_pp;
try {
doInsert(Par_pp);
}
catch (SQLException ex) { }
}

public String getPp() {
return pp;
}

}

 

 

Калькулятор

/ - деление

\ - остаток

S - сумма чисел от и до

P - произведение чисел от и до

D.6.4    Ответы

(сессионный бин без состояния, транзакция открывается на момент выполнения операции и сразу же закрывается) Приложение и описание таблицы из задачи JSP.6.3.. Определить содержимое таблицы после запусков следующего приложения и вводе клиентом пар значений (1, A), (2, B) в поля ("Введите значение:", "Введите имя пользователя:").


 

 

Калькулятор

/ - деление

\ - остаток

S - сумма чисел от и до

P - произведение чисел от и до

D.6.5    Ответы

(сессионный бин с состоянием, транзакция открывается при создании бина  и закрывается при его уничтожении) Постановка задачи из JSP.6.1. Содержимое файла jsp1.jsp осталось без изменений. Файл Interprise1Bean.java будет следующим. Вопрос тот же.


Текст файла Interprise1Bean.java

package pr_c;

import java.rmi.*;
import javax.ejb.*;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.HeuristicMixedException;
import javax.transaction.NotSupportedException;
import java.sql.SQLException;
import javax.naming.NamingException;
import javax.transaction.RollbackException;
import javax.transaction.SystemException;
import javax.naming.*;


public class Enterprise1Bean implements SessionBean {

SessionContext sessionContext;
javax.transaction.UserTransaction utx;
javax.sql.DataSource dataSour;
java.sql.Connection Conn;
java.sql.Statement Stmt;
String pp;

public void ejbCreate() {
utx = sessionContext.getUserTransaction();
try {
utx.begin();
}
catch (SystemException ex) { }
catch (NotSupportedException ex) {
}

Context context = null;
try {
context = new javax.naming.InitialContext();
dataSour = (javax.sql.DataSource)
context.lookup("java:comp/env/jdbcDatabase1");
Conn = dataSour.getConnection();
Stmt = Conn.createStatement();
}
catch (NamingException ex1) { }
catch (SQLException ex) { }
}

public void ejbRemove() {
try {
utx.commit();
}
catch (SystemException ex) { }
catch (IllegalStateException ex) { }
catch (SecurityException ex) { }
catch (HeuristicRollbackException ex) { }
catch (HeuristicMixedException ex) { }
catch (RollbackException ex) {
}

try {
Stmt.close();
Conn.close();
} catch (SQLException ex1) { }
}

public void ejbActivate() {
}
public void ejbPassivate() {
}

public void setSessionContext(SessionContext Par_sessionContext) {
sessionContext = Par_sessionContext;
}

public void doInsert(String Par1) throws SQLException {
Stmt.executeUpdate("insert into Tabl1 (XX) values ("+Par1+")");
}

public void setPp(String Par_pp) {
this.pp = Par_pp;
try {
doInsert(Par_pp);
}
catch (SQLException ex) { }
}

public String getPp() {
return pp;
}

}

 

 

Калькулятор

/ - деление

\ - остаток

S - сумма чисел от и до

P - произведение чисел от и до

D.6.6    Ответы

(сессионный бин с состоянием, транзакция открывается при создании бина  и закрывается при его уничтожении) Постановка задачи из JSP.6.2. Приложение из JSP.6.5.


 

©   Александр Приходько    1996 - 2006

69 0