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

GET、POST、添加、编辑

1、Get

1.采用URL请求路径传输参数,参数拼接在URL后面
2.参数传输过程中隐私性较差,直接在URL后面
3.路径可以容纳的数据有限,只能传递少量参数
4.form表单请求默认就是get
http://localhost:8080/student?method=deleteById&id=23
http://localhost:8080/student?name=zhangsan&age=12&gender=男
Get方式传参,不是非得在form表单里面,可以手动写,在超链接的href里面直接在地址后面加?id=2

2、POST

1.采用实体内容传参数
2.参数在传输过程中不可见,隐私性好
3.实体内容专门用来传输数据,大小没有限制
4.使用:在form上加method=“post”
在这里插入图片描述
不管是Get方式还是POST方式传参数,后台代码获取参数的方式都是一样的。
req.getParameter(“name”);

3、添加

			case "add":add(req,resp);break;private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException {System.out.println("StudentServlet.add");String name = req.getParameter("name");String age = req.getParameter("age");String gender = req.getParameter("gender");Connection connection = null;PreparedStatement preparedStatement = null;//不是查询类,没有结果集try {connection = JDBCUtil.getConnection();String sql = "INSERT INTO student(name,age,gender) VALUES(?,?,?)";//一个一个填补括号中的“?”preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setInt(2,Integer.parseInt(age));preparedStatement.setString(3,gender);//打印出来,显示在执行什么语句(非必须)System.out.println(preparedStatement);//返回影响行数int count = preparedStatement.executeUpdate();System.out.println("count: " + count);} catch (SQLException e) {throw new RuntimeException(e);} finally {JDBCUtil.close(connection,preparedStatement,null);}//更新类的操作,同样也需要重定向resp.sendRedirect("/student");}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%--action 属性用于指定表单提交时数据要发送到的目标地址--%><%--form表单默认getget方法会将传过来的参数直接写在地址后面(后面),这会覆盖掉我们原先写在“?”后面的“method=add”例如http://localhost:8080/student?name=zhangsan&age=12&gender=男所以需要用post方法接收(参数不会显示在地址后面,覆盖我们自己的method)--%><form action="/student?method=add" method="post">姓名:<input type="text" name="name"><br>年龄:<input type="text" name="age"><br>性别:<input type="text" name="gender"><br><input type="submit" value="添加"></form>
</body>
</html>

4、编辑

			case "toUpdate":toUpdate(req,resp);break;case "update":update(req,resp);break;
//完成update后台操作private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException {System.out.println("StudentServlet.update");String id = req.getParameter("id");String name = req.getParameter("name");String age = req.getParameter("age");String gender = req.getParameter("gender");Connection connection = null;PreparedStatement preparedStatement = null;//不是查询类,没有结果集try {connection = JDBCUtil.getConnection();String sql = "UPDATE student SET name=?,age=?,gender=? WHERE id=?";//一个一个填补括号中的“?”preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setInt(2,Integer.parseInt(age));preparedStatement.setString(3,gender);preparedStatement.setInt(4,Integer.parseInt(id));//打印出来,显示在执行什么语句(非必须)System.out.println(preparedStatement);//返回影响行数int count = preparedStatement.executeUpdate();System.out.println("count: " + count);} catch (SQLException e) {throw new RuntimeException(e);} finally {JDBCUtil.close(connection,preparedStatement,null);}resp.sendRedirect("/student");}//toUpdate是为了去后台拿数据,用于数据回显,是update的一个中间过程private void toUpdate(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//通过selectAll代码修改的System.out.println("StudentServlet.toUpdate");//拿出request中的idString id = req.getParameter("id");Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;//在这里不再是封装成list集合,封装为一个student对象即可Student student = null;try {connection = JDBCUtil.getConnection();String sql = "SELECT id,name,age,gender FROM student WHERE id=?";preparedStatement = connection.prepareStatement(sql);//填补“?”preparedStatement.setInt(1,Integer.parseInt(id));System.out.println(preparedStatement);resultSet = preparedStatement.executeQuery();while (resultSet.next()) {String name = resultSet.getString("name");int age = resultSet.getInt("age");String gender = resultSet.getString("gender");student = new Student(Integer.parseInt(id), name, age, gender);}}//ClassNotFoundException在JDBCUtil静态代码块中已被捕获,所以不需要在这里再捕获了catch (SQLException e) {throw new RuntimeException(e);} finally {JDBCUtil.close(connection, preparedStatement, resultSet);}//(设置属性)req.setAttribute("student",student);//转发到student_update.jsp页面进行数据回显req.getRequestDispatcher("student_update.jsp").forward(req,resp);}
<%@ page import="com.easy.web.pojo.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%--action 属性用于指定表单提交时数据要发送到的目标地址--%><%--form表单默认getget方法会将传过来的参数直接写在地址后面(后面),这会覆盖掉我们原先写在“?”后面的“method=add”例如http://localhost:8080/student?name=zhangsan&age=12&gender=男所以需要用post方法接收(参数不会显示在地址后面,覆盖我们自己的method)--%><%--JS脚本,写java代码获取封装的student--%><%Student student = (Student) request.getAttribute("student");%><%--确认修改后跳转到/student?method=update进行数据库修改,修改真实数据--%><form action="/student?method=update" method="post"><%--value属性展示数据--%><input type="hidden" name="id" value="<%=student.getId()%>">姓名:<input type="text" name="name" value="<%=student.getName()%>"><br>年龄:<input type="text" name="age" value="<%=student.getAge()%>"><br>性别:<input type="text" name="gender" value="<%=student.getGender()%>"><br><input type="submit" value="修改"></form>
</body>
</html>
http://www.dtcms.com/a/361918.html

相关文章:

  • python爬虫之selenium库进阶(小白五分钟从入门到精通)
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(23):文法+单词第7回5+考え方3
  • 为什么要使用RocketMQ半消息
  • 使用C#语言 基于FTP协议进行文件夹上传下载
  • 【Android】Span富文本简介
  • 苹果 Safari 地址栏可能被超大光标视觉欺骗
  • 阿里云OSS架构示意图与流程
  • AR眼镜在警务安防的应用方案
  • 前沿科技竞速:脑机接口、AI芯片与半导体生态上的新突破
  • 线性回归中梯度下降与正规方程以及拟合问题与正则化
  • 【职业】算法与数据结构专题
  • 【Flink】DataStream API (二)
  • 收藏!VSCode 开发者工具快捷键大全
  • 计算机毕设推荐:基于python的农产品价格数据分析与预测的可视化系统的设计与实现 基于Python农产品管理系统【源码+文档+调试】
  • 基于单片机汽车防盗系统/汽车安全防丢系统
  • 企业级主流日志系统架构对比ELKK Stack -Grafana Stack
  • 解决「图片导出功能需要 Chromium 浏览器支持,但未找到」的完整方案
  • Promise:异步编程的优雅解决方案
  • elemen ui Table表格中添加图片
  • qData 数据中台【开源版】发布 1.0.4 版本,全面升级数据清洗与资产管理能力
  • Spring Security(第六篇):结营篇 —— 完整源码与后续进阶路线 [特殊字符]
  • Day20 API
  • 什么是最大熵强化学习?
  • Go项目中关于优雅关闭的那些事
  • 动态配置最佳实践:Spring Boot 十种落地方式与回滚审计指南(含实操与避坑)
  • 如何将mysql数据导入人大金仓数据库
  • 漏洞挖掘 渗透测试思路图总结
  • 期货交易策略自动化实现
  • 数组基础及原理
  • 秋招冲刺计划(Day12)