从零开始,制作简易MVC(三)Servlet控制层
目的:
用控制层接受视图层返回的信息,按照request执行dao层,然后通过控制层返回信息给视图层
代码:
展示数据,将dao层中arraylist通过控制层拿出来
1 import java.io.IOException; 2 import javax.servlet.ServletException; 3 import javax.servlet.http.HttpServlet; 4 import javax.servlet.http.HttpServletRequest; 5 import javax.servlet.http.HttpServletResponse; 6 7 import mysql.Test3Model; 8 import mysql.Test3Dao; 9 10 11 /* 12 * author:lihao 13 * 14 * date:20161101 15 * 16 * idea:要完成一个完整的带视图的增删改查,这一层为控制层使用servlet,这是一个显示数据的servlet 17 * 18 * */ 19 public class Test3 extends HttpServlet{ 20 private static final long serialVersionUID = 1L; 21 22 public void doGet(HttpServletRequest request, HttpServletResponse response) 23 throws ServletException, IOException { 24 25 doPost(request,response); 26 } 27 public void doPost(HttpServletRequest request, HttpServletResponse response) 28 throws ServletException, IOException { 29 30 response.setContentType("text/html"); 31 request.setCharacterEncoding("utf-8"); 32 response.setCharacterEncoding("utf-8"); 33 //获取用户ID 34 String sid = request.getParameter("id"); 35 int id =Integer.parseInt(sid); 36 String sql ="select * from first where id=?"; 37 Test3Dao d = new Test3Dao(); 38 Test3Model m = d.getSearchById(sql, id); 39 request.setAttribute("id",m.getId()); 40 request.setAttribute("name",m.getName()); 41 request.setAttribute("perno",m.getPerno()); 42 String nation=""; 43 String nation1=""; 44 String nation2=""; 45 if(m.getNation()!=null) 46 { 47 nation = m.getNation().trim(); 48 if(nation.equals("汉")) 49 { 50 nation1 ="checked"; 51 } 52 else 53 { 54 nation2 ="checked"; 55 } 56 } 57 request.setAttribute("nation1",nation1); 58 request.setAttribute("nation2",nation2); 59 60 request.setAttribute("phone",m.getPhone()); 61 62 request.getRequestDispatcher("test3Updata.jsp").forward(request, response); 63 } 64 }
删除数据
1 import java.io.IOException; 2 import javax.servlet.ServletException; 3 import javax.servlet.http.HttpServlet; 4 import javax.servlet.http.HttpServletRequest; 5 import javax.servlet.http.HttpServletResponse; 6 7 import mysql.Test3Dao; 8 9 /* 10 * author:lihao 11 * 12 * date:20161101 13 * 14 * */ 15 16 public class Test3Delete extends HttpServlet { 17 18 private static final long serialVersionUID = 1L; 19 20 21 public void doGet(HttpServletRequest request, HttpServletResponse response) 22 throws ServletException, IOException { 23 response.setContentType("text/html"); 24 doPost(request,response); 25 } 26 public void doPost(HttpServletRequest request, HttpServletResponse response) 27 throws ServletException, IOException { 28 29 response.setContentType("text/html"); 30 31 //获取超链接传来的数据,因为从页面返回的是字符串 所以要将字符串变成int模式 32 String sId = request.getParameter("id"); 33 int id =Integer.parseInt(sId); 34 35 36 //调用模型层删除方法 37 String sql = "delete from first where id=?"; 38 Test3Dao d = new Test3Dao(); 39 int count = d.getDel(sql, id); 40 String url=""; 41 if(count>0) 42 { 43 url="test3.jsp"; 44 } 45 else 46 { 47 url ="test3Error.jsp"; 48 request.setAttribute("error", "删除"); 49 } 50 //转发 51 // request.getRequestDispatcher(url).forward(request, response); 52 response.sendRedirect(request.getContextPath() + "/"+url); 53 } 54 }
修改数据
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import mysql.Test3Dao; import mysql.Test3Model; public class Test3Updated extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //获得前台表单信息 String sid = request.getParameter("id"); int id =Integer.parseInt(sid); String name =request.getParameter("name"); String perno =request.getParameter("perno"); String nation =request.getParameter("nation"); String phone = request.getParameter("phone"); //封装到JavaBean对象中去 Test3Model m = new Test3Model(); m.setId(id); m.setName(name); m.setPerno(perno); m.setNation(nation); m.setPhone(phone); String sql ="update first set name=?,perno=?,nation=?,phone=? where id=?"; Test3Dao d = new Test3Dao(); int count = d.getUpdata(sql,m); String url=""; if(count>0) { url="test3.jsp"; } else { url ="test3Error.jsp"; request.setAttribute("error", "修改"); } request.getRequestDispatcher(url).forward(request, response);//forword跳转语句 } }
增加数据
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import mysql.Test3Dao; import mysql.Test3Model; public class Test3Insert extends HttpServlet{ private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //获取前台页面数据 String name = request.getParameter("name"); String perno = request.getParameter("perno"); String nation = request.getParameter("nation"); String phone = request.getParameter("phone"); //封装到JavaBean对象中去 Test3Model m = new Test3Model(); m.setName(name); m.setPerno(perno); m.setNation(nation); m.setPhone(phone); //调用模型层 String sql = "insert into first(name,perno,nation,phone) values(?,?,?,?)"; Test3Dao d = new Test3Dao(); int count = d.getInsert(sql,m); String url=""; if(count>0) { url="test3.jsp"; } else { url ="test3error.jsp"; request.setAttribute("error", "插入"); } //转发ת request.getRequestDispatcher(url).forward(request, response); } }
用控制层接受视图层返回的信息,按照request执行dao层,然后通过控制层返回信息给视图层
浙公网安备 33010602011771号