如何在servlet中获取jsp中form表单提交的变量,以及jsp与servlet之间的数据传递

今天让这个问题纠结了大半天,关于如何在servlet中获取jsp中form表单提交的变量,由于是新手,总结的地方可能不太很准确,望见谅

下面是用jfreechart做的一个柱状图,需要用到form表单中下拉选择框提交的年份,表单在此就不贴出来了

<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<img src="<%=request.getContextPath()%>/bar?year=2013"/>

当year为常量时,可以作为参数传递,下面yearGet也可以获取到2013

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		// 设置返回类型为图片
		response.setContentType("image/png");
		String yearGet=request.getParameter("year");
........
}

但当year传递的是一个变量的时候,此参数则无法传递


<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
         Calendar calendar = Calendar.getInstance();
	int curYEAR = calendar.get(Calendar.YEAR);
%>
<img src="<%=request.getContextPath()%>/bar?year=<%=curYEAR%>"/>

这时候只需要src的路径组合在一个String中即可,如下

<%
	Calendar calendar = Calendar.getInstance();
	int curYEAR = calendar.get(Calendar.YEAR);
	String selyear=request.getParameter("selYear");
	if(selyear==null){
	      selyear=curYEAR+"";
	}
	String url=request.getContextPath()+"/bar?year="+selyear;
	System.out.println(url);
%>
<img src="<%=url%>"/>

这样就可以把变量的值传递到servlet.java中



下面贴一下jsp与servlet之间数据传递:
1.如果要从servlet把对象传到jsp,那么这个对象的成员变量都要实现set/get函数;

2.如果要从servlet与jsp之间传递数组类型(list..vector.),那么应该用session来实现;

3.还没发现直接把jsp上多个同名的checkbox的字符值传到servlet中,使用下面的代码在下标索引的方法上来实现的

<script>
	function doSubmit(){
    var selected = ""; //保存按下的复选框的value 
    // 获取你的所有的复选框
      var alldatas = document.getElementsByName("pro");
      //遍历,把选中的复选框value拼接起来并用:分开
      for(var i  =0;i < alldatas.length;i++){
          if(alldatas[i].checked){
              selected += i.toString();
              selected += ":";
          }
      }
      //把页面导航到你的servlet 
      document.forms[0].action = "photo?op=gotoDownloadAllUsrPhoto&values="+selected;
      //document.forms[0].submit();
   }
	
</script>


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值