`
birch
  • 浏览: 14293 次
  • 性别: 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...

    Laravel 表单验证规则:required、present、filled 和 nullable

    #### 四、小结 通过以上介绍,我们可以看到Laravel提供的`required`、`present`、`filled`和`nullable`等验证规则能够帮助开发者高效地处理各种复杂的表单验证需求。正确理解和灵活运用这些规则对于构建健壮、安全...

    记一份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...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    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应用程序示例 26 ...

Global site tag (gtag.js) - Google Analytics