jsp页面中用request传值问题

2025-01-26 03:44:29
推荐回答(4个)
回答1:

用来在同一个request周期中保存变量使用。比如servlet调用后,推出JSP页面,这是一个request周期,如果在Jsp页面需要servlet中的一些 处理结构,就从request.getAttribute中获取。
第二个JSP页面中获得的request并非是前一个页面的request(两次请求生成了前后两个不同的 request对象了)。
所以渠道的值为null
当你按下submit开始表单提交的时候已经是一个新的request了
把request改为session吧,这样一定行;
还有就是response.setAttribute但是这个我不熟,我试了一下有问题。

回答2:

当你的这个页面加载完成的时候,request的生命周期结束了,你点提交按钮是另一个request开始。
建议你选分清楚 Request,Session,ServletContext,page,application等的生命周期。

关于这个不建议你放入session,自己作东西行,实际开发时,这并不是一个好的选择。
建议你用隐藏表单。












另一个页中用
request.getParameter("qweqe")
来取

回答3:

当你调用action="MyJsp.jsp"
request 的生命周期就结束了
服务器端 引擎 会根据你的新的请求生成新的requset 和response 你之前放在里面的值当然是拿不到的
session 可以做到 也可以放到表单里
然后再servlet 里面service方法里 用request.getParameter("qweqe")取值

回答4:

首先呢你的 type="submit" 他是表单的一个特殊的元素
一般来说 取得值是 用request 取值最好先设置一下编码以免乱码

给你个例子


























添加员工信息
员工姓名
部门
手机号码
电子邮件





以上是表单页面
一下是处理页面
<%@ 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("");
out.print("");
}else{
int ii=new contactDao().addInfo(new contacts(name,de,phon,email));
if(ii>0){
out.print("");
out.print("");
}
}

%>
就是说一般用 request.getParameter("表单的Name");获取的