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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值