当前位置: 首页 > article >正文

JavaWeb | 表单开发

目录:

    • 1.认识表单
    • 2.表单的作用
    • 3.定义表单
    • 4.获得表单提交的元素 :
      • “单一表单元素” 数据的获取
      • “捆绑表单元素” 数据的获取
      • “同名表单元素” 数据的获取
    • 5.隐藏表单元素
    • 6.解决中文乱码问题 :
      • 中文无法显示
      • 在提交过程中显示乱码

1.认识表单

表单用户服务器之间进行信息交互重要手段,通过提交表单,可以将表单中数据提交到服务器端

2.表单的作用

百度输入界面就是一个表单,用户可以在表单上进行一些输入,在提交时根据用户输入来执行程序在表单中一般会有一个按钮来负责提交。点击按钮,会内容提交到服务器端表单元素放在之间。

3.定义表单

表单有如下性质 : (在这里仅根据JSP来介绍表单的基本定义方法)

  • 表单中可以 输入内容 ,这些输入功能控件提供,叫作 表单元素

  • 表单中一般会有一个 按钮负责提交,单击 提交按钮 表单元素中的内容会提交给服务器端

  • 单元素放在form标签之间。

    <%-- 定义表单 --%>
    <%-- 用action属性来指定表单提交到哪个页面 / 携带数据跳转到哪个页面--%>
    <form action="/page.jsp">
        请输入账号:<input name = "account" type="text"><br>
        请输入密码:<input name = "password" type="password"><br>
        <input type="submit" value="登录">
    </form>
    

4.获得表单提交的元素 :

“单一表单元素” 数据的获取

  • textForm1.jsp

    <%-- 使用method="post"可以再浏览器地址栏上看不出参数,比较安全 --%>
    <form action="/书本上代码和知识点/第五章/textForm_result.jsp" method="post">
        请输入学生的模糊资料:<br>
        <input name="stuname" type="type"><br>
        
        <%-- 多行文本框  --%>
        <textarea name="info" rows="5" cols="30"></textarea><br>
        
        <%--  单选框  --%>
        <input name="sex" type="radio" value="boy" checked><input name="sex" type="radio" value="girl" checked><br>
        
        <%--  下拉框 --%>
        <select name="home">
            <option value="beijing">北京</option>
            <option value="shanghai">上海</option>
            <option value="广东">广东</option>
        </select>
            
        <input type="submit" value="注册">
    </form>
    
  • textForm_result1.jsp

    <%-- 通过request内置对象来获得表单传来的参数--%>
    <%
        String stuname = request.getParameter("stuname");
        //使用out内置对象来在页面上输出数据
        out.print("输入的查询的关键字为:" + stuname);
    
        //获得多行文本框中的数据
        String info = request.getParameter("info");
        out.print("多行文本框中的内容为:" + info);
    
        //获得单选按钮中的数据
        String sex = request.getParameter("sex");
        out.print("单选框中的内容为:" + sex);
    
        //获取下拉菜单/下拉框中的内容
        String home = request.getParameter("home");
        out.print("下拉菜单中的内容为:" + home);
    %>
    

“捆绑表单元素” 数据的获取

捆绑表单元素 数据的获取获得多个表单元素

  • textForm2.jsp

    <form action="textForm_result2.jsp" method="post">
    
        <%--  多选框/复选框  --%>
        请输入自己的信息进行注册:<br>
        请选择你的爱好:
        <input name="fav1" type="checkbox" value="sing">唱歌
        <input name="fav1" type="checkbox" value="dance">跳舞
        <input name="fav1" type="checkbox" value="ball">打球
        <input name="fav1" type="checkbox" value="game">打游戏
        <input type="submit" value="查询">
    
    
        <%--  多选列表框  --%>
        <select name="fav2" multiple>
            <option value="sing">唱歌</option>
            <option value="dance">跳舞</option>
            <option value="dance">跳舞</option>
            <option value="ball">打球</option>
            <option value="game">打游戏</option>
        </select>
    
        <input type="submit" value="注册">
    </form>
    
  • textForm_result2.jsp

    <%-- 通过request内置对象来获得表单传来的参数--%>
    <%
        //获得"多选框"中内容 (传来的参数是一个数组)
        String[] fav1 = request.getParameterValues("fav");
        //输出选择的爱好
        for (int i = 0; i < fav1.length; i++) {
            out.print(fav1[i]);
        }
    
        //输出 "选择多选列表框" 中的内容
        String[] fav2 = request.getParameterValues("fav2");
        for (int i = 0; i < fav2.length; i++) {
            out.print(fav2[i]);
        }
    %>
    

“同名表单元素” 数据的获取

  • 在很多情况下,其他 表单元素也可以设置为同名。例如在注册界面上输入用户的电话号码,最多可以输入4个,则可以4个同名的文本框进行输入

  • multiNameForm.jsp

    <%-- 请您输入自己的信息进行注册--%>
    <form action="multiNameForm_result.jsp">
        请您输入您的电话号码(最多四个): <br>
        <%
            for (int i = 1; i <= 4; i++) {
        %>
            号码:<%= i%>: <input name="phone" type="text"><br>
        <%
            }
        %>
        <input type="submit" value="注册">
    </form>
    
  • multiNameForm_result.jsp

    <%
        String[] phone = request.getParameterValues("phone");
        out.print("号码为: ");
        for (int i = 0; i < phone.length; i++) {
            out.print(phone[i]);
        }
    %>
    

5.隐藏表单元素

  • type=“hidden” 设置 隐藏表单元素,它是隐藏在网页上的一个表单元素,并不会在网页上显示出来

  • formP1_hidden.jsp

    <%
    //定义一个变量
        String str = "12";
        int number = Integer.parseInt(str); //用包装类将String类型数据解析为: int类型
    %>
    
    该数字的平方为: <%= number * number %><hr>
    
    <%--  method="post" : url上不会显示传递的参数信息  --%>
    <form action="formP2.jsp"  method="post">
        
    <%--  隐藏表单  --%>
    <%--  type="hidden" : 隐藏表单,网页上不会显示该元素  --%>    
    <%--   将表单中要传递的值隐藏起来,但跳转到的那个页面还是能接收到这个参数的 --%>
       <input type="hidden" name="number" value="<%= number%>">
        <input type="">
        <input type="submit" value="到达p2">
    </form>
    
  • formP2.jsp

    <%-- 获得隐藏表单中传来的参数--%>
    <%
    //获得number
        String str = request.getParameter("number");
        int number = Integer.parseInt(str);
    %>
    该数字的立方为: <%= number * number * number%><br>
    

6.解决中文乱码问题 :

如果使用的是 Tomcat服务器,在提交过程中经常会出现 中文乱码问题,可通过两个方面解决乱码问题。

中文无法显示

  • 在有些JSP中,中文根本无法显示通常的原因没有把文件头上字符集设置为中文字符集

    <%@ page language="java" contentType="text/html;charset=gb2312"  %>
    
    <%@ page  language="java" pageEncoding="gb2312" %> 
    

在提交过程中显示乱码

  • 提交服务器认定的编码网页上显示的编码不一致。可通过设置request.setCharacterEncoding( )解决该问题

    <%
        request.setCharacterEncoding("gb2312");
    %>
    

http://www.kler.cn/a/155377.html

相关文章:

  • SQL 中 BETWEEN AND 用于字符串的理解
  • 手动实现promise的all,race,finally方法
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-Qwen-Agent深入学习(四)
  • 将Excel文件的两个表格经过验证后分别读取到Excel表和数据库
  • 【算法一周目】双指针(2)
  • 深度学习中的感受野:从基础概念到多层次特征提取
  • 智能优化算法应用:基于原子搜索算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 二叉树在线OJ
  • python-迭代器与生成器
  • 强化学习(一)——基本概念及DQN
  • matlab科学计算
  • 如何使用注解实现接口的幂等性校验
  • Linux下activemq的安装与安装成功确认
  • 面试题:千万量级数据中查询 10W 量级的数据有什么方案?
  • Java架构师技术为业务赋能
  • 【DPDK】Trace Library
  • 【目标检测实验系列】YOLOv5创新点改进实验:通过转置卷积,动态学习参数,减少上采用过程特征丢失,提高模型对目标的检测精度!(超详细改进代码流程)
  • 基于深度学习的肺炎CT图像检测诊断系统
  • [cocos creator]EditBox,editing-return事件,清空输入框
  • Java实现数组中紧跟 key 之后出现最频繁的数字
  • 新型信息基础设施下的IP追溯技术:构建数字化安全新境界
  • 在数据库中进行表内容的修改(MYSQL)
  • mnist图像去噪
  • 【数据结构】二叉树---C语言版
  • RTI-DDS实现C/S通信
  • [Firefly-Linux] RK3568 gpio-leds驱动详解