eclipse 中servlet跳转问题

问题遇到的现象和发生背景

从find servlet跳转到一个jsp页面再从jsp页面跳转到buy servlet,之后会自动返回find servlet

问题相关代码,请勿粘贴截图

find servlet

if(type.equals("detail")) {
            if(request.getSession().getAttribute("cid")!=null) {
                //String cid = (String)request.getParameter("cid");
                //request.getParameter
                String cid= (String)request.getSession().getAttribute("cid");
                request.setAttribute("cid", cid);
                System.out.println("detail cid is:"+cid);
            }
            
            String ISBN = (String)request.getParameter("ISBN");
            //String keyword = new String(Keyword.getBytes("ISO8859-1"),"UTF-8");
            
            书本信息 book=new 书本信息();
            书本信息 book_info=book.find_ISBN_book(ISBN);
            
            订单细则 orderdetail = new 订单细则();
            List<String> dappraise = orderdetail.dappraise(ISBN);
            
            request.setAttribute("book_info", book_info);
            request.setAttribute("dappraise", dappraise);
            request.getRequestDispatcher("bdetail.jsp").forward(request, response);
            
            //需要得到书本评价信息
            
             
        }    

jsp跳转到buyservlet

<tr><td>
        <button type="submit" onclick="window.location.href='./Buyservlet?type=buy'">立即购买</button>&emsp;
        
        <button type="submit" onclick="window.location.href='./Buyservlet?type=adcart'">加入购物车</button>
            </form>
        </table>

buyservlet代码

    String type = request.getParameter("type");
        System.out.println("buy type is:"+ type);
        
        if(type.equals("buy")) {
            
            if(request.getSession().getAttribute("cid")==null) {
                boolean flag = false;
                request.setAttribute("msg", flag);
    
                request.getRequestDispatcher("./login.jsp").forward(request, response);//没登录要先登录
            }
            
            else {
                String cid = (String)request.getSession().getAttribute("cid");
                request.setAttribute("cid", cid);
                System.out.println("buy cid is:"+cid);
                
                
                    int number = Integer.parseInt(request.getParameter("number"));
                    System.out.println("buy count is:"+number);
                    request.setAttribute("number", number);
                
                if((书本信息)request.getAttribute("book") !=null) {
                    
                    书本信息  book_info = (书本信息)request.getAttribute("book");
                    
                    request.setAttribute("book", book_info);
                    System.out.println("buy ISBN is:"+book_info.getISBN());
                }
                
                else System.out.println("没传值啊");
                request.getRequestDispatcher("./border.jsp").forward(request, response);
            }
                
             
        }

运行结果及报错内容

findservlet转详情页面还很正常

img

但点击立即购买后就报错了

img

我的解答思路和尝试过的方法

正常进入find servlet
**

img


**
之后buy servlet显示
**

img


**
以及find servlet显示:
**

img


**

我想要达到的结果

感觉很奇怪啊 为什么buyservlet中并没有书写跳转到find servlet的语句它会自己跳转过去?

就报的异常来看,是NPE,点击立即购买后出现,那么检查一下那个servlet或者该参数,是不是没有获得到参数

已经解决啦 jsp里用了button来提交表单内容,可能?导致页面会返回上一级。换成submit提交表单内容就可以啦