JSP和servlet实现后台数据管理
JSP和Servlet的区别;
? ? ? ?servlet是在服务器端执行的java程序,只不过它有专门的一套规则(就是我们平常所说的api);jsp说得简单点就是用另一套简单的规则写的servlet程序,它可以写java代码,还可以写html代码,JavaScript,css等,但是到服务器端首先会被转成servlet程序然后就按照servlet的执行顺序执行了。
?
jsp一般用在数据的显示 ,Servlet用在数据的处理
?
?
jsp和servlet实现数据的添加与后台管理;
思路:1,使用html框架将页面组合起来;
2,在左边的数据添加和查询页面写成jsp和servlet
?
代码实现;
1,在Oracle中创建QQLine表和字段,并插入数据
?
1 ,创建 QQLine表 字段 no number(10), 编号 name varchar2(15), 姓名 phone number(11), 电话 qq number(13), qq号码 email varchar2(15) email 2, 插入两条数据 insert into QQLine values(2,‘谢霆锋‘,15623453212,88888888,‘[email protected]‘); insert into QQLine values(1,‘谢‘,15623453212,777777788,‘[email protected]‘);
?
?
2,在JavaEE工具中创建动态网站项目
??
? ? ?2,1创建顶部html页面;
? ?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>QQLine</h1> </body> </html>
?
?
?2,2创建左边的导航页面, 点击数据显示在右边 ? ?;关键代码
?
<div> <h3>功能导航</h3> <ul> <li><a href="XS.jsp" target="_mainFrame">显示数据</a></li> <li><a href="Reg.html" target="_mainFrame">添加数据</a></li> </ul> </div>
?
?
2,3 使用html框架将页面组合起来; ?关键代码
?
<frameset rows="100px,*"> <frame src="Top.html" /> <frameset cols="200px,*"> <frame src="Left.html" /> <frame src="XS.jsp" name="_mainFrame" /> //name的属性是点击左边的导航数据会显示在右边 </frameset> </frameset>
?
?
?
?
3,动态数据的处理;
?
? ? 3,1 点击左边的 查询数据库的数据显示在右边 XS.jsp;关键代码
?
<%@page import="sun.security.util.DerValue"%> <%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title>Insert title here</title> </head> <body> <% try { //加载数据库驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; Connection conn = DriverManager.getConnection(url, "SCOTT", "tiger"); %> <!-- 设置表格显示数据 --> <table border=1px width=100%> <h3>联系人信息</h3> <tr> <th>编号</th> <th>姓名</th> <th>电话</th> <th>QQ</th> <th>Email</th> </tr> <% String sql="select * from QQLine order by no"; //System.out.println(sql); PreparedStatement pstm =conn.prepareStatement(sql); // System.out.println("======"); ResultSet rt =pstm.executeQuery(); //System.out.println("++++++"); while(rt.next()){ int no = rt.getInt(1); // String name= rt.getString(2); %> <tr> <td><%=no %></td> <td><%=rt.getString("name") %></td> <td><%=rt.getLong(3) %></td> <td><%=rt.getLong(4) %></td> <td><%=rt.getString(5) %></td> </tr> <% } %> </table> <% } catch (Exception ef) { ef.printStackTrace(); } %> </body> </html>
?
?
?
3,2点击左边导航栏中的数据添加,可以向数据库添加数据 ?,使用serlvet来处理 ??
? ? ?
? ? 添加数据的html关键代码;
?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>添加数据</title> <style type="text/css"> .float_right{ text-align:center; color:#0000ff; font-size:14px; font-weight:bold; } form div{float:left;position:relative} form input{float:left} </style> </head> <body> <h1>添加数据</h1> <form action="save" method="post"> <table width=300px> <tr class="float_right"> <td width=100px>id:</td> <td><input type="text" name="userId" id="userId" onblur="fun_id()"/> <div id="innerid"> </div></td> </tr> <tr> <td class="float_right"> name:</td> <td><input type="text" name="userName" id="uesrName" /> <div id="innerctext"> </div></td> </tr> <tr> <td class="float_right"> phone:</td> <td><input type="text" name="uesrPhone" id="uesrPhone" /> <div id="innerclass"> </div></td> </tr> <tr> <td class="float_right"> qq:</td> <td><input type="text" name="uesrqq" id="userqq" /> <div id="innerqq"> </div></td> </tr> <tr> <td class="float_right"> email:</td> <td><input type="text" name="uesrEmail" id="userEmail" /> <div id="inneremail"> </div></td> </tr> <tr> <td colspan="2" align="center"> <input type="reset" value="取消"> <input type="submit" value="添加"></td> </tr> </table> </form> </body> </html>
?
?
?
数据库的单例模式;
?
package DB; import java.sql.Connection; import java.sql.DriverManager; public class DB { private static Connection conn =null; private DB(){ } public static Connection getConn(){ if (conn != null) { return conn; } try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; conn= DriverManager.getConnection(url,"SCOTT", "tiger"); return conn; }catch(Exception e){ e.printStackTrace(); return null; } } }
?
?
?
?
? servlet获取数据并处理数据添加到数据库中并跳转到显示页面XS.jsp
?
package servlet; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import DB.DB; /** * 使用servlet保存post提交数据 * @author Administrator * */ public class SaveTXL extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String ids = request.getParameter("userId"); int no = Integer.parseInt(ids); String name = request.getParameter("userName"); System.out.println(name); String phones = request.getParameter("uesrPhone"); int phone = Integer.parseInt(phones); String qqs = request.getParameter("uesrqq"); int qq = Integer.parseInt(qqs); String email = request.getParameter("uesrEmail"); System.out.println(no+" "+ name+" "+phones+" "+qqs+" "+ email); //连接数据库 try{ //创建数据库的连接 Connection conn = DB.getConn(); //sql语句 String sql ="insert into QQLine values(?,?,?,?,?)"; //预编译 PreparedStatement pstm = conn.prepareStatement(sql); //赋值 pstm.setInt(1, no); pstm.setString(2, name); pstm.setInt(3,phone); pstm.setInt(4,qq); pstm.setString(5,email); // int len =pstm.executeUpdate(); System.out.println("受影响的行数:"+len); }catch(Exception e){ e.printStackTrace(); } request.getRequestDispatcher("XS.jsp").forward(request, response); } }
?
?
?
?
将?servlet在web.xml中配置
<servlet> <servlet-name>Save</servlet-name> <servlet-class>servlet.SaveTXL</servlet-class> </servlet> <servlet-mapping> <servlet-name>Save</servlet-name> <url-pattern>/save</url-pattern> </servlet-mapping>
?
?
?
?
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。