java jsp session对象

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

创建一个类Book,创建一个ArrayList,将多个book对象加入其中,实现在多个页面上(通过session)完成其数据的跨页面共享。

问题相关代码,请勿粘贴截图
%-- 
    Document   : array
    Created on : 2022-5-30, 15:47:48
    Author     : Administrator
--%>

<%@page import="com.cn.book"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
          ArrayList<book> booklist=new ArrayList<book>();
           book book1=new book("0001","javaweb");
           booklist.add(book1);
           session.setAttribute("book1", booklist);
           response.sendRedirect("out.jsp");
         %>
    </body>
</html>

<%@page import="com.cn.book"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            @SuppressWarnings("unchecked")
            ArrayList <book> booklist=(ArrayList<book>) session.getAttribute("book");
            if(booklist.size()>0){
                 for(book book1:booklist)
            {
                out.print("id"+book1.getId()+"<&nbsp>"+"bookname"+book1.getName());
            }
            }
            %>
        
    </body>
</html>


运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

21行session.setAttribute("book1", booklist);
39行session.getAttribute("book");
名称对应

代码出现空指针

空指针了,对象没取到,加个容错。有问题可以问哈,望采纳!多谢!

img

%-- 
    Document   : array
    Created on : 2022-5-30, 15:47:48
    Author     : Administrator
--%>
 
<%@page import="com.cn.book"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
          ArrayList<book> booklist=new ArrayList<book>();
           book book1=new book("0001","javaweb");
           booklist.add(book1);
           session.setAttribute("book1", booklist);
           response.sendRedirect("out.jsp");
         %>
    </body>
</html>
 
<%@page import="com.cn.book"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            @SuppressWarnings("unchecked")
            ArrayList <book> booklist=(ArrayList<book>) session.getAttribute("book");
         if(booklist!=null){
            if(booklist.size()>0){
                 for(book book1:booklist)
            {
                out.print("id"+book1.getId()+"<&nbsp>"+"bookname"+book1.getName());
            }
            }
}
            %>
        
    </body>
</html>