我建了三个JSP页面
session.jsp
//以下是代码
<%@page contenType="text/html; charset=GBK" pageEncoding="gb2312"%>
<html>
<body>
<center><h3>用户名输入页面</h3></center>
<form action="session2.jsp">
<table border="1" align="center">
<tr><td>用户名<input type="text" name="username"></td></tr>
<tr><td align="center"><input type="submit" value="提交"></td></tr>
</table>
</form>
</body>
</html> session2.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<body>
<center>回答问题爷面</center>
<%

String name = request.getParameter("username");
session.setAttribute("theusername",username);
%>
<p>你的名字:<%=name%></p>
<form action="session3.jsp">
<table>
<tr>
<td>你喜欢吃什么食物?<input type="text" name="food"></td>
</tr>
<tr>
<td align="center"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>session3.jsp<%@ page pageEncoding="gb2312"%>
<html>
<body>
<center>回答问题爷面</center>
<%
String food="";
%>
<%
food=request.getParameter("food");
String name=(String)session.getAttribute("theusername");
 %>
 用户名:<%=name %>
 食物<%=food %>
</body>
</html>
问题出在session2.jsp我在把参数存储在session的时候格式出错。书上是session.setAttribute("theusername",username);中username是不用双引号括的,但在Myeclipse中不用双引号就会出错。如果加了双引号,session保存的就是不用户名了,而是username这个字符串.是第二个页面出错还是别地方啊?

解决方案 »

  1.   

    应该是传那么name吧session.setAttribute("theusername",name);你好象没有username这个变量啊
      

  2.   

    有啊
    <tr> <td>用户名 <input type="text" name="username"> </td> </tr> 
    这不是么?username
      

  3.   

    最重要的问题是
    为什么
    session.setAttribute("theusername",username); 
    这个会报错的
    而这个不会session.setAttribute("theusername","username");
    username加上双引号就不报错~~我晕 
      

  4.   

    String name = request.getParameter("username"); 
    session.setAttribute("theusername",name); 
    在setAttribute("theusername",name); 这个方法里面。theusername是key,name是值。必须放一个对象进去。你先放的是username,容器根本就找不到这个对象,当你用引号引上的时候,就是一个字符串了。所以容器会把它当字符串对象处理!
      

  5.   

    session2.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <html>
    <body>
    <center>回答问题爷面 </center>
    <%String name = request.getParameter("username");
    session.setAttribute("theusername",name);//这你错了,改成这样,name就是对象了
    %> 
      

  6.   

    他本来就是要传name呀。
    不然他写String name = request.getParameter("username"); 
    干嘛啊?
      

  7.   

    哦~~懂了谢谢~~
    session只能接受当前页面的信息,不能接受由别页面传过来的信息,由别页面传来的信息要用request接受是这样么?
    这是我理解不知对不对
      

  8.   

    一样的,request和session他们之是生命周期不一样。
    request的生命周期紧为一次请求。一次请求过后,就没有了!
      

  9.   


    不对啊  session也能传  但是你要setAttribute 你没传值怎么传啊
      

  10.   

     老兄,你还是好好吧jsp内置对象request,session好看看吧,看看题目都各自有什么用
      

  11.   

    你在第一个页面中把值存在request中。在第二个页面要取出值就要从request中取出来。你在session没设值如何取出来?