Session取值为空的问题

jsp1的代码:<%@ page language="java" import="java.util.*" pageEncoding="utf-8" import="java.sql.*" %>
<%request.setCharacterEncoding("utf-8");%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
/jsp:useBean


登陆验证


<%
String userID=request.getParameter("userID");
String password0=request.getParameter("password");
buyer.setMemberID(userID);
buyer.setPwd(password0);
%>
<%int logonTimes=buyer.getLogontimes();
if(logonTimes>0)
{
session.setAttribute("userID", userID); %>

<%=buyer.getMemberName() %>欢迎你第<%=logonTimes+1 %>次来到本书店


进入书店<%=session.getAttribute("userID")%>


<%}
else
{
%>

对不起,<%=userID %>你的用户名和密码不一致


重新登陆


<%
}
%>



jsp2的代码


/jsp:useBean
<%
if(session.getAttribute("userID")==null){ %>

请先登录,然后再选书


登陆


<%}
else
{ %>



为什么jsp2取值为null?
书名<%session.getAttribute("userID"); %>

书名<%=session.getAttribute("userID"); %>
或{session.getAttribute("userID")}

可以在前端用JS进行空值过滤

<%session.getAttribute("userID"); %>,书名号,在jsp页面

之前

<%session.getAttribute("userID"); %>,书名号,在jsp页面之前写

输出存入之前的值看是不是空的,如果不是那可能是你存入session的时候出错了,如果是那就在存入之前过滤掉

你确定你set的值不是空的?String userID=request.getParameter("userID"); 这里的userID这个值就是空的吧

先确认logonTimes是不是大于0,把logonTimes放到页面看看,如果都没进去当然没法set
上面没问题那就在第二个页面的/jsp:useBean 前面再get一下并在页面上显示看看,如果在/jsp:useBean之前正常,之后不正常那就是这个标签搞的鬼了。