JFkh

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

从零开始,制作简易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);
    }
    
}

 

 转载请注明出处:http://www.cnblogs.com/stefankeep/

posted on 2016-11-14 16:31  JFkh  阅读(312)  评论(0)    收藏  举报