JSP Servlet SQL 三者之间数据传递

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 前言:       最近一直在做WEB开发,现总结一下这一段时间的体会和感触。       切记,web开发重点在于前台数据交互,页面美化而不要太沉溺于底层数据。
前言:

       最近一直在做WEB开发,现总结一下这一段时间的体会和感触。

       切记,web开发重点在于前台数据交互,页面美化而不要太沉溺于底层数据。

       浏览器时代来到,向我们召唤出更炫、更简洁、更方便、更大气的网站。

       这篇博客目的在于为大家解决web开发中最基础的数据传递操作,让大家有一个好的起点,在web开放中更加游刃有余

 

背景:

       目前业界很流行的WVC(model-view-control)开发模式,具体暂可理解为

              模型是javaBean,

              视图是JSP,

             控制是servlet。

       web的运行机制:

              数据首先在jsp上被展示出来,用户看到页面后触发一些事件,并可能传递数据,这些数据和请求被控制器接收到,然后开始处理(往往会需要有一些数据库的操 作(查询,修改数据库数据)),当这些处理结束后,我们就需要将数据反馈到JSP上显示给用户看,完成一次完整的交互过程。

 正文:

       根据背景所述的顺序,我们依次介绍----如何从JSP传数据到servlet并接收、如何在servlet里面获得数据库数据并处理、如何将servlet内的数据传递给jsp并显示在网页上。

 

(一)从JSP到servlet

1、发信息

表单提交

Html代码   收藏代码
  1. <form action="相对地址URL" name="表单名字" method="提交方式(post(推荐)、get)">  
  2.         <input type="text" name="文本框名字"  /><!--一个文本输入框-->  
  3. </form>  

 

定义一个函数来处理表单文本框检查非空并提交表单事件

Html代码   收藏代码
  1. <script>  
  2.             $("#被单击按钮的ID").click(function(){  
  3. .value.length==0){  

  4.             }  
  5.             return true;});  
  6. </script>  

 

2、收信息来到表单提交时URL所指向的servlet文件,获取传递过来的参数值

Java代码   收藏代码
  1. "文本框名字"),"utf-8");  
  2. +search);      

 

ok,完成

 

(二)从servlet到数据库

1、获得数据(MySql为例)

①创建数据库连接池

创建一个配置文件,如图

确保名字一致,

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Context>  
  3. <Resource name="jdbc/LeLe"    
  4. auth="Container"  
  5. type="javax.sql.DataSource"  
  6. maxActive="50"  
  7. maxIdle="5"  
  8. maxWait="10000"  
  9. logAbandoned="true"  
  10. username=""  
  11. password=""  
  12. driverClassName="com.mysql.jdbc.Driver"  
  13. url="jdbc:mysql://localhost:3306/lele" />  
  14. </Context>  
  15. <!-- jdbc/LeLe为项目名 -->  

 

②获取链接

Java代码   收藏代码
  1. public static Connection getConnection() {  
  2.     Connection con = null;    //创建用于连接数据库的Connection对象  
  3. null;  
  4. try {  
  5.         Context initContext = new InitialContext();  
  6. "java:/comp/env");  
  7. "jdbc/LeLe");  
  8.     } catch (Exception e1) {  
  9. "加载数据库驱动失败"+e1);     
  10. return null;  
  11. // 加载Mysql数据驱动  
  12. try {  
  13. // 创建数据连接  
  14. "数据库连接成功了");     
  15. return con;    //返回所建立的数据库连接  
  16.     } catch (Exception e) {  
  17. "数据库连接失败" + e.getMessage());  
  18. return null;  
  19. }  

 

③执行SQL语句,并返回结果

Java代码   收藏代码
  1. /* 查询数据库,输出符合要求的记录的情况*/  
  2. private static Connection conn;  
  3. private static Statement st;  
  4. private static ResultSet rs;  
  5. //    public static void main(String [] args){  
  6. //        query("select * from agreement");  
  7. //    }  
  8. public static ResultSet query(String sql ) {  
  9. "函数DBQuery日志");  
  10. if(conn == null){  
  11. //同样先要获取连接,即连接到数据库  
  12. if(conn == null){  
  13. "数据库连接失败" );  
  14. return null;  
  15.         }  
  16. "查询函数中连接到数据库数据成功"+conn);  
  17.         try {  
  18. //创建用于执行静态sql语句的Statement对象,st属局部变量     
  19. //执行sql查询语句,返回查询数据的结果集  
  20. if(!rs.next()){  
  21. "数据库中未查询到数据");  
  22. return null;  
  23.             System.out.println("数据库中已经查询到数据");  
  24. //            String agreement_id = rs.getString(1);     
  25. //            String agreement_content = rs.getString(2);  
  26. //            System.out.println("已经查询到数据的数据为----agreement_id:"+agreement_id+"\tagreement_content:"+agreement_content);  
  27. return rs;  
  28. catch (SQLException e) {  
  29. "数据库中查数据失败");  
  30. return null;  
  31.          
  32.   
  33. public static void closeDB() throws SQLException{  
  34. if(null != rs)  
  35.         if(null != st)  
  36.         if(null != conn)  
  37. //关闭数据库连接  
  38.     }  

 

2、处理数据(使用javaBean保存数据)

Java代码   收藏代码
  1. if(rs != null){  
  2. do{  
  3. new User();//一个javaBean的实例化对象  
  4. "user_id"));  
  5. "user_name"));  
  6. "user_email"));  
  7. "user_password"));  
  8.         System.out.println(rs.getString("user_id"));  
  9. "user_name"));  
  10. "user_email"));  
  11. "user_password"));  
  12. while(rs.next());  
  13. }  

 

Java代码   收藏代码
  1. public class User {  
  2. private String user_id;//用户编号  
  3. private String user_email;//用户邮编  
  4. private String user_name;//用户名  
  5. private String user_password;//用户密码  
  6.     public String getUser_id() {  
  7. return user_id;  
  8.     public void setUser_id(String userId) {  
  9.     }  
  10. public String getUser_email() {  
  11. return user_email;  
  12.     public void setUser_email(String userEmail) {  
  13.     }  
  14. public String getUser_name() {  
  15. return user_name;  
  16.     public void setUser_name(String userName) {  
  17.     }  
  18. public String getUser_password() {  
  19. return user_password;  
  20.     public void setUser_password(String userPassword) {  
  21.     }  
  22. }  

 

ok,完成

 

(三)从servlet到JSP

1、发数据

使用重定向将request和response转发给一个JSP

Java代码   收藏代码
  1. //将数据发到JSP  
  2. "index_search.jsp");  
  3. //存值  
  4. //开始跳转  

 

2、接收数据

来到重定向指向的URL中获取刚才发送过来的数据,并显示在网页上

Java代码   收藏代码
  1. "test");  
  2. while(it.hasNext())  
  3.     User user=(User)it.next();  
  4. "<td ><div align='center'>"+user.getUser_name()+"</td>");         
  5. "<td ><div align='center'><a href='#' onclick=window.open('MyJsp.jsp?usid="+user.getUser_id().trim()+"','newwindow','width=600,height=350,top=300,left=300')>管理</a></td>");  
  6. "</tr>");  
  7. }  

 ok,完成

 

 

原文地址:http://java--hhf.iteye.com/category/349321

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
24天前
|
Java
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
19 1
|
24天前
|
Java
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
19 0
|
26天前
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
221 4
一文搞懂SQL优化——如何高效添加数据
|
1天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
6天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
6天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
6天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。
|
6天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。
|
6天前
|
XML 数据格式
Servlet 教程 之 Servlet 表单数据 7
该教程展示了如何使用Servlet处理HTML表单中的复选框数据。示例中,`checkbox.html`包含三个复选框(百度、Google、淘宝),用户可多选。提交表单后,Servlet `CheckBox`通过`doGet`方法获取并显示选定的选项。在`web.xml`中配置了Servlet映射。
5 1