今天让这个问题纠结了大半天,关于如何在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中,使用下面的代码在下标索引的方法上来实现的