- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
首先,根据学生对课程的选择,构造请求参数字符串。学生选修一门课程,就是把该课程ID对应的复选框选中。要确定学生选修了哪几门课程,只需要看一下选中状态的复选框有几个即可。
回想一下DOM操作中节点的引用(查找)方法(见6.3节表6-4),自HTML5以后新增了一个querySelectorAll()方法,可以按照CSS的选择器选择指定的元素。CSS提供了属性选择器和伪类(或伪元素),可以用来选择某些网页元素。
在这里,我们需要查找所有type=’checkbox’,且checked属性为checked的input元素,根据这个要求,我们可以构造一个以下的选择器:input[type=checkbox]:checked
然后,可以使用document对象的querySelectorAll()方法查找所有符合这一选择器的所有复选框,得到一个NodeList类型的集合。注意这个NodeList不是普通的数组,不能使用遍历数组的办法(for…in)遍历这个集合。
只能使用最原始的for循环来遍历它,找到选择的所有课程,获取所有选中课程的代码如下:varselectedCourses=document.querySelectorAll(input[type=checkbox]:checked);
把所有选择的课程构造成以下格式的请求参数字符串:courseId=200807006courseId=200807008courseId=200907016请注意,最后一个课程ID(200907016)的后面没有符号,而其他课程ID后均有一个符号,所以最后一个课程ID要进行特殊处理。
构造请求参数的代码如下:vardata=; for(vari=0;iselectedCourses.length;i++){ data+=courseId=+selectedCourses[i].value; if(i!=selectedCourses.length-1){ data+=; } }
最后一个课程ID为selectedCourseNodeList中下标为selectedCourse.length–1的课程对象的ID。所以每次循环中都要判定是否为最后一个元素,如果不是,则在其后添加符号。如果是最后一个元素,则不添加。这就保证了最后一个ID后面不会添加,从而保证请求参数的最后不会加上。
构造请求参数字符串以后,就是创建异步对象、初始化请求——这里请求的URL是studentServlet?method=selectCourse,即StudentServlet中的selectCourse方法,注册事件处理程序处理服务器响应结果,最后是发送数据,也就是这里的请求参数字符串。
这里需要强调的是:这个操作会对服务器产生影响(在服务器上保存数据),所以使用POST请求方式;以POST方式发送请求时,在发送请求之前(即调用send()方法之前)设置请求头Content-Type,其值为application/x-www-form-urlencoded。
这一点是必须的,否则服务器收不到客户端发送的数据。用到的代码如下:req.setRequestHeader(Content-Type,application/x-www-form-urlencoded); req.send(data);提交选课请求的完整代码如清单12-13所示。
12.5.4显示选课结果——selectResult函数
这个函数十分简单,只是负责把服务器的响应显示在提示框中(即清单12-4中的divid=tip/)。完整代码如清单12-14所示,
12.5.5控制层选课功能的实现——selectCourse控制层所有关于学生的功能都在StudentServlet类中实现,选课功能也不例外。在StudentServlet.java中添加selectCourse方法,由于这个方法签名比较长,难于记住,我们还是采用老办法——复制+改名就可以了。
在这个方法中,首先要做的是接收客户端传来的参数。在12.5.3节,我们已经注意到请求参数字符串的格式为:courseId=200807006courseId=200807008courseId=200907016
也就是说相同名字的参数courseId有多个,而不是只有一个。在JSP中接收这种“多值”参数用的是request对象(也就是形式参数req)的getParameterValues()方法,它返回一个String类型的数组,代码如下:String[]courseIds=req.getParameterValues(courseId);
第二步,接下来要做的就是从Session
您可能关注的文档
最近下载
- 2022在线网课学堂《日语交际功能语法》单元考核测试答案.docx VIP
- 统编版一年级道德与法治下册《做事要仔细》第2课时教学PPT课件.pptx VIP
- 国开电大C语言程序设计 形考四.docx VIP
- 2025年大学《休闲体育-户外运动指导》考试备考题库及答案解析.docx VIP
- 医院人才培育工作计划(2篇).docx VIP
- 2025年度江苏省施工图设计文件审查技术问答(定稿版).pdf VIP
- 装配式混凝土结构技术规程.pdf VIP
- CODmax中文手册.docx VIP
- 中国音乐学院本专科招生考试视唱练耳与乐理考试大纲(试行) .pdf VIP
- 2025年大学《休闲体育-户外运动指导》考试模拟试题及答案解析.docx VIP
原创力文档


文档评论(0)