国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP網站開發基礎總結《六》

2019-11-14 23:21:35
字體:
來源:轉載
供稿:網友
jsp網站開發基礎總結《六》

  對于本篇需要總結的內容,量估計有點大,大家好好看哈,絕對全是干貨,代碼的已經運行測試,不存在問題,大家可以參考學習,下面開始本篇的內容。

 1、添加數據到數據庫

  如何用戶在JSP頁面的填寫的信息輸入到MySQL數據庫呢?其實原理很簡單,就是我們在JSP頁面里添加一個form表單標簽,需要注意的是這里的action值填我們的用于與數據庫庫交互的select的地址,method標簽有兩個值可選:get和post,get方式的數據傳輸,不安全,傳輸的數據在地址欄可以看到,而post方式的傳輸就相對安全些,用戶填寫的數據不會顯式讓用戶看到。設置好form表單標簽后,當用戶填寫完表達后,點擊提交,用戶的填寫的表單數據將會傳輸給我們的select,這樣我們的select獲得到數據后,通過調用我們之前編輯好的添加數據方法,便可以把用戶的填寫的數據添加到數據庫。

  jsp頁面代碼:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="error.html"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>添加數據</title>        <meta http-equiv="Words" content="添加數據">    <meta http-equiv="descr

  對于的select:

package com.mysql.jsp.select;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.mysql.jsp.manager.ManagerMaImp;import com.mysql.jsp.sever.StudentMaImp;import com.mysql.jsp.student.Student;public class add extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);//調用doPsot()方法,把使用get方式傳輸的數據用doPost()方向接收    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        request.setCharacterEncoding("utf-8");//設置編碼方式        response.setCharacterEncoding("utf-8");//設置編碼方式                //這里使用了一個登錄驗證        String manager_name = (String)request.getsession().getAttribute("name");//獲得登錄用戶的用戶名        String manager_password = (String)request.getSession().getAttribute("password");//獲得登錄用戶的密碼        ManagerMaImp mmi = new ManagerMaImp();        boolean login = mmi.getByName(manager_name, manager_password);//驗證是否正確        if(!login){            request.setAttribute("news", "您還未登錄,請先登錄再進行操作");            request.getRequestDispatcher("Login.jsp").forward(request, response);//不正確跳轉到登錄頁        }else{            String name = request.getParameter("name");//獲得用戶填寫的姓名            String sex_ = request.getParameter("sex");//獲得用戶選擇的性別            int sex = 1;            if(sex_.equals("女")){                sex = 0;            }            int year = Integer.parseInt(request.getParameter("year"));//獲得用戶填寫的年齡信息            String from = request.getParameter("from");//獲得用戶填寫的故鄉信息            String school = request.getParameter("school");//獲得用戶填寫的學校信息            //生成一個學生對象            Student student = new Student();            student.setName(name);            student.setSex(sex);            student.setYear(year);            student.setFrom(from);            student.setSchool(school);            StudentMaImp smi = new StudentMaImp();            boolean flag = smi.add(student);//調用添加方法,將數據添加到數據庫            if(flag){                List<Student> list = new ArrayList<Student>();                list = smi.getAll();                request.setAttribute("list", list);                request.getRequestDispatcher("All.jsp").forward(request, response);                        }else{                response.sendRedirect("Add.jsp");            }        }    }}

  對于向數據庫添加信息,就為大家總結完畢,加上前幾篇,我想大家應該已經明白如何通過JSP來做動態網站了吧。對于這里提到的是否登錄驗證,下面單獨聊一下。

 3、登錄驗證:

  這個功能大家應該遇到過很多,一般當我們在一些網站下載資料時,會有一個會員是否登錄驗證,只有你登錄了才能下載,這個小功能很簡單,但比較實用。下面我們就一起學習一下,這里用到了一個關鍵字:session,我們只需要在用戶登錄成功后,將用戶的賬戶和密碼通過requset方式進行一下聲明,之后我們就可以在任何頁面或select中得到。

  聲明代碼:

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

  調用代碼:

String manager_name = (String)request.getSession().getAttribute("name");//獲得登錄用戶的用戶名        String manager_password = (String)request.getSession().getAttribute("password");//獲得登錄用戶的密碼

 4、遍歷數據庫:

  添加數據我們已經學會了,下面我們一起學一下,如何把數據庫中的所有數據遍歷后,通過JSP頁面為用戶顯示出來。

  后臺select代碼:

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

  JSP頁面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.html"%><%@page import="com.mysql.jsp.student.Student"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>遍歷數據庫</title>        <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">  </head>    <body>  <% List<Student> list = (List<Student>)request.getAttribute("list"); %>    <center>        <h1>遍歷數據庫中的數據</h1>        <hr/>        <form action="get" method="post">            <table width="80%">                <tr>                    <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>                </tr>            </table>        </form>        <table border="1" width="80%">            <TR>                <TD>ID</TD><td>姓名</td><td>性別</td><td>年齡</td><td>家鄉</td><td>學校</td><td colspan="2">操作</td>            </TR>            <%                if(list.size()!=0){                    for(int i=0; i<list.size(); i++){                        Student student = list.get(i);            %>                    <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>            <%                    }                }             %>        </table>    </center>  </body></html>

  界面效果:

  

 5、刪除數據:

  既然是刪除操作,也就沒有界面了,但我們點擊刪除后,select接到我們發送過去的數據信息,根據這些信息調用我們之前寫好的刪除方法,完成刪除操作。

  select代碼:

public class del extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);//刪除操作,發送數據的方式便是get方式,我們可以在地址欄看到我們發送過來的數據信息    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        request.setCharacterEncoding("utf-8");        response.setCharacterEncoding("utf-8");        String manager_name = (String)request.getSession().getAttribute("name");        String manager_password = (String)request.getSession().getAttribute("password");        ManagerMaImp mmi = new ManagerMaImp();        boolean login = mmi.getByName(manager_name, manager_password);        if(!login){            request.setAttribute("news", "您還未登錄,請先登錄再進行操作");            request.getRequestDispatcher("Login.jsp").forward(request, response);        }else{            int id = Integer.parseInt(request.getParameter("id"));            StudentMaImp smi = new StudentMaImp();            boolean flag = smi.del(id);            if(flag){                List<Student> list = new ArrayList<Student>();                list = smi.getAll();                request.setAttribute("list", list);                request.getRequestDispatcher("All.jsp").forward(request, response);            }else{                response.sendRedirect("error.html");            }        }    }}

 6、更新操作:

  學完了添加、刪除、遍歷操作后,接下來我們一起來學習一下更新操作。

  更新操作的JSP頁面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="error.html"%><%@page import="com.mysql.jsp.student.Student"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>修改數據</title>        <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="修改數據">    <meta http-equiv="description" content="修改數據到數據庫">  </head>    <body>  <%Student student = (Student)request.getAttribute("student"); %>    <center>        <h1>修改數據到mysql數據庫</h1>        <hr/>        <form action="update" method="post" >            <table>                <tr>                    <!--  disabled="disabled":銷毀的,select無法得到它的值   -->                    <!--  readonly="readonly":只讀的,select可以讀出值  -->                    <td>id:</td><td><input type="text" name="id" readonly="readonly" value="<%=student.getId() %>" /></td>                </tr>                <tr>                    <td>姓名:</td><td><input type="text" name="name" value="<%=student.getName() %>"/></td>                </tr>                <tr>                    <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>                </tr>                <tr>                    <td>年齡:</td><td><input type="text" name="year" value="<%=student.getYear() %>"/></td>                </tr>                <tr>                    <td>家鄉:</td><td><input type="text" name="from" value="<%=student.getFrom() %>"/></td>                </tr>                <tr>                    <td>學校:</td><td><input type="text" name="school" value="<%=student.getSchool() %>"/></td>                </tr>                <tr>                    <td align="center"><input type="submit" value="更新" /></td><td align="center"><input type="reset" value="重置"></td>                </tr>            </table>        </form>    </center>  </body></html>

  既然是更新,我們需要首先通過select獲得需要更新信息的對象,然后將對象數據發送給JSP頁面,代碼:

public class come extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        StudentMaImp smi = new StudentMaImp();        List<Student> list = new ArrayList<Student>();        list = smi.getAll();        request.setAttribute("list", list);        request.getRequestDispatcher("All.jsp").forward(request, response);    }}

  用戶接收用戶修改的數據,并進行數據更新的select:

public class update extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        request.setCharacterEncoding("utf-8");        response.setCharacterEncoding("utf-8");        String manager_name = (String)request.getSession().getAttribute("name");        String manager_password = (String)request.getSession().getAttribute("password");        ManagerMaImp mmi = new ManagerMaImp();        boolean login = mmi.getByName(manager_name, manager_password);        if(!login){            request.setAttribute("news", "您還未登錄,請先登錄再進行操作");            request.getRequestDispatcher("Login.jsp").forward(request, response);        }else{            int id = Integer.parseInt(request.getParameter("id"));            String name = request.getParameter("name");            String sex_ = request.getParameter("sex");            int sex = 1;            if(sex_.equals("女")){                sex = 0;            }            int year = Integer.parseInt(request.getParameter("year"));            String from = request.getParameter("from");            String school = request.getParameter("school");            Student student = new Student();            student.setId(id);            student.setName(name);            student.setSex(sex);            student.setYear(year);            student.setFrom(from);            student.setSchool(school);            StudentMaImp smi = new StudentMaImp();            boolean flag = smi.update(student);            if(flag){                List<Student> list = new ArrayList<Student>();                list = smi.getAll();                request.setAttribute("list", list);                request.getRequestDispatcher("All.jsp").forward(request, response);            }else{                response.sendRedirect("error.html");            }        }    }}

  好了,到這里對于通過JSP實現對數據庫的增、刪、改、遍歷操作,就為大家總結完畢。下一篇:JSP頁面精確搜索、模糊搜索


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐津县| 化隆| 望谟县| 涿州市| 安宁市| 南安市| 酒泉市| 高密市| 体育| 高碑店市| 泸定县| 甘泉县| 屏东县| 叶城县| 娱乐| 大厂| 涪陵区| 建瓯市| 中超| 安达市| 资溪县| 潞城市| 左贡县| 浦东新区| 班戈县| 桐城市| 上蔡县| 务川| 临汾市| 塔河县| 沽源县| 东辽县| 江川县| 古蔺县| 奉贤区| 抚州市| 武平县| 甘南县| 抚州市| 乌拉特前旗| 三原县|