MVC

1 MVC设计模式

MVC是一种分层的设计模式,本章节从Servlet和JSP的局限性谈起,慢慢引入MVC的概念。

MVC设计模式

M 代表 模型(Model
V 代表 视图(View) 
C 代表 控制器(controller

模型是什么呢? 模型就是数据,就是dao,bean
视图是什么呢? 就是网页, JSP,用来展示模型中的数据
控制器是什么? 控制器用来把不同的数据,显示在不同的视图上。 在这个例子的,Servlet就是充当控制器的角色,把Hero对象,显示在JSP上。
控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上。

2 用户是否登陆

比如网站提供Hero查询服务,但是前提是用户要登录过才能使用。 
如果用户登陆过了,访问listHero,就让用户正常访问,否则就跳转到登陆界面。 
这是非常常见的场景,通过使用 session 来实现这个功能。 
在处理登录的loginServlet 中使用将用户名保存在session中。 
HeroListServlet 中查看session中是否为空。如果为空,就表示用户没有登陆过,就跳转到登陆页面

在LoginServlet 把验证成功的用户加入到 Session

如果用户输入正确的账号密码,就跳转到 listHero,并且把用户名以"userName"放进session
如果用户输入错误的账号密码,就跳转到 login.html,让用户重新登陆

public class LoginServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void service(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

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

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

        if ("admin".equals(name) && "123".equals(password)) {

            request.getSession().setAttribute("userName", name);

            response.sendRedirect("listHero");

        } else {

            response.sendRedirect("login.html");

        }

    }

}

在HeroListServlet判断Session中是否有数据

String userName = (String) request.getSession().getAttribute("userName");

   if (null == userName) {

   response.sendRedirect("login.html");

   return;

}

从session中取出userName,如果是空,就表示用户没有登录,或者登录已经超过了30分钟。 客户端跳转到login.html,让用户重新登陆

3 CRUD

看代码MVC_CRUD地址:https://github.com/yuanruofei/MVC_CRUD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值