servlet中如何向jsp传递参数?

来源:百度知道 编辑:UC知道 时间:2024/06/14 05:35:44
用户登陆界面login.html的form表单,提交用户名username和密码password给动作Login.java处理,如果用户存在在库中,写入cookies并用response.sendRedirect跳转到login.jsp.但是我在login.jsp页面中使用如下句子,用户名却显示不出来,应该如何解决?login.jsp代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%
request.setCharacterEncoding("gb2312");
String strUserName=String.valueOf(request.getParameter("username"));
%>
<html>
<head><title>Welcome</title></head>
<body>
<center><%=strUserName%> 欢迎你!</center>
</body>
</html>

还有就是从Login.java中获取username并要求在多个jsp跳转页面都能使用该用户名username,应该怎么做?(*注:不想用session来访问参数username,因为servlet中已经使用了cookies,再用session代码可读性会很差~)

可以调用getAttribute方法和setAttribute方法,吧JAVA对象保存到一个session中,这样可以使用session来把数据传递到被引用的页面和跳转后的servlet
还有更好的,使用setAttribute。setAttribute和removeAttribute方法把java对象存放到request对象中,就像你在session对象中的做法,只是没法处理IllegalStateException的异常情况:
public void setAttribute(String name,Object value)
public Object getAttribute(String name)
public void removeAttribute(String name,Object value)

jsp代码应该没有问题, 看看你的Login.java里的response.sendRedirect方法是不是把参数传过来了.

应该是这样写:
response.sendRedirect("./login.jsp?username="+username+"");

既然用cookie保存了用户名,那么就在jsp页面读取cookie
你并没有读取cookie、、、、、

页面跳转改用forword跳转!!如果你用的cookie请确保你的浏览器的cookie设置允许!

那你就用读COOKIE

写一个公共类..想要就用..呵呵~