对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容。

 1、添加数据到数据库:

  如何用户在JSP页面的填写的信息输入到mysql数据库呢?其实原理很简单,就是我们在JSP页面里添加一个form表单标签,需要注意的是这里的action值填我们的用于与数据库库交互的select的地址,method标签有两个值可选:get和post,get方式的数据传输,不安全,传输的数据在地址栏可以看到,而post方式的传输就相对安全些,用户填写的数据不会显式让用户看到。设置好form表单标签后,当用户填写完表达后,点击提交,用户的填写的表单数据将会传输给我们的select,这样我们的select获得到数据后,通过调用我们之前编辑好的添加数据方法,便可以把用户的填写的数据添加到数据库。

  jsp页面代码:

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="error.html"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11.  
  12. <title>添加数据</title>
  13.  
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="添加数据">
  18. <meta http-equiv="description" content="添加数据到数据库">
  19.  
  20. </head>
  21.  
  22. <body>
  23. <center>
  24. <h1>添加数据到mysql数据库</h1>
  25.  
  26. <hr/>
  27. <form action="add" method="post" id="form" name="form">
  28. <table>
  29. <tr>
  30. <td>姓名:</td><td><input type="text" name="name" /></td>
  31. </tr>
  32. <tr>
  33. <td>性别:</td><td><input type="radio" name="sex" value="男" checked="checked"><input type="radio" name="sex" value="女"></td>
  34. </tr>
  35. <tr>
  36. <td>年龄:</td><td><input type="text" name="year" /></td>
  37. </tr>
  38. <tr>
  39. <td>家乡:</td><td><input type="text" name="from" /></td>
  40. </tr>
  41. <tr>
  42. <td>学校:</td><td><input type="text" name="school" /></td>
  43. </tr>
  44. <tr>
  45. <td align="center"><input type="submit" value="提交" /></td><td align="center"><input type="reset" value="重置"></td>
  46. </tr>
  47. </table>
  48. </form>
  49. </center>
  50. </body>
  51. </html>

  对于的select:

  1. package com.mysql.jsp.select;
  2.  
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import javax.servlet.ServletException;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11.  
  12. import com.mysql.jsp.manager.ManagerMaImp;
  13. import com.mysql.jsp.sever.StudentMaImp;
  14. import com.mysql.jsp.student.Student;
  15.  
  16. public class add extends HttpServlet {
  17.  
  18. public void doGet(HttpServletRequest request, HttpServletResponse response)
  19. throws ServletException, IOException {
  20. doPost(request, response);//调用doPsot()方法,把使用get方式传输的数据用doPost()方向接收
  21. }
  22.  
  23. public void doPost(HttpServletRequest request, HttpServletResponse response)
  24. throws ServletException, IOException {
  25. request.setCharacterEncoding("utf-8");//设置编码方式
  26. response.setCharacterEncoding("utf-8");//设置编码方式
  27.  
  28. //这里使用了一个登录验证
  29. String manager_name = (String)request.getSession().getAttribute("name");//获得登录用户的用户名
  30. String manager_password = (String)request.getSession().getAttribute("password");//获得登录用户的密码
  31. ManagerMaImp mmi = new ManagerMaImp();
  32. boolean login = mmi.getByName(manager_name, manager_password);//验证是否正确
  33. if(!login){
  34. request.setAttribute("news", "您还未登录,请先登录再进行操作");
  35. request.getRequestDispatcher("Login.jsp").forward(request, response);//不正确跳转到登录页
  36. }else{
  37. String name = request.getParameter("name");//获得用户填写的姓名
  38. String sex_ = request.getParameter("sex");//获得用户选择的性别
  39. int sex = 1;
  40. if(sex_.equals("女")){
  41. sex = 0;
  42. }
  43. int year = Integer.parseInt(request.getParameter("year"));//获得用户填写的年龄信息
  44. String from = request.getParameter("from");//获得用户填写的故乡信息
  45. String school = request.getParameter("school");//获得用户填写的学校信息
  46. //生成一个学生对象
  47. Student student = new Student();
  48. student.setName(name);
  49. student.setSex(sex);
  50. student.setYear(year);
  51. student.setFrom(from);
  52. student.setSchool(school);
  53. StudentMaImp smi = new StudentMaImp();
  54. boolean flag = smi.add(student);//调用添加方法,将数据添加到数据库
  55. if(flag){
  56. List<Student> list = new ArrayList<Student>();
  57. list = smi.getAll();
  58. request.setAttribute("list", list);
  59. request.getRequestDispatcher("All.jsp").forward(request, response);
  60. }else{
  61. response.sendRedirect("Add.jsp");
  62. }
  63. }
  64. }
  65. }

  对于向数据库添加信息,就为大家总结完毕,加上前几篇,我想大家应该已经明白如何通过JSP来做动态网站了吧。对于这里提到的是否登录验证,下面单独聊一下。

 3、登录验证:

  这个功能大家应该遇到过很多,一般当我们在一些网站下载资料时,会有一个会员是否登录验证,只有你登录了才能下载,这个小功能很简单,但比较实用。下面我们就一起学习一下,这里用到了一个关键字:session,我们只需要在用户登录成功后,将用户的账户和密码通过requset方式进行一下声明,之后我们就可以在任何页面或select中得到。

  声明代码:

  1. request.getSession().setAttribute("name",name);
  2. request.getSession().setAttribute("password", password);

  调用代码:

  1. String manager_name = (String)request.getSession().getAttribute("name");//获得登录用户的用户名
  2. String manager_password = (String)request.getSession().getAttribute("password");//获得登录用户的密码

 4、遍历数据库:

  添加数据我们已经学会了,下面我们一起学一下,如何把数据库中的所有数据遍历后,通过JSP页面为用户显示出来。

  后台select代码:

  1.        StudentMaImp smi = new StudentMaImp();
  2. List<Student> list = new ArrayList<Student>();
  3. list = smi.getAll();
  4. request.setAttribute("list", list);
  5. request.getRequestDispatcher("All.jsp").forward(request, response);

  JSP页面:

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.html"%>
  2. <%@page import="com.mysql.jsp.student.Student"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>遍历数据库</title>
  14.  
  15. <meta http-equiv="pragma" content="no-cache">
  16. <meta http-equiv="cache-control" content="no-cache">
  17. <meta http-equiv="expires" content="0">
  18. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  19. <meta http-equiv="description" content="This is my page">
  20.  
  21. </head>
  22.  
  23. <body>
  24. <% List<Student> list = (List<Student>)request.getAttribute("list"); %>
  25. <center>
  26. <h1>遍历数据库中的数据</h1>
  27. <hr/>
  28. <form action="get" method="post">
  29. <table width="80%">
  30. <tr>
  31. <td><a href="Add.jsp">添加</a></td><td>&nbsp;</td><td>精确查找:<input type="text" name="queding"/><%if(request.getAttribute("new1")!=null){ %><span style="color: red"><%=request.getAttribute("new1")%></span><% } %></td><td>&nbsp;</td><td>模糊查找:<input type="text" name="mohu"/><%if(request.getAttribute("new2")!=null){ %><span style="color: red"><%=request.getAttribute("new2")%></span><% } %></td><td><input type="submit" value="搜索"/></td>
  32. </tr>
  33. </table>
  34. </form>
  35. <table border="1" width="80%">
  36. <TR>
  37. <TD>ID</TD><td>姓名</td><td>性别</td><td>年龄</td><td>家乡</td><td>学校</td><td colspan="2">操作</td>
  38. </TR>
  39. <%
  40. if(list.size()!=0){
  41. for(int i=0; i<list.size(); i++){
  42. Student student = list.get(i);
  43. %>
  44. <tr><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td><td><a href="getId?id=<%=student.getId() %>">修改</a></td><td><a href="del?id=<%=student.getId() %>">删除</a></td></tr>
  45. <%
  46. }
  47. }
  48. %>
  49. </table>
  50. </center>
  51. </body>
  52. </html>

  界面效果:

  

 5、删除数据:

  既然是删除操作,也就没有界面了,但我们点击删除后,select接到我们发送过去的数据信息,根据这些信息调用我们之前写好的删除方法,完成删除操作。

  select代码:

  1. public class del extends HttpServlet {
  2.  
  3. public void doGet(HttpServletRequest request, HttpServletResponse response)
  4. throws ServletException, IOException {
  5. doPost(request, response);//删除操作,发送数据的方式便是get方式,我们可以在地址栏看到我们发送过来的数据信息
  6. }
  7.  
  8. public void doPost(HttpServletRequest request, HttpServletResponse response)
  9. throws ServletException, IOException {
  10. request.setCharacterEncoding("utf-8");
  11. response.setCharacterEncoding("utf-8");
  12. String manager_name = (String)request.getSession().getAttribute("name");
  13. String manager_password = (String)request.getSession().getAttribute("password");
  14. ManagerMaImp mmi = new ManagerMaImp();
  15. boolean login = mmi.getByName(manager_name, manager_password);
  16. if(!login){
  17. request.setAttribute("news", "您还未登录,请先登录再进行操作");
  18. request.getRequestDispatcher("Login.jsp").forward(request, response);
  19. }else{
  20. int id = Integer.parseInt(request.getParameter("id"));
  21. StudentMaImp smi = new StudentMaImp();
  22. boolean flag = smi.del(id);
  23. if(flag){
  24. List<Student> list = new ArrayList<Student>();
  25. list = smi.getAll();
  26. request.setAttribute("list", list);
  27. request.getRequestDispatcher("All.jsp").forward(request, response);
  28. }else{
  29. response.sendRedirect("error.html");
  30. }
  31. }
  32. }
  33.  
  34. }

 6、更新操作:

  学完了添加、删除、遍历操作后,接下来我们一起来学习一下更新操作。

  更新操作的JSP页面:

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="error.html"%>
  2. <%@page import="com.mysql.jsp.student.Student"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>修改数据</title>
  14.  
  15. <meta http-equiv="pragma" content="no-cache">
  16. <meta http-equiv="cache-control" content="no-cache">
  17. <meta http-equiv="expires" content="0">
  18. <meta http-equiv="keywords" content="修改数据">
  19. <meta http-equiv="description" content="修改数据到数据库">
  20.  
  21. </head>
  22.  
  23. <body>
  24. <%Student student = (Student)request.getAttribute("student"); %>
  25. <center>
  26. <h1>修改数据到mysql数据库</h1>
  27. <hr/>
  28. <form action="update" method="post" >
  29. <table>
  30. <tr>
  31. <!-- disabled="disabled":销毁的,select无法得到它的值 -->
  32. <!-- readonly="readonly":只读的,select可以读出值 -->
  33. <td>id:</td><td><input type="text" name="id" readonly="readonly" value="<%=student.getId() %>" /></td>
  34. </tr>
  35. <tr>
  36. <td>姓名:</td><td><input type="text" name="name" value="<%=student.getName() %>"/></td>
  37. </tr>
  38. <tr>
  39. <td>性别:</td><td><input type="radio" name="sex" value="男" <%if(student.getSex()==1){ %>checked="checked"<%} %> >男<input type="radio" name="sex" value="女" <%if(student.getSex()==0){ %>checked="checked"<%} %> >女</td>
  40. </tr>
  41. <tr>
  42. <td>年龄:</td><td><input type="text" name="year" value="<%=student.getYear() %>"/></td>
  43. </tr>
  44. <tr>
  45. <td>家乡:</td><td><input type="text" name="from" value="<%=student.getFrom() %>"/></td>
  46. </tr>
  47. <tr>
  48. <td>学校:</td><td><input type="text" name="school" value="<%=student.getSchool() %>"/></td>
  49. </tr>
  50. <tr>
  51. <td align="center"><input type="submit" value="更新" /></td><td align="center"><input type="reset" value="重置"></td>
  52. </tr>
  53. </table>
  54. </form>
  55. </center>
  56. </body>
  57. </html>

  既然是更新,我们需要首先通过select获得需要更新信息的对象,然后将对象数据发送给JSP页面,代码:

  1. public class come extends HttpServlet {
  2.  
  3. public void doGet(HttpServletRequest request, HttpServletResponse response)
  4. throws ServletException, IOException {
  5. doPost(request, response);
  6. }
  7.  
  8. public void doPost(HttpServletRequest request, HttpServletResponse response)
  9. throws ServletException, IOException {
  10. StudentMaImp smi = new StudentMaImp();
  11. List<Student> list = new ArrayList<Student>();
  12. list = smi.getAll();
  13. request.setAttribute("list", list);
  14. request.getRequestDispatcher("All.jsp").forward(request, response);
  15. }
  16.  
  17. }

  用户接收用户修改的数据,并进行数据更新的select:

  1. public class update extends HttpServlet {
  2.  
  3. public void doGet(HttpServletRequest request, HttpServletResponse response)
  4. throws ServletException, IOException {
  5. doPost(request, response);
  6. }
  7.  
  8. public void doPost(HttpServletRequest request, HttpServletResponse response)
  9. throws ServletException, IOException {
  10. request.setCharacterEncoding("utf-8");
  11. response.setCharacterEncoding("utf-8");
  12. String manager_name = (String)request.getSession().getAttribute("name");
  13. String manager_password = (String)request.getSession().getAttribute("password");
  14. ManagerMaImp mmi = new ManagerMaImp();
  15. boolean login = mmi.getByName(manager_name, manager_password);
  16. if(!login){
  17. request.setAttribute("news", "您还未登录,请先登录再进行操作");
  18. request.getRequestDispatcher("Login.jsp").forward(request, response);
  19. }else{
  20. int id = Integer.parseInt(request.getParameter("id"));
  21. String name = request.getParameter("name");
  22. String sex_ = request.getParameter("sex");
  23. int sex = 1;
  24. if(sex_.equals("女")){
  25. sex = 0;
  26. }
  27. int year = Integer.parseInt(request.getParameter("year"));
  28. String from = request.getParameter("from");
  29. String school = request.getParameter("school");
  30. Student student = new Student();
  31. student.setId(id);
  32. student.setName(name);
  33. student.setSex(sex);
  34. student.setYear(year);
  35. student.setFrom(from);
  36. student.setSchool(school);
  37. StudentMaImp smi = new StudentMaImp();
  38. boolean flag = smi.update(student);
  39. if(flag){
  40. List<Student> list = new ArrayList<Student>();
  41. list = smi.getAll();
  42. request.setAttribute("list", list);
  43. request.getRequestDispatcher("All.jsp").forward(request, response);
  44. }else{
  45. response.sendRedirect("error.html");
  46. }
  47. }
  48. }
  49.  
  50. }

  好了,到这里对于通过JSP实现对数据库的增、删、改、遍历操作,就为大家总结完毕。下一篇:JSP页面精确搜索、模糊搜索

JSP网站开发基础总结《六》的更多相关文章

  1. JSP网站开发基础总结《二》

    有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的 ...

  2. JSP网站开发基础总结《一》

    经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...

  3. JSP网站开发基础总结《八》

    JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页.就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一 ...

  4. JSP网站开发基础总结《七》

    按照计划本篇将为大家总结搜索功能的两种实现:确定搜索与模糊搜索.所谓精确搜索便是指,根据用户的输入的搜索内容,在数据库中寻找具有一一对应的关系的数据,一般都是用户在数据库中的主键值.而模糊搜索,是一种 ...

  5. JSP网站开发基础总结《十二》

    前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...

  6. JSP网站开发基础总结《四》

    经过前几篇的摸爬滚打,下面我们就开始我们真正的数据库操作了,本篇重点在于如何在网站端编写数据库操作语句,内容不多,就是我们常见的增删改查. 0.数据库对象创建: 在JAVASE基础知识总结时,就为大家 ...

  7. JSP网站开发基础总结《十三》

    继上一篇为大家补充过滤器类后,本篇为大家简单介绍一下如何实现验证码效果.验证码的作用是什么呢?1.防止恶意注册2.防止恶意提交3.防止盗取账户等等,总的来说验证码的存在就是为了,防止非人为的操作,不过 ...

  8. JSP网站开发基础总结《九》

    本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...

  9. JSP网站开发基础总结《九》(转)

    本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...

随机推荐

  1. oracle 抛出自定义错误(网上找的例子)

    CREATE OR REPALCE TRIGGER minimun_age_checkBEFORE INSERT ON employeeFOR EACH ROWBEGIN IF ADD_MONTHS( ...

  2. [Leetcode][JAVA] Recover Binary Search Tree (Morris Inorder Traversal)

    Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...

  3. 模态窗口用webdriver定位不到,可用java+sikuli实现

    一.安装sikuli(参见:http://lijunwei1228ok.blog.163.com/blog/static/97383797201311279595821/) 1.官网:http://w ...

  4. linux配置本地源

    yum本地源配置 标签: centosplugins网络file虚拟机linux 2011-10-09 21:40 12093人阅读 评论(1) 收藏 举报  分类: linux yum 在网上找了很 ...

  5. linux-9基本命令之-wget

    1.wget 命令用于下载网络文件,格式:"wget[参数] 下载地址" wget 参数 -b 后台下载模式 -O 下载到指定的目录 -t 最大尝试次数 -p 下载页面内所有的资源 ...

  6. Version history of VC++, MFC and ATL

    I have tried to assemble together information about the Visual C++ releases, the compiler and the fr ...

  7. ASP.NET连接远程Oracle数据库,提示试图加载格式不正确的程序

    VS调试远程连接Oracle数据库,一直报错 由于本地计算机是64位的操作系统,而且也确定安装的Oracle客户端是64位的 ,但是一直提示这个错误. 试了很多方法,终于发现可能是 不能在VS中调试的 ...

  8. Restful.Data v2.0发布,谢谢你们的支持和鼓励

    v1.0发布后,承蒙各位博友们的热心关注,也给我不少意见和建议,在此我真诚的感谢 @冰麟轻武 等朋友,你们的支持和鼓励,是这个开源项目最大的推动力. v2.0在除了细枝末节外,在功能上主要做了一下更新 ...

  9. 循序渐进做项目系列(1):最简单的C/S程序——让服务器来做加法

    (本文是专门针对未接触过C/S开发的初学者而写的,C/S开发高手请自动忽略啊~~) 还在写“Hello world!”式的单机程序吗?还在各种拖控件吗?是否自己都觉得有点low呢?来个质的飞跃吧!看看 ...

  10. RCP:美化基于eclipse3.7.2的RCP界面

    从e4开始,eclipse rcp界面具备了深度自定义的能力. 但是在eclipse3.7.2上,几乎没有提供能够用于修改界面的外部接口. 这里介绍一种方式来自定义你自己的eclipse rcp. 先 ...