javascript
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="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><center><h1>添加數據到mysql數據庫</h1><hr/><form action="add" method="post" id="form" name="form"><table><tr><td>姓名:</td><td><input type="text" name="name" /></td></tr><tr><td>性別:</td><td><input type="radio" name="sex" value="男" checked="checked">男<input type="radio" name="sex" value="女">女</td></tr><tr><td>年齡:</td><td><input type="text" name="year" /></td></tr><tr><td>家鄉(xiāng):</td><td><input type="text" name="from" /></td></tr><tr><td>學校:</td><td><input type="text" name="school" /></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:
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");//獲得用戶填寫的故鄉(xiāng)信息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來做動態(tài)網站了吧。對于這里提到的是否登錄驗證,下面單獨聊一下。
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> </td><td>精確查找:<input type="text" name="queding"/><%if(request.getAttribute("new1")!=null){ %><span style="color: red"><%=request.getAttribute("new1")%></span><% } %></td><td> </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>家鄉(xiāng)</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接到我們發(fā)送過去的數據信息,根據這些信息調用我們之前寫好的刪除方法,完成刪除操作。
select代碼:
public class del extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);//刪除操作,發(fā)送數據的方式便是get方式,我們可以在地址欄看到我們發(fā)送過來的數據信息 }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>家鄉(xiāng):</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獲得需要更新信息的對象,然后將對象數據發(fā)送給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頁面精確搜索、模糊搜索
總結
以上是生活随笔為你收集整理的JSP网站开发基础总结《六》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: websphere变成英文了
- 下一篇: MyBatis中的selectKey