Как получить 2 или более разных исключения? - PullRequest
2 голосов
/ 14 августа 2010

Я написал код для добавления пользователя в БД.Мне нужно перенаправить на EmpInfo.jsp, когда мы получим повторяющиеся записи.Мне нужно использовать больше исключений для этого, а также я хочу знать, как перенаправить.

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "cervlet";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root"; 
String password = "1234";
int Empid =Integer.parseInt(request.getParameter("Empid").toString()); 
String Name = request.getParameter("Name").toString();
int Age =Integer.parseInt(request.getParameter("Age").toString()); 
int Salary =Integer.parseInt(request.getParameter("Salary").toString());
PreparedStatement stmt;
try {
 Class.forName(driver).newInstance();
 conn = DriverManager.getConnection(url+dbName,userName,password);
 System.out.println("Connected to the database");
 //ArrayList al=null;
 //ArrayList userList =new ArrayList();
 String query = "insert into employee set Empid='"+Empid+"',name='"+Name+"',Age='"+Age+"',Salary='"+Salary+"'";
stmt = (PreparedStatement) conn.prepareStatement(query);
  int i = 0;
try {
   i = stmt.executeUpdate(query);
    }
  catch (SQLException e) {
    String nextj = "/AddUser.jsp";
    RequestDispatcher rd = getServletContext().getRequestDispatcher(nextj);
   rd.forward(request, response);
    }
   System.out.println("i="+i);
System.out.println("query: " + query);
//if(i==0)
 //{
  //String nextj = "/EmpInfo.jsp";
    //RequestDispatcher cd = getServletContext().getRequestDispatcher(nextj);
    //cd.forward(request, response);
 //response.sendRedirect("servletRecord");
//}
 response.sendRedirect("/EmpInfo.jsp");
 conn.close();
 System.out.println("Disconnected from database");

} catch (Exception e) {
e.printStackTrace();

Обновления

Мне нужно перенаправить на EmpInfo.jsp, когда он добавляет новую запись.После выполнения метода executeUpadte() я использовал возвращаемое значение для перенаправления на другую страницу с именем EmpInfo.jsp.Но это не перенаправление.Я использую затмение.Подскажите общие способы многократного перенаправления .jsp страниц.

Ответы [ 2 ]

9 голосов
/ 14 августа 2010

Что ж, если вы спрашиваете, как перехватить различные исключения, следующий код - это то, как вы это делаете:

try {
    ...
    // Code that may throw a few types of exceptions
    ...
} catch(FileNotFoundException fnfe) {
    // handle very specific exceptions
} catch (IOException ioe) {
    // handle less specific exceptions
} catch (Exception e) {
    // handle the most generic exception case
} 

Это позволит вам обрабатывать несколько типов исключений в одном блоке кода.

2 голосов
/ 14 августа 2010

Обработка нескольких исключений уже получена.

О перенаправлении на другую страницу: Вы можете использовать (как вы уже использовали) метод пересылки (если другая страница находится в том же домене) и метод sendRedirect (другая страница может быть в другом домене).Но вы должны позаботиться о том, чтобы ничего не записывалось в браузер, иначе вы получите исключение при переадресации / перенаправлении.

В вашем случае вы уже написали в браузер в форме этих утверждений:

   response.setContentType("text/html");
   PrintWriter out = response.getWriter();

Глядя на свой код, кажется, что вы даже не требуете этих утверждений, как в любом случае выследует пересылать на другую страницу.

ПРИМЕЧАНИЕ. Вы используете переадресацию в одном месте и sendRedirect в одном месте.Надеюсь, вы знаете разницу между ними.На мой взгляд, вам нужно просто использовать метод forward в обоих местах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...