如何从JSP中传输数据到Servlet中

coral979 2004-09-07 08:20:34
如果jsp中有数据要传到servlet中,是应该用会话bean,还是...(不用request)如果是会话bean,那么请问应该如何把jsp中的数据放入bean中,然后再传给servlet中呢,例如用户注册:

<body>
<form method="post" action="useraction" name="loginfrm">
name:<input name="userName" ></input><br>
password:<input name="password" type="password" ></input><br>
age:<input size="20" name="age" ></input><br>
<input type="submit" name="Submit" value="确定">
<input type="reset" name="Rest" value="重置">
</form>
<body>
如果这时我已经建立了一个会话bean:userInfo,那现在应该如何把上面的数据放入userInfo中,再传到useraction(servlet)中呢
...全文
1325 56 打赏 收藏 转发到动态 举报
写回复
用AI写文章
56 条回复
切换为时间正序
请发表友善的回复…
发表回复
coral979 2004-09-13
  • 打赏
  • 举报
回复
谢谢lvyuanfang() !!!
这种方法很方便,只需要把那个包导入,然后再把那个方法加在自己的包中就直接可以使用了,嘿嘿,再次感谢!!!
结帐!!!
lvyuanfang 2004-09-12
  • 打赏
  • 举报
回复
我说的那个在servlet中达到和<jsp:setProperty name="userInfo" property="*"/>一样效果的类包地址:http://volume1.coreservlets.com/archive/commons-beanutils.jar
对这个类包的修改(可直接拿来用的,修改后直接一个方法就行,而直接用这个jar文件中的类,需要处理异常)http://volume1.coreservlets.com/archive/BeanUtilities.java
使用这个类包的例子:http://volume1.coreservlets.com/archive/SubmitInsuranceInfo.java
这其实是jakarta.apache.org下commons下的一个类包,他的效果和<jsp:setProperty name="userInfo" property="*"/>一样,能自动进行formbean值的填充,以及自动进行类型的转化(就是说你从jsp网页中接受的参数都是string类型的,而你在对应这个网页表单的bean中的类型可能是int或者其他,这个类都能自动进行转化,方便吧,但是在struts中这类型转化这个问题应该是不用考虑的,框架会自动进行的),当然用的前提是你必须将起加在你的classpath中。
我也是一个初学者,但是我不明白原本不复杂的这个问题,为什么那么多的人来解决,竟然都没有说的清楚,为什么没有人出来总结以下,发个帖子把经验告诉大家,那样岂不很好!!!!????
如果那个类包不能用,你把http://volume1.coreservlets.com/archive/这个页面中的和这个类包一块的那两个都下载下来。
bluesky35 2004-09-11
  • 打赏
  • 举报
回复
UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");
一开始我就试过了,拿出来的是null,我还使用以下语句遍利过:
while (request.getParameterNames().hasMoreElements()) {
String att_name = (String) request.getParameterNames().nextElement();
String att_value = (String) request.getAttribute(att_name);
System.out.println(att_name);
System.out.println(att_value);
}
都不行,看来解决的办法还是使用request.getParamater()方法取得!
coral979 2004-09-11
  • 打赏
  • 举报
回复
还没解决啊,谁再来看看啊
coral979 2004-09-11
  • 打赏
  • 举报
回复
没错啊,
<jsp:useBean id="userInfo" class="com.youget.mvc.UserInfo" scope="page">
<jsp:setProperty name="userInfo" property="*"/>
</jsp:useBean>

session=request.getSession(true);
userInfo=(UserInfo)session.getAttribute("userinfo");
userInfo就是我的bean实例啊,如果可以请写一个贴上来好吗,谢!!!!
shenfuhua 2004-09-11
  • 打赏
  • 举报
回复
bean有问题。
<jsp:setPropert name="xxx" propert="*">
xxx必须是你用的bean实例
否则就回 有错
java.lang.NullPointerException
coral979 2004-09-10
  • 打赏
  • 举报
回复
那个我知道啊,但就我这个程序来说呢,我已经有UserInfo了啊,大家看看上面的程序好吗,谁能改好啊...
无欲则钢 2004-09-10
  • 打赏
  • 举报
回复
就是一个BEAN 里面没有除参数操作外的其他方法。
coral979 2004-09-10
  • 打赏
  • 举报
回复
楼上的能再说清楚吗,谢了
请问各位,在MVC模式中,不是有个存放数据的bean吗,这个如何在程序中体现呢
coral979 2004-09-10
  • 打赏
  • 举报
回复
UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");

嗯,这么做是对的,我一开始也是这样写呢,但好像无法从userInfo.getXxx()中取到值的,好像根本就没有赋上,那应该如何在jsp到servlet之前给这个bean赋上值呢,如果不用中间页的setProperty是不是就不行啊,再次感谢 gks_cn的回复
gks_cn 2004-09-10
  • 打赏
  • 举报
回复
UserInfo userInfo=new UserInfo();
String name=userInfo.getXxxx();
这样就可以了吗
--------------------------
回复:
这样不对,因为你已经创建了一个userinfo的实力不能new了,应该
UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");
gks_cn 2004-09-10
  • 打赏
  • 举报
回复
在你的servlet里面调用
String userId=request.getParameter("userId");
就可以了。
先取出userInfo:
UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");
然后在把
userInfo这个类里面的set方法都设置起,就可以了。
coral979 2004-09-10
  • 打赏
  • 举报
回复
UP一下,谁再来看看啊,谢...
coral979 2004-09-09
  • 打赏
  • 举报
回复
“而在servlet当中,只是单纯的取出bean(而这bean不是session一级的,应当还是null),并没有给bean的属性赋值,所以它的属性也就都是空的了。”
嗯,是的,这里并没有赋值,主要是因为我以为已经赋了呢,呵...

“在login.jsp页中,属性并没有被赋值,比如userName,password等(可以用request.getParameter()来验证一下);”
这里的确我没有赋上值,那应该怎么在提交servlet时赋上值呢??(除了用中间页加setProperty,这个我会了,呵)
lvyuanfang()说的第一种方法好像我就是这么做的啊,但...
第二种没的类包我没有搜到...
再次谢谢各位!!!
chancelin 2004-09-09
  • 打赏
  • 举报
回复
>>>"首先,你在login.jsp里定义的bean并没有设置property。"
>>>请问这句话是说我并没有给userInfo赋值吗,那就如何做呢
在login.jsp页中,属性并没有被赋值,比如userName,password等(可以用request.getParameter()来验证一下);

而在servlet当中,只是单纯的取出bean(而这bean不是session一级的,应当还是null),并没有给bean的属性赋值,所以它的属性也就都是空的了。
coral979 2004-09-09
  • 打赏
  • 举报
回复
已经快一周了,请各位再看看啊...
xitianjile 2004-09-09
  • 打赏
  • 举报
回复
指向那个bean就可以了吧。
coral979 2004-09-08
  • 打赏
  • 举报
回复
没人来看看吗,谢谢了
coral979 2004-09-08
  • 打赏
  • 举报
回复
先谢谢new
请各位再看看吧,谢谢大家了,
new 2004-09-08
  • 打赏
  • 举报
回复
我帮你up.
加载更多回复(36)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧