下面是两个程序,问题:(都在同一个包中,语法没错误)
在Login.jsp登录的时候用session将获取到的UserName值存入UserID中
String UserID=request.getParameter("UserName");//UserName是输入用户名的框
session.setAttribute("UserID",UserID);然后在view.jsp中用String UserID=(String)request.getParameter("UserID");就不能获取到先前放置在UserID中的UserID的值了。
Login.jsp
<body>
<center>
<form name="form" action="Business">
<table border="1">
<caption><h1><font color="red">用户登录</font></h1></caption>
<tr>
<td>用 户 名:</td>
<td><input type="text" name="UserName"></td>
<%! String UserID; %>
<% UserID=request.getParameter("UserName");
session.setAttribute("UserID",UserID);
%>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="UserPassword"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="登录" onclick="validate()"/><input type="reset" value="重填" /></td>
</tr>
<input type="hidden" name="query" value="Login" />
<input type="hidden" name="view" value="00" />
</table>
</form>
</center>
</body>view.jsp
<body>
<center>
<font size="5" color="blue"><b>您的留言</b></font><p>
<table border="1">
<%! ResultSet rs; %>
<%
Connection conn=ConnecteDB.getConn();
String UserID=(String)request.getAttribute("UserID");
String sql="select * from MessageContent where UserName="+"'"+UserID+"'";
try{
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(Exception e){
System.out.println(e.getMessage());
}
while(rs.next())
{
%>
<tr>
<td bgcolor="#ddffee"">主 题</td>
<td><%=rs.getString(2)%></td>
</tr>
<tr>
<td bgcolor="ddffee">留言内容:</td>
<td><%=rs.getString(3)%></td>
</tr>
<tr>
<td bgcolor="ddffee">留言时间:</td>
<td><%=rs.getString(4)%></td>
</tr>
<%
}
%>
</table>
<p><a href="MessageBoard.jsp">返回留言板</a>
</center>
</body>
在Login.jsp登录的时候用session将获取到的UserName值存入UserID中
String UserID=request.getParameter("UserName");//UserName是输入用户名的框
session.setAttribute("UserID",UserID);然后在view.jsp中用String UserID=(String)request.getParameter("UserID");就不能获取到先前放置在UserID中的UserID的值了。
Login.jsp
<body>
<center>
<form name="form" action="Business">
<table border="1">
<caption><h1><font color="red">用户登录</font></h1></caption>
<tr>
<td>用 户 名:</td>
<td><input type="text" name="UserName"></td>
<%! String UserID; %>
<% UserID=request.getParameter("UserName");
session.setAttribute("UserID",UserID);
%>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="UserPassword"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="登录" onclick="validate()"/><input type="reset" value="重填" /></td>
</tr>
<input type="hidden" name="query" value="Login" />
<input type="hidden" name="view" value="00" />
</table>
</form>
</center>
</body>view.jsp
<body>
<center>
<font size="5" color="blue"><b>您的留言</b></font><p>
<table border="1">
<%! ResultSet rs; %>
<%
Connection conn=ConnecteDB.getConn();
String UserID=(String)request.getAttribute("UserID");
String sql="select * from MessageContent where UserName="+"'"+UserID+"'";
try{
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(Exception e){
System.out.println(e.getMessage());
}
while(rs.next())
{
%>
<tr>
<td bgcolor="#ddffee"">主 题</td>
<td><%=rs.getString(2)%></td>
</tr>
<tr>
<td bgcolor="ddffee">留言内容:</td>
<td><%=rs.getString(3)%></td>
</tr>
<tr>
<td bgcolor="ddffee">留言时间:</td>
<td><%=rs.getString(4)%></td>
</tr>
<%
}
%>
</table>
<p><a href="MessageBoard.jsp">返回留言板</a>
</center>
</body>
应该修改为:String UserID=(String)session.getAttribute("UserID");
应该修改为:String UserID=(String)session.getAttribute("UserID");
楼上朋友说的request.getSession()也可以不加,jsp的隐含对象里有session,默认jsp中已经存在session对象