MVC:

模型(model)-视图(view)-控制器(Controller)

1.model : 处理数据逻辑部分,对数据库进行操作,业务逻辑
2.view : 数据显示部分,用户操作
3.controller : 从视图层读取数据,通过模型层完成操作
4.MVC最初应用于桌面程序中,M指数据模型,V指用户界面,C指控制器
5.MVC设计模式 -好处: MVC模式不仅实现了功能模块和显示模块的分离 ,同时它还提高了应用系统的 ,可维护性 ,可扩展性 ,可移植性 ,组件的可复用性
第一步:先在WEB-INF/template建立三个jsp包

login是显示用户登陆验证码页面
fail是错误跳转页面
main是登陆成功页面
第二步:在java目录下LoginController包编辑java代码,实现用户需求

代码为:
package cn.edu.mju.project2.comtroller;import cn.edu.mju.project2.utils.StrUtil;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;@WebServlet("/login")public class LoginController extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String msg = req.getParameter("msg");if (msg == null) {msg = " ";} else {msg = URLDecoder.decode(msg, "UTF-8");//处理乱码}req.setAttribute("msg", msg);req.getRequestDispatcher("/WEB-INF/template/login.jsp").forward(req, resp);//转发对象}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String loginName = req.getParameter("loginName");String loginPwd = req.getParameter("loginPwd");String validCode = req.getParameter("validCode");ServletContext application = this.getServletContext();application.setAttribute("c", 1);String saveCode = (String) req.getSession().getAttribute("code");//登陆名称是你的学号,密码是1234,那么显示下面的内容,否则显示账户或密码错误String msg = null;if (StrUtil.isBank(validCode)) {resp.sendRedirect("/login?msg=" + URLEncoder.encode("请输入校验码","UTF-8"));} else {if (validCode.equals(saveCode)) {if ("5197101214".equals(loginName) && "1234".equals(loginPwd)) {req.getSession().setAttribute("name", loginName);resp.sendRedirect("main");
//} else {loginFail(req,resp,"账号或密码错误");}} else {loginFail(req,resp,"验证码错误");}}}private void loginFail(HttpServletRequest req, HttpServletResponse resp,String str) throws ServletException, IOException {req.setAttribute("msg",str);req.getRequestDispatcher("/WEB-INF/template/fail.jsp").forward(req,resp);}}
第三步:编写三个jsp包的代码
login.jsp代码为:
<%@ page contentType="text/html;charset=UTF-8" errorPage="../../erroPage.jsp" language="java" %>
<html>
<head><meta charset="UTF-8"><title>测试页面</title>
</head>
<body>
<%=request.getAttribute("msg")%>
<form action="./login" name="login" method="post">登陆名称:<input type="text" name="loginName"><br>登陆密码:<input type="passwoed" name="loginPwd"><br>验证码:<input type="text" name="validCode"><img src=./captche width='100' height='60'><br><input type="submit" value="登陆"><input type="submit" value="取消">
</form>
</body>
</html>
fail.jsp代码为:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
登陆失败,原因是 <%=request.getAttribute("msg")%>,请<a href="login">重新登陆</a>>
</body>
</html>
main.jsp代码为:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
这是我们的主界面,您好:<%=session.getAttribute("name")%>
</body>
</html>
第四步:用户测试

用户名密码输入错误时:

验证码输入错误时:

登陆成功时:

总结:

MVC的目标是让系统开发易于分工,代码可读性强好维护,后续开发容易跟进等等。可能代码分离和开发分工,造成题主会有前后端分离的感觉,但是大多数MVC还是开发模式,并不是现在普通意义的前后端分离模式。

使用MVC模式设计用户验证码登陆界面相关推荐

  1. jsp的MVC模式设计用户登陆注册

    jsp的MVC模式设计用户登陆注册 用户登陆功能 1.实验内容 2.实验步骤 3.实验结果 4.实验分析 用户登陆功能 通过设计用户的登陆和注册,来学习jsp的MVC模式,熟练掌握MVC模式各部分的内 ...

  2. Java面向对象和MVC模式设计练习——快递管理系统

    快递管理系统 一.任务概述 二.MVC设计模式 1.定义 2.优点 a.低耦合 b.复用性强 三.思路梳理 1.MVC架构设计 a.Controller b.Model c.View 2.流程控制 3 ...

  3. 数据库课程设计——1、登陆界面

    关于我用androidstudio去完成我的数据库课程设计 题目:<健康管理系统> 语言:kotlin 数据库:sqlite 1.登陆界面: 用了一个线性布局,去写的登陆界面 <?x ...

  4. javaee实验:使用mvc模式 设计一个图书管理系统

    太多了把报告粘贴过来了,仅供参考 实习三 EL.JSTL及MVC 一.实习要求与目的 1.掌握标签库的使用 2.掌握EL及JSTL常用标签及方法 3.掌握MVC的编程模式,完成一个完整的信息管理系统 ...

  5. 简单的系统登录设计思路【登陆界面设计】

    一.系统权限方案 方案一: 分别设计管理员界面和普通用户界面,对应的登录跳转 方案二: 隐藏管理按钮,,,没有具体方案 二.注册页面 (1)登录跳转, (2)两次输入,确认密码 (3)sql防注入问题 ...

  6. 基于MVC模式的用户登录

    第1关:编写用户登录页面. 本关我们要实现的是登陆功能的第一步:编写登陆表单,在jsp中编写表单,设置用户名字段userName和用户密码字段password,并设置请求的servlet路径为logi ...

  7. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    基于Servlet+JSP+JavaBean开发模式的用户登录注册 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复 ...

  8. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  9. javaweb学习总结(二十二):基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

最新文章

  1. 鸟哥的Linux私房菜(服务器)- 第五章、 Linux 常用网络指令
  2. java如何解决高并发问题_java怎么处理高并发?
  3. 高等数学上-赵立军-北京大学出版社-题解-练习5.2
  4. java 栈和队列实现迷宫代码_Python 实现数据结构中的的栈,队列
  5. 通俗易懂的来理解Iaas,Paas,SaaS
  6. 二叉搜索树的2层结点统计_植树节,程序猿种的那些树
  7. qt 二次开发 研华daq_研华DAQ数据采集卡编程
  8. Script:查找表或索引增长的历史信息
  9. 手机号码正则 中文姓名正则
  10. Asp.Net MVC4入门指南(8):给数据模型添加校验器
  11. 给文字添加超链接,没有你想的那么难
  12. 未root的情况下获取墨墨背单词的databases文件夹
  13. python实现杨辉三角的规律_Python实现杨辉三角算法
  14. iacr crypto 级别_缠论走势终完美:任何级别的所有走势,都能分解成盘整与趋势两种,而趋势又分上涨与下跌两种...
  15. 飞行CSS3导航菜单
  16. 36线性映射03——线性空间的同构、同构的性质、线性同构
  17. 国内一些期刊的搞笑审稿
  18. Linux下使用RTX腾讯通
  19. 北交大计算机电子信息,北京交通大学电子信息工程学院
  20. 阿里云企业网站备案授权书详细情况汇总 帮助企业快速通过网站备案

热门文章

  1. VMware安装win10反复出现 BootManager,vmware无法安装win10,无法引导
  2. 火鸟字幕合并器开源了,大家去参与开发和下载代码吧
  3. 迅雷与迅雷看看播放器使用体验(一)
  4. 各种疑似DGA域名大全
  5. 用C++模板来展示new与delete操作符原理
  6. javaweb项目网页自动刷新
  7. 关于thinkpad t400 安装Ubuntu 12.04 后的几个问题
  8. Java学习之路(书籍推荐)
  9. linux挂载光盘的命令,Linux系统下挂载光盘的教程
  10. 修复Windows下有线无线网络掉线问题的解决方案