获取JSP页面输入框中的数据

使用Java Bean获取输入框中的数据
制作一个动态网页,最关键的是后台数据的交互,在静态页面中,数据是在网页创建时就已经完成了的,而在动态页面中,数据是动态存在的,如登录后的用户名显示,这是在网页运行过程中,通过获取后台数据库中的数据,动态显示的。
在数据的获取中,可以使用request.getParameter()方法,依次获取网页中的数据,在该过程中,有个规定,网页中的参数名,实体类中的属性名,以及数据库中的关键字名必须一致。
但是在本方法中,如果使用在注册页面中,会出现代码量非常巨大的情况,还有个办法就是通过反射,先创建实体类的管理类对象,new一个map集合,将map集合转换成set集合,使用增强for循环,获取键值对,通过管理类的getDeclaredField(paramName)方法,得到一个field对象,打开属性私有属性赋值的权限。然后获取值就行,但该方法中,键值对的类型不统一,会出现错误。
因此,可以引入C3p0Util工具类以及BeanUtil工具类,首先,创建一个C3p0Util工具类,在类中书写如下代码:

 public static <T>T mapToBean(Class<T> c, Map map){
        try {
            T t = c.newInstance();
            BeanUtils.populate(t,map);
            return t;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

然后再创建一个Servlet类,在doPost中书写如下代码:

  request.setCharacterEncoding("utf-8");
        Map<String, String[]> map = request.getParameterMap();
        User user = C3p0Util.mapToBean(User.class, map);
        System.out.println(user);

现在可以运行网页,输入内容测试代码是否成功了。
当然,在后面代码中添加一段数据库的增删改查语句,就可以实现数据库与网页的同步啦!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下代码将 JSP 页面输入框插入到 phone varchar(50) 字段: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert Data</title> </head> <body> <h1>Insert Data</h1> <form action="insert.jsp" method="post"> <label for="phone">Phone:</label> <input type="text" name="phone" id="phone"> <br/><br/> <input type="submit" value="Insert"> </form> <% if(request.getMethod().equals("POST")){ String phone = request.getParameter("phone"); if(phone != null && !phone.equals("")) { try { // 导入JDBC驱动程序并建立数据库连接 Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 编写SQL语句并创建PreparedStatement对象 String sql = "INSERT INTO your_table (phone) VALUES (?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // 设置参数 pstmt.setString(1, phone); // 执行SQL语句并提交事务 pstmt.executeUpdate(); conn.commit(); // 关闭连接 pstmt.close(); conn.close(); out.println("Data inserted successfully!"); } catch (Exception e) { e.printStackTrace(); out.println("Error: " + e.getMessage()); } } else { out.println("Phone number cannot be empty!"); } } %> </body> </html> ``` 请注意,这里的 `your_table` 是您要插入数据的表的名称,您需要将其替换为实际的表名。另外,为了避免SQL注入攻击,建议使用参数化查询。在上面的代码,我们通过 `request.getParameter()` 方法获取了表单输入框,并将其作为参数传递给了 PreparedStatement 对象。如果插入数据成功,我们会输出提示信息,否则我们会输出错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值