これがtomcat7ではなくtomcat6で機能する理由はわかりませんが、test3.jspで変更すると次のようになります。
<% sBean.getName() %>
に:
<% SessionBean testBean = (SessionBean) session.getAttribute("sBean"); //try changing name of SessionBean too so it doesn't conflict with the useBean name
testBean.getName();
%>
動作するはずです。または、次を使用することもできます。
<jsp:getProperty name="sBean" property="name" />
更新
2つのJSPページをまとめました。私はそれをtomcat7ですばやくテストしましたが、うまくいきました。フォームは作成しませんでしたが、これが一般的な考え方だと思います。それは大まかにあなたがそれをセットアップする方法ですか?
test1.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="my.project.SessionBean" %>
<jsp:useBean id="sBean" scope="session" class="my.project.SessionBean" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
SessionBean testBean = (SessionBean) session.getAttribute("sBean");
testBean.setName("Nate");
pageContext.forward("test2.jsp"); //forward to test2.jsp after setting name
%>
<jsp:getProperty name="sBean" property="name" />
</body>
</html>
test2.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<jsp:useBean id="sBean" scope="session" class="my.project.SessionBean" />
<%@ page import="my.project.SessionBean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>page 2</p>
<p>from jsp tag</p>
<jsp:getProperty name="sBean" property="name" /><br />
<p> from scriptlet</p>
<%
SessionBean testBean = (SessionBean) session.getAttribute("sBean");
out.print(testBean.getName());
%>
</body>
</html>