java--MVC框架結構

JSP+JavaBean的形式是SUN公司提供的一種簡單開發模型,經常用於項目中某個較小的功能。
爲了應付更復雜的應用系統,SUN公司推出了另一種開發模型即:JSP+JavaBean+Servlet。
MVC – 是指Model(即模型如JavaBean)、View(視圖如JSP,只提供展示)、Control(控制層由Servlet擔當).
在實際的開中,用的都是這種開發模式。甚至大家以後學習的webwork、jsf、struts,spring等都是MVC框架。(當然Spring擁有更多的功能)。
三層框架:表現層–>業務邏輯層–>數據層
Servlet+JSP+JavaBean的編程模型
這裏寫圖片描述
MVC框架—-jsp中的model2
        M:model,JavaBean–封裝信息,包名一般爲cn.hncu.domain
        V:view,jsp頁面(html也可)–面向用戶,顯示信息並提交用戶信息
        C:controller,用servlet實現–信息收集,並用JavaBean封裝,調用service層實現相應的業務邏輯功能,再根據返回結果導向不同的結果頁面(jsp(html)頁面)
代碼演示:
這裏寫圖片描述
主頁面
這裏寫圖片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MVC框架演示1版本</title>
  </head>

  <body>
    <h2>MVC登錄頁面</h2>
    <form action="<%=request.getContextPath()%>/userServlet" method="post">
        姓名:<input type="text" name="name"><br/>
        密碼:<input type="password" name="pwd"><br/>
        <input type="submit" value="登錄"><br/>
    </form>

  </body>
</html>

Controller層

package cn.hncu.user.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.hncu.domain.User;
import cn.hncu.user.service.UserService;

public class UserServlet extends HttpServlet {

    //注入
    UserService us=new UserService();
    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");
        //收集參數
        String name=request.getParameter("name");
        String pwd=request.getParameter("pwd");
        //組織參數--封裝成對象
        User u=new User(name, pwd);//規範:先new空的User對象,在數據校驗後,再調用相應的set函數

        //調用service
        u=us.login(u);
        //根據返回結果導向不同結果頁面
        if(u!=null){
            request.getSession().setAttribute("user", u);
            //成功往session中存放登錄成功信息,導向成功頁面
            response.sendRedirect(request.getContextPath()+"/jsps/wel.jsp");
        }else{
            //1.地址欄不顯示index.jsp
//          response.sendRedirect(request.getContextPath());//返回主頁面
            //2.地址欄顯示index.jsp
            response.sendRedirect(request.getContextPath()+"/index.jsp");//返回主頁面
        }
    }

}

Model層

package cn.hncu.domain;

public class User {

    private String id;
    private String name;
    private String pwd;
    public User(){

    }
    public User(String name,String pwd){
        this.name=name;
        this.pwd=pwd;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
    }


}

service層:

package cn.hncu.user.service;

import cn.hncu.domain.User;
import cn.hncu.user.dao.UserDao;

//規範:service和dao都要寫成接口+實現類的方式開發
public class UserService {

    //注入:
    UserDao dao=new UserDao();

    public User login(User user){
        //真正的項目這裏需要進行業務邏輯處理
        return dao.login(user);
    }
}

dao層:

package cn.hncu.user.dao;

import java.util.UUID;

import cn.hncu.domain.User;

//規範:service和dao都要寫成接口+實現類的方式開發
public class UserDao {

    //模擬Dao--真實項目在這裏訪問數據庫且需要一個實現類,這裏簡化了
    public User login(User user){

        user.setId(UUID.randomUUID().toString().replace("-", ""));
        System.out.println(user);
        System.out.println("--到dao層一遊");
        if(user.getName().startsWith("hncu")){//如果登陸以hncu開頭設置登錄不成功,返回null
            return null;
        }
        return user;
    }
}

導向結果頁面
這裏寫圖片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MVC框架演示1版本</title>
  </head>

  <body>
    <h2>歡迎頁面</h2>
    <%=session.getAttribute("user") %><br/><br/>


    歡迎你,${user.name }<br/>
    你的密碼是:${user.pwd }<br/>

  </body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章