一个关于Session的问题

awers 2004-10-11 08:27:07
各位好,我是初学者,想做个简单的留言板学习用,现在有个问题;
在不考虑持久化的前提下(不连接数据库,不生成文件),如何将Session中的内容调用过去?
addmessage.jsp
--------------------------------------------
<form action="view.jsp" method="post">
<p>请留言:</p>
<p><textarea name="content" rows="8" cols="50"></textarea></p>
<p><input type="submit" value="提交"></p>
</form>
--------------------------------------------
view.jsp
--------------------------------------------
<%
request.setCharacterEncoding("GBK");
String c=request.getParameter("content");
response.sendRedirect("user.jsp");
%>
--------------------------------------------
user.jsp
--------------------------------------------

<%
String content="";
out.println("<tr><td colspan=2><div align=center>"+content+"</div></td></tr>");
%>
--------------------------------------------

进入顺序是user.jsp-->addmessage.jsp-->view.jsp

好象这样做是错的。。。但转来转去又想不通该怎么整。。。
想到这里脑子有点乱。。。又要把content的初值设为"",又要回传给它值保存进Session。。。
初学。。。想不到什么好办法,大家帮忙了。。。
...全文
87 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhonghua2003 2004-10-12
老婆??? 我也要老婆.
回复
awers 2004-10-12
好的,谢谢了:)
回复
ETUFO 2004-10-11
我觉得你不如用分层结构阿,吧所有的客户端请求发给一个mainservlet,然后mainservlet处理请求数据,再转向相应的页面
mainservlet: MainServlet.java
登陆: login.html
察看留言:view.jsp
发表流言:user.jsp
我jsp也是刚刚学,代码就写个大概
MainServlet.java
class MainServlet extends HttpServlet throw... {
LinkList message=new LinkList();//用来保存用户的留言
doPost(....)throws .....{
String action=request.getParameter("action");
action=action==null?"":action;
if (action.equals("Login")){
doLogin(request,response);
} else if(action.equals("message")){
doSendMessage(request,response);
} else if ... // 可以扩展
}
private void doLogin(.....)throw ...{
String userName=request.getParameter("userName");
String password=.....;
//验证用户登陆
。。。。
//如果验证通过
HttpSession session=request.getSession();
session.setAttribute("message",message);
request.get.....forwords(view.jsp.request,response);
}
}

view.jsp

<% LinkList message=(LinkList)session.getAttribute("message");
String[] userMessage=new String[message.length()];
String userMessage[i]=userMessage.get(i);
%>
<html>
<body>
用户留言:<%= userMessage[i]%><br>
用户留言:<%= userMessage[i+1]%>
</body>
</html>


老婆下班了,我要走了,乱,凑合着看吧
回复
ETUFO 2004-10-11
不谢,也没帮上忙
回复
awers 2004-10-11
我想这样子
先通过验证让用户登陆进来,看到的是那些已保存在Session里的留言。
如果服务器不restart,应该信息能看见的吧?

谢谢ETUFO(诺)的帮助,不过今天太晚了,我明天下午回来试,顺便结贴^_^
回复
ETUFO 2004-10-11
同样是初学者,探讨一下。我觉得顺序应该是这样:addmessage.jsp-->view.jsp-->user.jsp。因为你不考虑持久,所以如果你不先留言,怎么能看到内容阿?然后下面代码:
addmessage.jsp
--------------------------------------------
<form action="view.jsp" method="post">
<p>请留言:</p>
<p><textarea name="content" rows="8" cols="50"></textarea></p>
<p><input type="submit" value="提交"></p>
</form>
--------------------------------------------
view.jsp
--------------------------------------------
<%
request.setCharacterEncoding("GBK");
String c=request.getParameter("content");
String session=request.getSession();
session.setAttribute("content",c);
response.sendRedirect("user.jsp");
%>
--------------------------------------------
user.jsp
--------------------------------------------

<% HttpSession session=request.getSession();
String content=(String)session.getAttribute("content");
out.println("<tr><td colspan=2><div align=center>"+content+"</div></td></tr>");
%>
--------------------------------------------

回复
awers 2004-10-11
沉了!自己顶!
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告