Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用servlet时没有转发_Java_Jsp_Jakarta Ee_Servlets - Fatal编程技术网

Java 调用servlet时没有转发

Java 调用servlet时没有转发,java,jsp,jakarta-ee,servlets,Java,Jsp,Jakarta Ee,Servlets,当我调用servlet时,它不会转到所需的jsp页面。下面是这两个代码 日志中有这样一个错误,但这并不是不转发到目的地的真正原因 java.sql.SQLException: Bad format for number 'bb' in column 4. 使用此代码调用servlet,非常确定url映射 <a href="/Store/DisplayOrders"> Display Orders</a> package admin

当我调用servlet时,它不会转到所需的jsp页面。下面是这两个代码

日志中有这样一个错误,但这并不是不转发到目的地的真正原因

     java.sql.SQLException: Bad format for number 'bb' in column 4.
使用此代码调用servlet,非常确定url映射

    <a href="/Store/DisplayOrders"> Display Orders</a>



        package admin;

        import data.ConnectionPool;
        import data.DBUtil;
        import java.io.IOException;
        import java.io.PrintWriter;
        import java.sql.Connection;
        import java.sql.PreparedStatement;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.util.ArrayList;
        import javax.servlet.RequestDispatcher;
        import javax.servlet.ServletException;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;

        /**
        *
        * @author One
        */
        public class DisplayOrdersServlet extends HttpServlet {

            @Override
            public void doPost(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();

                ConnectionPool pool = ConnectionPool.getInstance();
                Connection connection = pool.getConnection();
                PreparedStatement ps = null;
                ResultSet rs = null;

                ArrayList al = null;
                ArrayList ordersList = null;
                ordersList = new ArrayList();

                String query = "select * from orders order by order_id";

                try {
                ps = connection.prepareStatement(query);
                rs = ps.executeQuery(query);


                while (rs.next()) {

                    al = new ArrayList();

                    al.add(rs.getString("order_id"));
                    al.add(rs.getString("product_quantity"));
                    al.add(rs.getString("product_name"));
                    al.add(rs.getDouble("user_name"));
                    al.add(rs.getDouble("user_address"));
                    out.println("al :: " + al);
                    ordersList.add(al);
                }

                request.setAttribute("ordersList", ordersList);

                String url = "/admin/orders.jsp";

                    RequestDispatcher dispatcher =
                    getServletContext().getRequestDispatcher(url);
                    dispatcher.forward(request, response);
            }

            catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    DBUtil.closeResultSet(rs);
                    DBUtil.closePreparedStatement(ps);
                    pool.freeConnection(connection);

        }
            }

            @Override
            protected void doGet(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
            doPost(request, response);

            }
        }
jsp页面

            <%@page contentType="text/html" pageEncoding="UTF-8"%>
            <%@ page language="java" import="java.util.*;"%> 
            <!DOCTYPE html>
            <HTML> 
            <HEAD> 
            <TITLE>Orders CRUD</TITLE> 

            </HEAD> 

            <BODY> 
            <br> 
            <table> 

            </table> 
            <br> 
            <table > 
            <tr><td></td></tr> 

                <tr><td ><a href="/Store/admin/#.jsp">#</a></td></tr> 
            <tr><td></td></tr> 
            <tr> 
                <td>order_id</td><td>product_quantity</td><td>product_name</td> 
                    <td>user_name</td><td>user_address</td>
                    <td>Edit</td><td>Delete</td> 
            </tr> 
                    <% 
                    int count=0; 
                    List viewList = new ArrayList(); 
                    Iterator  viewItr; 

                    if(request.getAttribute("ordersList")!=null && request.getAttribute("ordersList")!="") 
                    { 
                            List orderList =  (ArrayList)request.getAttribute("ordersList"); 
                            Iterator itr = orderList.iterator(); 

                            while(itr.hasNext()) 
                            { 



                                    viewList = (ArrayList)itr.next(); 
                                    int product_id = Integer.parseInt(viewList.get(0).toString()); 
                                    viewItr = viewList.iterator(); 
                                    %> 
                                    <tr> 
                                    <%   
                                    while(viewItr.hasNext()) 
                                    { 

                                            %> 
                                            <td><%=viewItr.next()%></td> 

                                            <% 

                                    } 
                                    count++; 
                                    %> 
                                    <td><input type="button" name="edit" value="Edit" onclick="editRecord(<%=product_id%>);" ></td> 
                                            <td><input type="button" name="delete"  value="Delete" onclick="deleteRecord(<%=product_id%>);"></td> 
                                    </tr> 
                                    <% 
                            } 
                    } 
                    if(count==0) 
                    { 
                            %> 
                            <tr><td > </td></tr> 
                        <tr><td>No Record Avaliable</td></tr> 
                            <% 
                    } 
                    %> 
                <tr><td></td></tr> 
            </table>     
            </BODY> 
            </HTML> 

servlet不转发到JSP页面有一个很好的理由:转发前的一条语句抛出SQLException,因此跳过其余指令,并执行catch块。因为转发是在抛出异常的语句之后的指令的一部分,所以由于异常而被跳过,所以不进行转发

异常可能是由以下原因引起的:

rs.getDouble("user_name");
我怀疑你的用户的名字是3.452和67.43-

try {
  ...
  al.add(rs.getDouble("user_name")); <-- Exception thrown
  al.add(rs.getDouble("user_address"));
      ...
   String url = "/admin/orders.jsp";
  RequestDispatcher dispatcher =
   getServletContext().getRequestDispatcher(url);                        
  dispatcher.forward(request, response);
} catch (SQLException e) {  <-- Exception catch
  e.printStackTrace();      

当您获得异常时,将跳过异常后的代码,直到捕获该异常为止。根本不执行重定向代码。也就是说,作为替身获得姓名或地址是不寻常的。

谢谢!我猜我是通过复制displayproduct servlet而达到目的的,我真的忽略了在最后一个小时里每次我都在检查:这真是复制代码的经典案例。伙计,你真是一个java怪物,我看到了你的个人资料和忍者小队你的个人资料很有趣哈哈,我希望我从大学开始就一直编码,我停下来,在另一个领域工作,现在我又回来了。不知道他们是否为brain os发明了java安装程序哈哈哈,谢谢。很高兴知道法语原文的英文翻译至少已经阅读过一次:-谢谢!我想我是通过复制DisplayProductServlet而达到这一目的的,并且每次我在最后一个小时里不断检查时都忽略了这一点:现在这真的是复制代码的经典案例。我如何才能了解更多有关此异常业务的信息?或者有什么建议?