国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

web開發模式

ztyzz / 787人閱讀

摘要:顯示層控制層數據層統一交給或者處理處理流程客戶端發送到執行讀取返回返回給在返回給在給客戶端問題代碼雜亂即方式客戶端發送到然后執行用于讀取控制器獲取到讀取的數據以后再次返回給生成文件給客戶端分為顯示層控制層模型層屬于提供的分布式組件服務分

Model1

顯示層,控制層,數據層,統一交給jsp或者javabean處理.

處理流程

客戶端發送request 到 jsp jsp 執行javabean javabean讀取databases

返回 databases 返回給javabean 在返回給jsp 在response 給客戶端

問題

代碼雜亂
即 jsp + dao 方式

model - view - controller

客戶端發送request 到servlet 然后servlet 執行javabean javabean用于讀取databases 控制器,獲取到javabean讀取的數據以后,再次返回給jsp,jso生成html文件,response 給客戶端
分為 顯示層 控制層 模型層

EJB 屬于SUN提供的分布式組件服務 分為會話bean 實體bean 消息驅動bean
實栗

一個登錄程序
用戶提交登錄信息,發送給servlet servlet數據驗證失敗將會返回給登錄頁,同時servlet將會調用數據層操作dao,dao到數據庫databases進行驗證,結果返回給servlet 然后返回兩個結果,登錄成功,登錄失敗.

代碼如下 創建數據庫
no 列名稱 描述
1 userid 保存用戶的登錄id
2 name 用戶真實姓名
3 password 用戶密碼
目錄結構如下

![](https://melovemingming-125387...
)

jdbc層
package com.ming.dbc;

import java.sql.Connection;
import java.sql.DriverManager;

public class DatabaseConnection {
    private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    private static final String DBURL = "jdbc:mysql://47.94.95.84:32786/test";
    private static final String DBUSER = "test";
    private static final String DBPASSWORD = "ABCcba20170607";
    private Connection connection = null;
    // 連接數據庫
    public DatabaseConnection() throws Exception{
        try{
            Class.forName(DBDRIVER);
            connection = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
        }catch (Exception e){
            throw e;
        }
    }
    // 獲得數據庫連接
    public Connection getConnection(){
        return this.connection;
    }
    // 數據庫關閉
    public void close() throws Exception{
        if(this.connection != null){
            try{
                this.connection.close();
            }catch (Exception e){
                throw  e;
            }
        }
    }
}
dao層 定義接口
package com.ming.dao;

import com.ming.vo.User;

public interface IUserDAO {
    /**
     * 用戶登錄驗證
     * @param user 傳入VO對象
     * @return 驗證操作結果
     * @throws Exception 拋出錯誤
     */
    public boolean findLogin(User user) throws Exception;
}
實現類
package com.ming.dao;

import com.ming.vo.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class UserDAOImpl implements IUserDAO {
    // 數據庫連接對象
    private Connection connection = null;
    // 操作對象
    private PreparedStatement preparedStatement = null;
    // 數據庫連接
    public UserDAOImpl(Connection _connection){
        this.connection = _connection;
    }
    /**
     * 用戶登錄驗證
     *
     * @param user 傳入VO對象
     * @return 驗證操作結果
     * @throws Exception 拋出錯誤
     */
    @Override
    public boolean findLogin(User user) throws Exception {
        boolean flag = false;
        try{
            String sql = "SELECT name FROM user WHERE userid = ? AND password = ?";
            // 獲得實例化對象
            this.preparedStatement = this.connection.prepareStatement(sql);
            // 設置id
            this.preparedStatement.setString(1, user.getUserid());
            this.preparedStatement.setString(2, user.getPassword());
            ResultSet resultset = this.preparedStatement.executeQuery();
            if(resultset.next()){
                user.setName(resultset.getString(1));
                flag = true;
            }
        }catch (Exception e){
            throw  e;
        }finally {
            if(this.preparedStatement != null){
                try{
                    this.preparedStatement.close();
                }catch (Exception e){
                    throw  e;
                }
            }
        }
        return flag;
    }
}
代理類
package com.ming.dao;

import com.ming.dbc.DatabaseConnection;
import com.ming.vo.User;

public class UserDAOProxy implements IUserDAO {
    private DatabaseConnection databaseConnection = null;
    private IUserDAO dao = null;
    public UserDAOProxy(){
        try{
            this.databaseConnection = new DatabaseConnection();
        }catch (Exception e){
            e.printStackTrace();
        }
        this.dao = new UserDAOImpl(this.databaseConnection.getConnection());
    }
    /**
     * 用戶登錄驗證
     *
     * @param user 傳入VO對象
     * @return 驗證操作結果
     * @throws Exception 拋出錯誤
     */
    @Override
    public boolean findLogin(User user) throws Exception {
        boolean flag = false;
        try{
            flag = this.dao.findLogin(user);
        }catch (Exception e){
            throw  e;
        }finally {
            this.databaseConnection.close();
        }
        return flag;
    }
}
定義代理工廠
package com.ming.factory;

import com.ming.dao.IUserDAO;
import com.ming.dao.UserDAOProxy;

public class DAOFactory {
    public static IUserDAO getIuserDAOInstance(){
        return new UserDAOProxy();
    }
}
實體關系映射
package com.ming.vo;

// 對user表進行映射
public class User {
    private String userid;
    private String name;
    private String password;

    public String getUserid() {
        return userid;
    }

    public String getName() {
        return name;
    }

    public String getPassword() {
        return password;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
視圖層
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %><%--
  Created by IntelliJ IDEA.
  User: ming
  Date: 19-3-16
  Time: 下午11:07
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


用戶登錄程序

<% List info = (List)request.getAttribute("info"); if(info != null){ Iterator iterator = info.iterator(); while(iterator.hasNext()){ %>

<%=iterator.next()%>

<% } } %>
用戶id 密碼
配置文件



  Archetype Created Web Application
    
        login
        com.ming.servlrt.LoginServlet
    
    
        login
        /loginServlet
    

mvc運行流程

表單提交到servlet,servlet調用dao進行表單驗證,然后dao連接數據庫進行驗證,驗證結果返回給業務層,即servlet,在業務層servlet中獲取info等日志信息,然后服務器端跳轉到運行結果頁面即view層.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73749.html

相關文章

  • 新一代的Hybrid框架kerkee

    摘要:基于此,一種新一開發模式誕生了框架是市面上獨一無二的多主體共存的靈活混合型開發模型。在這個時候,框架將會為他們帶來便利。規范化框架符合標準,重新實現了等特性。開發者只需要把對應的類注冊到中即可,代碼量不超過行便可使用框架 kerkee showImg(https://segmentfault.com/img/remote/1460000006785286); kerkee框架的誕生...

    MageekChiu 評論0 收藏0
  • 新一代的Hybrid框架kerkee

    摘要:基于此,一種新一開發模式誕生了框架是市面上獨一無二的多主體共存的靈活混合型開發模型。在這個時候,框架將會為他們帶來便利。規范化框架符合標準,重新實現了等特性。開發者只需要把對應的類注冊到中即可,代碼量不超過行便可使用框架 kerkee showImg(https://segmentfault.com/img/remote/1460000006785286); kerkee框架的誕生...

    Near_Li 評論0 收藏0
  • 大前端2018現在上車還還得及么

    摘要:面向對象三大特征繼承性多態性封裝性接口。第五階段封裝一個屬于自己的框架框架封裝基礎事件流冒泡捕獲事件對象事件框架選擇框架。核心模塊和對象全局對象,,,事件驅動,事件發射器加密解密,路徑操作,序列化和反序列化文件流操作服務端與客戶端。 第一階段: HTML+CSS:HTML進階、CSS進階、div+css布局、HTML+css整站開發、 JavaScript基礎:Js基礎教程、js內置對...

    stormgens 評論0 收藏0
  • 大前端2018現在上車還還得及么

    摘要:面向對象三大特征繼承性多態性封裝性接口。第五階段封裝一個屬于自己的框架框架封裝基礎事件流冒泡捕獲事件對象事件框架選擇框架。核心模塊和對象全局對象,,,事件驅動,事件發射器加密解密,路徑操作,序列化和反序列化文件流操作服務端與客戶端。 第一階段: HTML+CSS:HTML進階、CSS進階、div+css布局、HTML+css整站開發、 JavaScript基礎:Js基礎教程、js內置對...

    mylxsw 評論0 收藏0

發表評論

0條評論

ztyzz

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<