`
birch
  • 浏览: 14150 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

提交表单同时上传文件(小结)

阅读更多
昨天,在做项目的时候遇到了个问题,事实上是一个不起眼的小错误,可是当时我和一个伙伴就此郁闷了半天.我们做的是一个表单提交同时上传文件的功能,测试的时候虽然提交成功,数据写进了数据库,文件也成功上传了,可是我的CPU(哈哈还是双核的哦)使用率由百分之十几一下就涨到百分之六十多,而且一直维持在这个状态下.如果再一次提交表单,CPU的使用率百分百全被占用了,这时我不得不关掉Tomcat服务器,CPU的使用率才恢愎到正常的水平.其实我在前天做这个功能测试的时候是没有出现这种情况的,昨天为了完善一下表单的校验,在原来那个JSP页面上加了一段javascript表单的校验代码如下:
< script  type="text/javascript" >
function checkTeacher(){
if (document.form1.teacherId.value=="") {
alert("请输入登陆名!");
document.form1.teacherId.focus();

}
else if (document.form1.name.value=="") {
alert("请输入真实姓名!");
document.form1.name.focus();
}
else if (document.form1.bDate.value=="") {
alert("请输入出生日期!");
document.form1.bDate.focus();
}
else if (document.form1.studs.value=="") {
alert("请输入学历!");
document.form1.studs.focus();
}
else if (document.form1.fun.value=="") {
alert("请输入职称!");
document.form1.fun.focus();
}
else if (document.form1.tel.value=="") {
alert("请输入电话号码!");
document.form1.tel.focus();
}
else if (document.form1.email.value=="") {
alert("请输入E-Mail!");
document.form1.email.focus();
}
else if (document.form1.File.value=="") {
alert("请输入文件路径!");
document.form1.File.focus();
}
    else{
   document.form1.submit();
}
}
</script>.
当时JSP页面的提交按钮标签属性是这样写的<input type="submit" name="submit" value="提交" onclick="checkTeacher()">.接着我就开始了测试,一测试就出现了上面说的那个问题,而且更有趣的是有些表单的文本域,我故意不填值进去,然后提交了表单,当弹出了一个消息框之后,它居然还能提交成功(正常的话光标会定位到第一个出现空值的文本域里,同时会取消表单的提交),当然了也避免不了发生上面说的那种异常占用CPU的情况了.如果你有经验,或者遇到过类似的问题,也许在我写的代码里看到了一些疑点,但不知道你们有没有猜对呢,下面就让我一一揭开迷底吧,后来经过了好多次的疑点筛选和测试之后,我们把疑点定位到JSP页面的提交按钮标签属性上,最后修改为这样:<input type="button" name="bnt" value="提交" onclick="checkTeacher()">.哈哈终于成功啦,就在那一刻我们俩异口同声的说了一句---"不会吧!".然后开心的笑了!有时候感觉写程序会很累,因为一天到晚对着电脑,然而还是那么的心甘情愿.当每次看自己写的程序成功跑起来的时候,我想作为每个程序员都会非常享受其中,它能让你顿时信心加百,同时内心也会有一种说不出的满足感,也许这就是程序的魅力所在吧,分享到止告一段落,接着会陆续有来,只要我还在这一行里奋斗,同时也希望能看到你们的感受与我分享.
2
0
分享到:
评论
2 楼 birch 2008-09-07  
谢谢这位朋友的回答,如果加上return false ;也会出现上述问题,只要不要把:<input type="button" name="bnt" value="提交" onclick="checkTeacher()">.里面type和name的属性值设置成"submit",就一切正常了,即使不加return false ;也可以.
1 楼 vb2005xu 2008-09-07  
js 写错了 提交验证 加上 return false ;

相关推荐

    struts2实现文件上传

    #### 五、小结 Struts2 支持强大的文件上传功能,这得益于其对 Apache Commons FileUpload 和 Commons IO 库的支持。通过上述步骤,我们可以轻松地实现文件上传功能,并对其进行进一步的定制和优化。掌握这些知识点...

    jquery中validate与form插件提交的方式小结

    2. **jquery.form插件**:这个插件扩展了jQuery的功能,支持AJAX提交表单、表单内容的预处理以及文件上传等功能。使用此插件可以简化表单的提交过程,并且可以做到在不刷新页面的情况下提交表单。 3. **表单提交...

    struts实现上传图片

    同时,通过JavaScript函数`upload()`来触发表单提交,确保图片字段不为空。 #### 2. 配置文件 在Struts框架中,配置文件(如struts.xml)起着核心作用,它定义了应用的行为和流程。为了实现图片上传,需要在配置...

    项目小结.doc

    在这个名为“项目小结.doc”的文档中,作者记录了他开发一个电子相册项目的过程,主要涉及以下几个IT知识点: 1. **项目启动与需求分析**: - 开始时,作者面对新项目感到迷茫,不清楚要实现哪些功能。这表明在...

    JavaWeb文件上传与下载功能解析

    当用户提交表单时,浏览器会将文件以二进制形式封装在HTTP请求体中,并使用特定的分隔符(即第一行的随机字符串)进行区分。在服务器端,我们需要使用`ServletInputStream`来读取请求的正文,然后解析出文件内容。...

    基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解

    在提交表单或触发上传时,前端代码需要处理文件数据并调用服务器接口。例如,你可能有一个用于处理窗体数据和文件上传的JavaScript函数,如下所示: ```javascript formValidate("ffAdd", function (form) { // ...

    MVC编程实训实验报告

    5. 文件上传成功后,`doservlet`进一步调用`FenBean.Fen`方法,按指定的分割数将文件分割成多个小文件,每个文件名为"源文件名"加上序号,如"aa0001.mp"。 6. 合并文件时,`dowevlet`调用`HeBean.He`方法,将所有...

    Java利用MultipartFile实现上传多份文件的代码

    MultipartFile 是 Spring 框架中提供的一个接口,用于处理multipart/form-data 类型的表单提交的文件上传。它提供了多种方法来处理文件上传。 MultipartFile 常用方法 1. `getContentType()`:获取文件类型值 2. `...

    JAVA WEB典型模块与项目实战大全

    1.5 小结  第2章 myedipse开发工具对各种框架的支持  2.1 使用jsp的两种模式  2.2 struts框架的实现  2.3 hibernate框架的实现  2.4 jpa框架的实现  2.5 spring框架的实现  2.6 jsf框架的实现  2.7...

    记一份SQLmap 使用手册小结(一)1

    以下是对SQLmap使用手册小结中的知识点的详细说明: 1. **注入点的检测**:SQLmap可以通过`-u`参数提供URL来自动检测是否存在SQL注入点。在描述中提到了使用`-v 3`以获取更详细的信息,`--batch`则让SQLmap以非交互...

    Django学习之文件上传与下载

    最后,当用户提交表单后,表单数据会被发送到视图中处理。 ### 文件存储在数据库中 Django中文件可以存储在文件系统上,也可以存储在数据库中。在示例中,定义了一个`Student`模型类,并使用了`ImageField`来指定...

    深入浅出Struts2(附源码)

    1.4 小结 13 第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    1.6 本章小结 4 第一篇 入门篇 第2章 Hello Grails 6 2.1 Grails的安装 6 2.1.1 JDK的安装与配置 6 2.1.2 Grails的安装 7 2.2 创建Grails工程 8 2.3 Grails的MVC架构 11 2.4 Scaffold应用程序 14 2.5 开发工具的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    php网络开发完全手册

    1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 常量的定义 25 2.2.2 变量的定义 26 2.2.3 变量的作用域 27 2.2.4 动态变量 29 2.3 运算符和关键字 29 2.4 流程控制语法 30...

Global site tag (gtag.js) - Google Analytics