我定义了3个session.jsp,从session1.jsp->session2.jsp->session3.jsp.
session1.jsp<%@page contentType="text/html; charset=gb2312" %>
<html>
<body>
<form method=POST action="Session2.jsp">
请输入你的姓名:
<input type=text name="the name"  >
<input type=submit value="NEXT">
</form>
</body>
</html>
session2.jsp
<%@page contentType="text/html; charset=gb2312" %>
<%@ language="java" %>
<html>
<body>
<%! String name="" ;%>
<%
name=request.getParameter("the name");
session.putValue("the name",name);
 %>
你的姓名是:<%= name%>
<p>
<form method=POST action="Session3.jsp">
你最喜欢的人是:
<input type=text name="like">
<p>
<input type=submit value="NEXT">
</form>
</body>
</html>
session3.jsp
<%@page contentType="text/html; charset=gb2312" %>
<%@page language="java" %>
<html>
<body>
<%! String like=""; %>
<%
  like=request.getParameter("like");
  String name=(String) session.getValue("the name");
 %>
<p>
你的姓名是: <%=name %>
<p>
你喜欢的人是:<%=like %>
</body>
</html>问题出现跳转到第二个页面就出错了

解决方案 »

  1.   

    session.putValue("the name",name);
    String name=(String) session.getValue("the name");
    这类用法早就不提倡用了吧
    改用session.setAttribute("", );
    session.getAttribute("");
      

  2.   

    还有很多地方用"",method="POST" 
    type="submit" 
      

  3.   

    恩 应该用setAttribute 和 getAttribute方法
      

  4.   

    <%! String name="" ;%>   为什么 会有个 !号
      

  5.   

    正解...
    还有楼上说的<%! String name="" ;%>
    应该改为:<% String name="" %>
      

  6.   

    失误,改为<%Strign name="";%>分号忘记敲了.
      

  7.   

    setAttribute 要不把the name的空格去掉试试 
      

  8.   


    <%!string name=""%>里面<%! %>用来定义变量name的;
    而且我的已经用了setAttribute 和 getAttribute方法
      

  9.   

    好像是...
    <%!%>定义全局变量变= =!
    那你把错误信息发来看看.
      

  10.   

    错误信息
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /Session2.jsp(2,4) Invalid directive
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:499)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
    org.apache.jasper.compiler.Parser.parse(Parser.java:133)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:215)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      

  11.   

    name=request.getParameter("the name");
    session.putValue("the name",name);

    name=request.getParameter("the name");
    session.setAttribute("这儿自己取名",name );
      

  12.   

    看你action是提交Session2.jsp和Session3.jsp
    那里两个jsp文件的名字是Session2.jsp和Session3.jsp不。
    怀疑是不是你的开头字母action里是大写,文件确是小写:session2.jsp session3.jsp
    你先看下?
      

  13.   


    <%@page contentType="text/html; charset=gb2312" %>
    <%@ language="java" %>
    修改为
    <%@page language="java" contentType="text/html; charset=gb2312" %>就OK了,你的语法格式错误。
      

  14.   


    没有啊。我引用于文件名都是大写的Session2.jsp
      

  15.   

    我也觉得这个很可能,报的错是说你的Session2.jsp(2,4) Invalid directive
    位置看来是这样... ...
    之前拿LZ代码测试,忽略注意头部了...
      

  16.   

    引用错了...
    我也觉得这个很可能,报的错是说你的Session2.jsp(2,4) Invalid directive
    位置看来是这样... ...
    之前拿LZ代码测试,忽略注意头部了...