前言:
最近一直在做WEB开发,现总结一下这一段时间的体会和感触。
切记,web开发重点在于前台数据交互,页面美化而不要太沉溺于底层数据。
浏览器时代来到,向我们召唤出更炫、更简洁、更方便、更大气的网站。
这篇博客目的在于为大家解决web开发中最基础的数据传递操作,让大家有一个好的起点,在web开放中更加游刃有余
背景:
目前业界很流行的WVC(model-view-control)开发模式,具体暂可理解为
模型是javaBean,
视图是JSP,
控制是servlet。
web的运行机制:
数据首先在jsp上被展示出来,用户看到页面后触发一些事件,并可能传递数据,这些数据和请求被控制器接收到,然后开始处理(往往会需要有一些数据库的操作(查询,修改数据库数据)),当这些处理结束后,我们就需要将数据反馈到JSP上显示给用户看,完成一次完整的交互过程。
正文:
根据背景所述的顺序,我们依次介绍----如何从JSP传数据到servlet并接收、如何在servlet里面获得数据库数据并处理、如何将servlet内的数据传递给jsp并显示在网页上。
(一)从JSP到servlet
1、发信息
表单提交
<form action="相对地址URL" name="表单名字" method="提交方式(post(推荐)、get)"> <input type="text" name="文本框名字" /><!--一个文本输入框--> </form>
定义一个函数来处理表单文本框检查非空并提交表单事件
<script> $(document).ready(function(){ $("#被单击按钮的ID").click(function(){ if(document.all.文本框名字.value.length==0){ alert("输入不能为空"); return false; } document.all.表单名字submit(); return true;}); }); </script>
2、收信息来到表单提交时URL所指向的servlet文件,获取传递过来的参数值
String search = java.net.URLDecoder.decode(request.getParameter("文本框名字"),"utf-8"); System.out.println("在search的servlet中接收到的search参数为-->"+search);
ok,完成
(二)从servlet到数据库
1、获得数据(MySql为例)
①创建数据库连接池
创建一个配置文件,如图
确保名字一致,
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/LeLe" auth="Container" type="javax.sql.DataSource" maxActive="50" maxIdle="5" maxWait="10000" logAbandoned="true" username="" password="" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/lele" /> </Context> <!-- jdbc/LeLe为项目名 -->
②获取链接
public static Connection getConnection() { Connection con = null; //创建用于连接数据库的Connection对象 DataSource ds = null; try { Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); ds = (DataSource)envContext.lookup("jdbc/LeLe"); System.out.println(ds.getConnection()); } catch (Exception e1) { System.out.println("加载数据库驱动失败"+e1); return null; }// 加载Mysql数据驱动 try { con = ds.getConnection();// 创建数据连接 System.out.println("数据库连接成功了"); return con; //返回所建立的数据库连接 } catch (Exception e) { System.out.println("数据库连接失败" + e.getMessage()); return null; } }
③执行SQL语句,并返回结果
/* 查询数据库,输出符合要求的记录的情况*/ private static Connection conn; private static Statement st; private static ResultSet rs; // public static void main(String [] args){ // query("select * from agreement"); // } public static ResultSet query(String sql ) { System.out.println("函数DBQuery日志"); if(conn == null){ conn = DBConnection.getConnection(); //同样先要获取连接,即连接到数据库 if(conn == null){ System.out.println("数据库连接失败" ); return null; } } System.out.println("查询函数中连接到数据库数据成功"+conn); try { st = (Statement) conn.createStatement(); //创建用于执行静态sql语句的Statement对象,st属局部变量 rs = (ResultSet)st.executeQuery(sql); //执行sql查询语句,返回查询数据的结果集 if(!rs.next()){ System.out.println("数据库中未查询到数据"); return null; } System.out.println("数据库中已经查询到数据"); // String agreement_id = rs.getString(1); // String agreement_content = rs.getString(2); // System.out.println("已经查询到数据的数据为----agreement_id:"+agreement_id+"\tagreement_content:"+agreement_content); return rs; } catch (SQLException e) { System.out.println("数据库中查数据失败"); return null; } } public static void closeDB() throws SQLException{ if(null != rs) rs.close(); if(null != st) st.close(); if(null != conn) conn.close(); //关闭数据库连接 }
2、处理数据(使用javaBean保存数据)
if(rs != null){ do{ User user0=new User();//一个javaBean的实例化对象 user0.setUser_id(rs.getString("user_id")); user0.setUser_name(rs.getString("user_name")); user0.setUser_email(rs.getString("user_email")); user0.setUser_password(rs.getString("user_password")); collection.add(user0); System.out.println(rs.getString("user_id")); System.out.println(rs.getString("user_name")); System.out.println(rs.getString("user_email")); System.out.println(rs.getString("user_password")); }while(rs.next()); }
public class User { private String user_id;//用户编号 private String user_email;//用户邮编 private String user_name;//用户名 private String user_password;//用户密码 public String getUser_id() { return user_id; } public void setUser_id(String userId) { user_id = userId; } public String getUser_email() { return user_email; } public void setUser_email(String userEmail) { user_email = userEmail; } public String getUser_name() { return user_name; } public void setUser_name(String userName) { user_name = userName; } public String getUser_password() { return user_password; } public void setUser_password(String userPassword) { user_password = userPassword; } }
ok,完成
(三)从servlet到JSP
1、发数据
使用重定向将request和response转发给一个JSP
//将数据发到JSP RequestDispatcher rd = request.getRequestDispatcher("index_search.jsp"); request.setAttribute("test",collection);//存值 rd.forward(request,response);//开始跳转
2、接收数据
来到重定向指向的URL中获取刚才发送过来的数据,并显示在网页上
Collection<User> collectionUser=(Collection<User>)request.getAttribute("test"); Iterator it=collectionUser.iterator(); while(it.hasNext()) { User user=(User)it.next(); out.println("<td ><div align='center'>"+user.getUser_name()+"</td>"); out.println("<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>"); out.println("</tr>"); }
ok,完成
结束语:
推荐一本JavaScript进阶读物--------《JavaScript修炼之道》
推荐一本项目开发实录书籍----------《Java项目开发案例全程实录》
相关推荐
jsp servlet+sqlserver简单登录注册jsp servlet+sqlserver简单登录注册jsp servlet+sqlserver简单登录注册
java mvc jsp servlet SqlServer jsp servlet service dao Java 写的网站里面所有的东西都有
Servlet+JSP+SQL Server实现网上书店系统 Servlet+JSP+SQL Server实现网上书店系统 Servlet+JSP+SQL Server实现网上书店系统 Servlet+JSP+SQL Server实现网上书店系统 Servlet+JSP+SQL Server实现网上书店系统 ...
java mvc jsp servlet SqlServer jsp servlet service dao Java 写的网站里面所有的东西都有
采用 jsp+ sql server + servlet 模式 实现用户登陆
用jsp +servlet+sql ,毕业设计用
本人简单做了一个购物车设计 内附项目源码,数据库文件
Jsp+Servlet+Echarts实现动态数据可视化,对应讲解博文:https://blog.csdn.net/ITBigGod/article/details/81023802
不错的分页代码 可以参考下 不错的分页代码 可以参考下 不错的分页代码 可以参考下
基于Servlet+JSP+SQL Server实现的客户信息管理系统 基于Servlet+JSP+SQL Server实现的客户信息管理系统 基于Servlet+JSP+SQL Server实现的客户信息管理系统 基于Servlet+JSP+SQL Server实现的客户信息管理系统 基于...
JSP+servlet+SQL示例.rarJSP+servlet+SQL示例.rar(含源码)jsp,servlet,SQLjsp,servlet,SQL
jsp+servlet+SqlServer教务管理系统
jsp servlet MVC Demo jsp servlet MVC Demo jsp servlet MVC Demo
本系统采用Servlet+Jsp+JavaBean+SQL2000 设计方式,其中Servlet担当主要逻辑控制,通过接受Jsp传来的用户请求,调用以及初始化JavaBean,在通过Jsp传到客户端,本系统中SqlBean担当主要的与数据库的连接与通信,...
基于servlet+jsp+sqlserver的一个小型超市零售管理系统 基于servlet+jsp+sqlserver的一个小型超市零售管理系统 基于servlet+jsp+sqlserver的一个小型超市零售管理系统 基于servlet+jsp+sqlserver的一个小型超市零售...
物流管理系统 jsp+servlet+sqlserver 毕业设计源码 最近刚做的 黄科大学员
eclipse jspservlet环境搭建 eclipse jspservlet环境搭建 eclipse jspservlet环境搭建
文章管理系统(JSP+Servlet+sql server 2000)
学生课绩管理系统 jsp + servlet + javaBean + sql
jsp网页通过ajax传递json数据到java的servlet中,servlet处理数据后回传json数据到jsp页面