我编写了一个代码来将用户添加到数据库中。当我们收到重复的条目时,我需要重定向到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
的页面。
但它没有重定向。我正在使用eclipse。告诉我多次重定向.jsp
页面的常用方法。
答案 0 :(得分:9)
好吧,如果你问如何捕获不同的例外,下面的代码是你如何做的:
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
}
这将允许您在一个代码块中处理多个异常类型。
答案 1 :(得分:2)
已经回答了处理多个异常的问题。
关于重定向到其他页面:您可以使用(正如您已经使用过的)转发方法(如果其他页面在同一个域中)和sendRedirect方法(其他页面可以在其他某个域中)。但是你需要注意没有任何东西写入浏览器,否则你在转发/重定向时会遇到异常。
在您的情况下,您已经以这些陈述的形式写入浏览器:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
查看您的代码,您似乎甚至不需要这些语句,因为在任何情况下您都应该转发到其他页面。
注意:您在一个地方使用前进,并在一个地方发送重定向。希望你知道这些之间的区别。在我看来,你需要在两个地方使用前进方法。