【发布时间】:2011-03-29 15:54:46
【问题描述】:
我已经编写了一个代码来将用户添加到数据库中。当我们收到重复条目时,我需要重定向到 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()执行后,我使用了它的return
值重定向到另一个名为EmpInfo.jsp 的页面。
但它没有重定向。我正在使用日食。告诉我多个重定向.jsp页面的常用方法。
【问题讨论】:
-
与问题无关:
IllegalStateException转发/重定向失败的可能性很大,因为您已更改响应标头并在代码开头获取响应编写器。不要那样做。在这种特定情况下,绝对没有必要这样做。删除这些行。另外,您应该避免使用PreparedStatement进行SQL 注入并关闭finally中的JDBC 资源。 -
你应该在另一个问题中询问重定向。
-
您是否阅读了我在问题更新前 2 小时发布的评论? :)
标签: java sql jsp servlets exception-handling