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

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

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

<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

当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);
%>

这时候只需要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);
%>

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



下面贴一下jsp与servlet之间数据传递:

1.如果要从servlet把对象传到jsp,那么这个对象的成员变量都要实现set/get函数;

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

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



你可能感兴趣的:(编程随记)