MVC——入门+最简单的小实例

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controler)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法。

1.最上面直接面向用户的"视图层"(View)。它是提供给用户的操作界面。

2.最底层核心的"数据层"(Model),也就是程序需要操作的数据或信息。

3.中间层是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

MVC就像有点类似于食堂,可以分成三部分。一部分是仓库,负责提供蔬菜等原材料,这是"数据层"(Model);另一部分是卖饭窗口,这是它的"视图层"(View),负责销售饭菜;两者之间是通过厨师这个"控制层"(Controller)将原材料从“仓库”中取出,处理加工后放到“窗口”上卖。

下面就通过一个小例子进一步说明MVC的中三层的各自的作用以及交互。

1.新建mvc项目。

2.在Models文件夹下新建一个user类,用于模拟数据。

public class user
  {
    public string userName {get;set; }
    public string passWord{get;set;}

    public  override string ToString ()
    {
      return "userName="+this.userName+",passWord="+this.passWord;
    }
  }

3.在Controllers文件夹下新建一个控制器,用于从获取user.cs中数据,并将处理后数据传给Index.cshtml视图。

namespace MyMvcTest.Controllers
{
  public class MyUserController : Controller
  {
    //
    // GET: /MyUser/

    public List<Models.user> InitData()
    {
      List<Models.user> list = new List<Models.user>()
      {
        new Models.user(){userName="1",passWord="1"},
        new Models.user(){userName="2",passWord="2"},
        new Models.user(){userName="3",passWord="3"}
      };

      return list;
    }

    public ActionResult Index()
    {
      //创建一个StringBuilder
      System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);

      //初始化数据
      List<Models.user> list = InitData();

      //从list中获取数据并存入到sbHtml中
      list.ForEach(d =>
      {
        sbHtml.AppendLine("<div>"+d.ToString()+"</div>");
      });

      //利用ViewBag传输数据给同名的index.cshtml视图
      ViewBag.HtmlStr = sbHtml.ToString();  //ViewBag是一个dynamic类型集合,可以动态添加任意类型的任意名称的属性和值
      return View();
    }

  }
}

4.添加视图,用于将数据显示到Index.cshtml视图中。

@{
  Layout = null;
}

<!DOCTYPE html>

<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>Index</title>
</head>
<body>
  <div>
    @Html.Raw(ViewBag.HtmlStr)
  </div>
</body>
</html>

5.配置路由,设置新添加的视图为默认启动视图,在App_Start文件下找到RouteConfig.cs文件进行修改。

总结: View提供给操作界面, Model提供程序需要操作的数据或信息, Controller负责对数据加工并传入到到view中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单MVC 登录实例,使用 JSP、JavaBean 和 Servlet 实现用户登录验证: 1. 创建一个名为 User 的 JavaBean,包含用户的 id 和 password 属性,以及相应的 getter 和 setter 方法。 ```java public class User { private String id; private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` 2. 创建一个名为 LoginServlet 的 Servlet,处理用户登录请求。在 doPost() 方法中,从请求参数中获取用户输入的 id 和 password,然后调用一个名为 validate() 的方法来验证用户信息。validate() 方法将根据用户输入的 id 和 password 查询数据库,如果查询结果不为空,则表示用户信息验证成功,将用户信息存储到 session 中,并跳转到登录成功页面;否则,跳转回登录页面,并显示错误消息。 ```java public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = request.getParameter("id"); String password = request.getParameter("password"); User user = new User(); user.setId(id); user.setPassword(password); if (validate(user)) { HttpSession session = request.getSession(); session.setAttribute("user", user); response.sendRedirect("success.jsp"); } else { request.setAttribute("error", "Invalid id or password"); RequestDispatcher rd = request.getRequestDispatcher("login.jsp"); rd.forward(request, response); } } private boolean validate(User user) { String url = "jdbc:mysql://localhost:3306/mydb"; String username = "root"; String password = "root"; try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(url, username, password); PreparedStatement ps = con.prepareStatement("select * from users where id=? and password=?"); ps.setString(1, user.getId()); ps.setString(2, user.getPassword()); ResultSet rs = ps.executeQuery(); if (rs.next()) { return true; } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return false; } } ``` 3. 创建一个名为 login.jsp 的 JSP 页面,显示登录表单。如果用户输入了错误的 id 或 password,则显示错误消息。 ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Page</title> </head> <body> <form action="LoginServlet" method="post"> <input type="text" name="id" placeholder="id"><br> <input type="password" name="password" placeholder="password"><br> <input type="submit" value="Login"> </form> <br> <c:if test="${not empty error}"> <font color="red">${error}</font> </c:if> </body> </html> ``` 4. 创建一个名为 success.jsp 的 JSP 页面,显示登录成功页面。在页面中,通过 session 获取用户信息,并显示欢迎消息。 ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Success</title> </head> <body> <h1>Welcome, ${user.id}!</h1> </body> </html> ``` 以上就是一个简单MVC 登录实例的实现过程。需要注意的是,这只是一个入门级别的示例,实际开发中需要进行更多的安全性和可用性的考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值