美文网首页
页面元素之表单续篇

页面元素之表单续篇

作者: 小疏林er | 来源:发表于2020-04-03 22:45 被阅读0次

1、提交功能

提交之前通常会进行前端验证,来减轻服务器负担,验证成功后提交到服务器,然后在进行数据库操作(验证登录、用户注册等等)。

2、前端验证

前端验证的作用是将用户输入的信息以我们设定的格式(正则表达式)来验证,如果格式不正确则进行提示。以上一章的登录界面为例,进行前端验证。

  • script中调用了form.verify({ })函数,mypwd是自己声明的表单验证关键字,mypwd[ ]里面有两部分,第一部分是正则表达式,就是你想让用户输入的格式,第二部分是提示信息,就是当用户输入的信息和你规定的格式不匹配时,显示的信息(以layui提供的弹窗形式弹出)
  • input标签中四个特别的属性
    (1)required 表示这个input标签是必填项(所有input默认都有required)。
    (2)lay-verify="mypwd|required" 表示这个标签验证的关键字是mypwd和required。
    (3)placeholder="请输入学号"表示未输入情况下,text内显示请输入学号。
    (4)autocomplete="off" 表示不启用自动完成功能。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery.min.js" ></script>
        <script type="text/javascript" src="layui/layui.js" ></script>
        <link rel="stylesheet" href="layui/css/layui.css" />
        <script>
            layui.use('form',function(){
                var form =layui.form;
                form.verify({
                    //自定义的表单验证关键字
                mypwd: [
                  /^[a-zA-Z\d_]{6,10}$/ //正则表达式
                  ,'只能包括字母数字或下划线,长度为6-10位' //如果未匹配成功,显示的提示信息
                ] ,
                    //还有其他自定义的关键字,可以继续写
                    xuehao:[  
                    ]
              });
            })
        </script>
    </head>
    <body>
        <div style="text-align: center;width:400px;margin:0 auto;margin-top: 200px;">
            <form class="layui-form" action="/MyServlet1" method="post">
                <div class="layui-form-item">
                    <label class="layui-form-label">学   号</label>
                    <div class="layui-input-inline">
                        <!-- -->
                      <input type="text" name="xuehao"  required lay-verify="number"  placeholder="请输入学号" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">密   码</label>
                    <div class="layui-input-inline">
                      <input type="password" name="password" required lay-verify="mypwd|required" placeholder="请输入密码" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">身   份</label>
                    <div class="layui-input-inline">
                      <select name="shenfen" lay-verify="required">
                            <option value=""></option>
                            <option value="admin">admin</option>
                            <option value="admin">user</option>
                        </select>
                    </div>    
                </div>
                <div class="layui-input-block"style="margin:auto 0px;">
                      <button class="layui-btn" lay-submit lay-filter="formDemo"style="margin-right:10px ;">提交</button>
                      <button type="reset" class="layui-btn layui-btn-primary"style="margin-right:25px ;">重置</button>
                </div>
            </form>
        </div>
    </body>
</html>

测试结果:

未输入状态.png
学号栏输入字母.png
密码格式不符.png

3、提交表单

经过上一步的验证,保证了每一项都是非空的,并且学号和密码也按照了我们的格式输入,现在就可以提交了,有两个地方需要注意

  • <form class="layui-form" action="/MyServlet1" method="post">
    (1)action="url": /MyServlet1代表提交到什么位置,这里用的是servlet方式,所以提交到了一个名字叫的MyServlet1类。
    (2)method="post":代表以post方式提交数据(另一种是get),Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。而Get将数据被放在请求的URL中,容易造成信息泄露,故通常使用Post。
  • <button class="layui-btn" lay-submit lay-filter="formDemo"style="margin-right:10px ;">提交</button>
    (1)要实现提交功能的按钮必须要有lay-submit属性,否则不起作用。

4、后端验证

后端验证一般是将表单信息和数据库信息进行对照,如果正确则打开新的页面,如果不正确则提示学号或者密码输入错误,这里就不进行数据库操作了,直接将获得的信息打印出来即可。

  • 测试前需要服务器环境,我使用的是tomcat。无需安装,在建立动态网页项目时添加进来即可。(使用Eclipse开发环境)
  • 在src中新建一个servlet类,取名MyServlet1(本次是测试,取名比较随意,真正项目中变量、类、文件、id、name等等取名要尽量使人一眼看懂,并有一定规律和联系)
    *@WebServlet("/MyServlet1"):注解里面的MyServlet1对应着你前端form标签里的action!(一定要一致,我复制时把/也复制过去了,结果就404了)
  • 一定要设置字符集不然会乱码,请求和响应都要!
  • html各种域传值到servlet中都是用的name,text、password、select等都要设置name。
package com.xu;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServlet1
 */
@WebServlet("/MyServlet1")
public class MyServlet1 extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置字符集
        response.setCharacterEncoding("gbk");
        request.setCharacterEncoding("gbk");
        //html各种域传值到servlet中都是用的name,与id无关。getParameter(name)
        String sNo = request.getParameter("xuehao");  //获得学号text中输入的值(name="xuehao")
        String pwd = request.getParameter("password");  //获得密码text中输入的值(name="password")
        String select=request.getParameter("shenfen");  //获得身份下拉框中选中的值(name="shenfen")
        response.getWriter().write("学号:"+sNo);      
        response.getWriter().write("密码:"+pwd);
        response.getWriter().write("身份:"+select);   
    }
}

测试结果

html界面.png
MyServlet1界面.png
Eclipse中目录结构.png

结语:纸上得来终觉浅,绝知此事要躬行。

相关文章

  • 页面元素之表单续篇

    1、提交功能 提交之前通常会进行前端验证,来减轻服务器负担,验证成功后提交到服务器,然后在进行数据库操作(验证登录...

  • 页面元素之动画续篇

    1、JQuery 上文仅对动画修改了持续时间,页面一加载出来就播放了,并没有添加相应的触发事件,下面利用jQuer...

  • 页面元素之表单

    1、使用 在一个容器中设定 class="layui-form" 来标识一个表单元素块,通过规范好的HTML结构及...

  • HTML表单

    创建表单 表单元素 ,表单元素包含文本域,单选框,复选框,按钮,列表等;表单本身在页面中是不可见的,页面中看到的...

  • 表单简单介绍

    表单 作用:收集信息。 表单元素 注册页面上能够填写的内容都是我们的表单元素。 作用: 用来收集用户的信息,将来提...

  • HTML5新增元素

    HTML5新增元素 类别元素构建页面的语义元素 用于标识文本的语义元素 web表单 ...

  • 个人日记三(html表单)

    HTML表单 html表单用于搜集不同类型的用户输入,在页面具体表现为 元素。form元素实例: form el...

  • H5表单新增属性

    1、表单内元素的form属性:表单内的从属元素可以书写在页面任何地方,只要为该元素指定一个form属性,属性值为该...

  • 小程序表单动态配置与表单联动 - 实现篇

    表单(form)是用户填写(输入)信息的重要交互UI元素,所有需要收集信息的页面均会使用到表单。 表单在桌面应用、...

  • 小程序表单动态配置与表单联动 - 结构设计篇

    表单(form)是用户填写(输入)信息的重要交互UI元素,所有需要收集信息的页面均会使用到表单。 表单在桌面应用、...

网友评论

      本文标题:页面元素之表单续篇

      本文链接:https://www.haomeiwen.com/subject/pmkhphtx.html