jsp页面中用request传值问题
我在页面中index.jsp页面中写了如下代码<%request.setAttribute("qweqe","qweqewqe");%><html><head></hea...
我在页面中index.jsp页面中写了如下代码
<%
request.setAttribute("qweqe","qweqewqe");
%>
<html>
<head>
</head>
<body>
<form name="fm" action="MyJsp.jsp" method="post">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
然后想跳转到MyJsp.jsp页面中,在MyJsp.jsp页面中用request.getAttribute("qweqe");取值,但是目前来看取出来的值是null,哪位能帮忙解答下,或者说明下这个页面中怎么取值能不是null。 展开
<%
request.setAttribute("qweqe","qweqewqe");
%>
<html>
<head>
</head>
<body>
<form name="fm" action="MyJsp.jsp" method="post">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
然后想跳转到MyJsp.jsp页面中,在MyJsp.jsp页面中用request.getAttribute("qweqe");取值,但是目前来看取出来的值是null,哪位能帮忙解答下,或者说明下这个页面中怎么取值能不是null。 展开
4个回答
2011-06-27
展开全部
用来在同一个request周期中保存变量使用。比如servlet调用后,推出JSP页面,这是一个request周期,如果在Jsp页面需要servlet中的一些 处理结构,就从request.getAttribute中获取。
第二个JSP页面中获得的request并非是前一个页面的request(两次请求生成了前后两个不同的 request对象了)。
所以渠道的值为null
当你按下submit开始表单提交的时候已经是一个新的request了
把request改为session吧,这样一定行;
还有就是response.setAttribute但是这个我不熟,我试了一下有问题。
第二个JSP页面中获得的request并非是前一个页面的request(两次请求生成了前后两个不同的 request对象了)。
所以渠道的值为null
当你按下submit开始表单提交的时候已经是一个新的request了
把request改为session吧,这样一定行;
还有就是response.setAttribute但是这个我不熟,我试了一下有问题。
展开全部
当你的这个页面加载完成的时候,request的生命周期结束了,你点提交按钮是另一个request开始。
建议你选分清楚 Request,Session,ServletContext,page,application等的生命周期。
关于这个不建议你放入session,自己作东西行,实际开发时,这并不是一个好的选择。
建议你用隐藏表单。
<html>
<head>
</head>
<body>
<form name="fm" action="MyJsp.jsp" method="post">
<input type="hidden" name="qweqe" value="qweqewqe">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
另一个页中用
request.getParameter("qweqe")
来取
建议你选分清楚 Request,Session,ServletContext,page,application等的生命周期。
关于这个不建议你放入session,自己作东西行,实际开发时,这并不是一个好的选择。
建议你用隐藏表单。
<html>
<head>
</head>
<body>
<form name="fm" action="MyJsp.jsp" method="post">
<input type="hidden" name="qweqe" value="qweqewqe">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
另一个页中用
request.getParameter("qweqe")
来取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当你调用action="MyJsp.jsp"
request 的生命周期就结束了
服务器端 引擎 会根据你的新的请求生成新的requset 和response 你之前放在里面的值当然是拿不到的
session 可以做到 也可以放到表单里
然后再servlet 里面service方法里 用request.getParameter("qweqe")取值
request 的生命周期就结束了
服务器端 引擎 会根据你的新的请求生成新的requset 和response 你之前放在里面的值当然是拿不到的
session 可以做到 也可以放到表单里
然后再servlet 里面service方法里 用request.getParameter("qweqe")取值
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先呢你的 type="submit" 他是表单的一个特殊的元素
一般来说 取得值是 <input type="text"或者是文本框里面的值
用request 取值最好先设置一下编码以免乱码
给你个例子
<form action="addDo.jsp" method="post" onSubmit="return chk()">
<table style="border:2px solid;text-align:center;">
<tr>
<td colspan="2">添加员工信息</td>
</tr>
<tr>
<td id="re">员工姓名</td>
<td><input name="txtName" id="txtName" class="c" /> </td>
</tr>
<tr>
<td>部门</td>
<td><input name="txtDe" id="txtDe"/></td>
</tr>
<tr>
<td id ="re">手机号码</td>
<td><input name="txtPhone" id="txtPhone" class="c"/></td>
</tr>
<tr>
<td>电子邮件</td>
<td><input name="txtEmail" id="txtEmail"/></td>
</tr>
<tr style="text-align:center;">
<td colspan="2">
<input type="button" value="返回" onClick="javascript:window.location.href='index.jsp'"/>
<input type="submit" value="提交"/>
</td>
</tr>
</table>
</form>
以上是表单页面
一下是处理页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="com.accp.entity.*,com.accp.dao.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
request.setCharacterEncoding("GBK");//设置编码为GBK
String name=request.getParameter("txtName");获取值
String de=request.getParameter("txtDe");
String phon=request.getParameter("txtPhone");
String email=request.getParameter("txtEmail");
int i=new contactDao().getInfoByName(name);
if(i>0){
out.print("<script>window.alert('用户名存在!')</script>");
out.print("<script>window.location.href='add.jsp'</script>");
}else{
int ii=new contactDao().addInfo(new contacts(name,de,phon,email));
if(ii>0){
out.print("<script>window.alert('添加成功!')</script>");
out.print("<script>window.location.href='index.jsp'</script>");
}
}
%>
就是说一般用 request.getParameter("表单的Name");获取的
一般来说 取得值是 <input type="text"或者是文本框里面的值
用request 取值最好先设置一下编码以免乱码
给你个例子
<form action="addDo.jsp" method="post" onSubmit="return chk()">
<table style="border:2px solid;text-align:center;">
<tr>
<td colspan="2">添加员工信息</td>
</tr>
<tr>
<td id="re">员工姓名</td>
<td><input name="txtName" id="txtName" class="c" /> </td>
</tr>
<tr>
<td>部门</td>
<td><input name="txtDe" id="txtDe"/></td>
</tr>
<tr>
<td id ="re">手机号码</td>
<td><input name="txtPhone" id="txtPhone" class="c"/></td>
</tr>
<tr>
<td>电子邮件</td>
<td><input name="txtEmail" id="txtEmail"/></td>
</tr>
<tr style="text-align:center;">
<td colspan="2">
<input type="button" value="返回" onClick="javascript:window.location.href='index.jsp'"/>
<input type="submit" value="提交"/>
</td>
</tr>
</table>
</form>
以上是表单页面
一下是处理页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="com.accp.entity.*,com.accp.dao.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
request.setCharacterEncoding("GBK");//设置编码为GBK
String name=request.getParameter("txtName");获取值
String de=request.getParameter("txtDe");
String phon=request.getParameter("txtPhone");
String email=request.getParameter("txtEmail");
int i=new contactDao().getInfoByName(name);
if(i>0){
out.print("<script>window.alert('用户名存在!')</script>");
out.print("<script>window.location.href='add.jsp'</script>");
}else{
int ii=new contactDao().addInfo(new contacts(name,de,phon,email));
if(ii>0){
out.print("<script>window.alert('添加成功!')</script>");
out.print("<script>window.location.href='index.jsp'</script>");
}
}
%>
就是说一般用 request.getParameter("表单的Name");获取的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询