文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>JSP开发之MVC总结

JSP开发之MVC总结

时间:2010-06-02  来源:hkebao

JSP开发之MVC总结

时间:2010-6-2

我之前一直搞不明白JAVABEAN在MVC中到底充当一个什么角色。现在来看一个实例

定义一个JAVABEAN

package com.bean;

public class User {

    private String userName;

    private String userPwd;

    public String getUserName() {

        return userName;

    }

    public void setUserName(String userName) {

        this.userName = userName;

    }

    public String getUserPwd() {

        return userPwd;

    }

    public void setUserPwd(String userPwd) {

        this.userPwd = userPwd;

    }

}

JAVABEAN的作用:是一个PO对象之前我以为是VO对象。搞错了!

恩我们可以这样来理解JAVABEAN的作用其实就是用来传递数据的一个东西。在我们这次PHPCMS项目中相当于一个结果集的传输。控制器接收到一个来自M层的数据之后如何传递到视图层作渲染处理。可以依据这样的方式。

再来看我们的Action类

package com.dao;

import java.sql.*;

 

import com.bean.User;

public class DAO {

    Connection conn = null;

    Statement stmt = null;

    ResultSet rs = null;

    PreparedStatement pstmt = null;

    public DAO(){

        try {

            Class.forName("com.mysql.jdbc.Driver");

            conn = getConnection();

        } catch (ClassNotFoundException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

   

    public Connection getConnection(){

        String url = "jdbc:mysql://localhost:3306/person";

        String user = "root";

        String password = "123456";

       

        try {

            conn = DriverManager.getConnection(url, user, password);

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return conn;

    }

   

    public int addPerson(User user){

        int flag = 0;

        String sql = "insert into user(user_name,user_pwd) values(?,?)";

        try {

            pstmt = conn.prepareStatement(sql);

            pstmt.setString(1, user.getUserName());

            pstmt.setString(2, user.getUserPwd());

           

            flag = pstmt.executeUpdate();

           

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return flag;

    }

   

    public ResultSet showPerson(){

        String sql = "select * from user";

        try {

            pstmt = conn.prepareStatement(sql);

            rs = pstmt.executeQuery();

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return rs;

    }

    public void close(){

        try {

            if(rs!=null)rs.close();

            if(pstmt!=null)pstmt.close();

            if(conn!=null)conn.close();

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

}

这个类把数据库连接操作也放在这里了。其实是不正确的处理方式。正确的方式应当是将数据库层单独写到一个CLASS类里面去。但这里面我们来看一下:

public int addPerson(User user){

        int flag = 0;

        String sql = "insert into user(user_name,user_pwd) values(?,?)";

        try {

            pstmt = conn.prepareStatement(sql);

            pstmt.setString(1, user.getUserName());

            pstmt.setString(2, user.getUserPwd());

           

            flag = pstmt.executeUpdate();

           

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return flag;

    }

这个DAO对象它的作用是接收来自JAVABEAN层的数据。

再看是如何SET值到这个BEAN的

package com.servlet;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import com.bean.User;

import com.dao.DAO;

 

public class AddUser extends HttpServlet {

 

    public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        String userName = request.getParameter("userName");

        String userPwd = request.getParameter("userPwd");

        User user = new User();

        user.setUserName(userName);//依据的是SET与GET方式了吧!!!!

        user.setUserPwd(userPwd);

       

        DAO dao = new DAO();

        int flag = dao.addPerson(user); //将PO对象作为参数直接赋值即可

        dao.close();

        if(flag!=0){

            response.sendRedirect("../success.jsp");

        }

        else{

            response.sendRedirect("../fail.jsp");

        }

    }

 

    public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        doGet(request,response);

    }

 

}

这样的话我们可以拿JAVABEAN当数据存储之用的。这个本来就是JAVABEAN的角色。只是我以前没有认识而已。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载