1)如果严格按照MVC思想的话,浏览器首页访问的是控制器,然后再由控制器转发到视图
2)位于WEB-INF/目录下的资源,客户端无法直接访问,只能通过服务端转发进入
3)request对象也可用于资源的转发
request
.getRequestDispatcher("/WEB-INF/success.html")
.forward(request,response);
4)通过正则表达式验证中文:[\u4E00-\uFA29]+
5)对于重定向而言,前后的二个Request域对象不同,如果取值不到,返回"null",不会报错

java代码:

ModelBean

public class ModelBean {public boolean validate(String username){boolean flag = false;//username.matches("[a-zA-Z0-9]+")) 用户名是数字与字母if(username!=null && username.matches("[\u4E00-\uFA29]+")){flag = true;}return flag;}
}

Demo8


import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.itcast.web.domain.ModelBean;public class Demo8 extends HttpServlet {//NO1public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//转发到view.html页面RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/view.html");rd.forward(request,response);}//NO2public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String username = request.getParameter("username");ModelBean mb = new ModelBean();boolean flag = mb.validate(username);if(flag){//将用户名绑定到Request域对象中request.setAttribute("USERNAME",username);/*转发到ListServlet.javarequest.getRequestDispatcher("/ListServlet").forward(request,response);*/  //重定向到ListServlet.javaresponse.sendRedirect("/day07/ListServlet");}else{request.getRequestDispatcher("/WEB-INF/fail.html").forward(request,response);}}
}

ListServlet

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ListServlet extends HttpServlet {public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String username = (String) request.getAttribute("USERNAME");response.setContentType("text/html;charset=UTF-8");response.getWriter().write("欢迎"+username+"光临");}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String username = (String) request.getAttribute("USERNAME");response.setContentType("text/html;charset=UTF-8");response.getWriter().write("欢迎"+username+"光临");     }
}

html

view.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>用户登录</title><meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body><form action="/day07/Demo8" method="post"><table border="1" align="center"><caption>用户登录</caption><tr><th>用户名</th><td><input type="text" name="username"/></td></tr><tr><td colspan="2" align="center"><input type="submit" value="提交"/><input type="reset" value="重填"/></td></tr>   </table></form></body>
</html>

sucess.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>用户登录</title><meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>登录成功  </body>
</html>

fail.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>用户登录</title><meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>登录失败  </body>
</html>

转载于:https://blog.51cto.com/357712148/2104909

MVC设计模式-学习笔记相关推荐

  1. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  2. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  3. 设计模式学习笔记清单

    设计模式学习笔记清单 关于设计模式许多人已经耳熟能详,这段时间结合李建忠的教学视频以及大量网络资料,把这部分过了一遍,整理出学习笔记,而真正的深入学习和理解只能在具体的开发环境中日积月累.      ...

  4. 步步为营 .NET 设计模式学习笔记系列总结

    设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意 ...

  5. 设计模式学习笔记--Strategy 策略模式

    所谓策略模式(Strategy Pattern),就是将策略 (算法) 封装为一个对象,易于相互替换,如同 USB 设备一样可即插即用:如果将策略.具体的算法和行为,编码在某个类或客户程序内部,将导至 ...

  6. 设计模式学习笔记--Mediator 中介者模式

    我们知道面向对象应用程序是由一组为了提供某种服务而彼此交互的对象组成.当彼此引用的对象数量比较少时,此时对象之间就为直接交互(点对点).而当对象的数量增加时,这种直接交互会导致对象之间复杂的.混乱的引 ...

  7. 设计模式学习笔记(十七)——Command命令模式

    设计模式学习笔记(十七)--Command命令模式 Command命令模式介绍: Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,"行为请求者"与 ...

  8. ASP.NET MVC 2 学习笔记二: 表单的灵活提交

    ASP.NET MVC 2 学习笔记二:  表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...

  9. 设计模式学习笔记——解释器(Interpreter)模式

    设计模式学习笔记--解释器(Interpreter)模式 @(设计模式)[设计模式, 解释器模式, Interpreter] 设计模式学习笔记解释器Interpreter模式 基本介绍 解释器案例 类 ...

最新文章

  1. 使用NGUI来制作技能的CD冷却效果
  2. linux监控任务跑满,Linux服务器带宽和CPU跑满或跑高排查
  3. oracle 中表变量的用法,oracle 表类型变量的使用
  4. 初中节点法分析电路_有关初中物理电路分析题的一些小技巧
  5. Android系统(62)---Alarm的机制
  6. bootstraptable获取所有数据_关于Redis中的五种数据结构,要知其然知其所以然
  7. BP神经网络预测(人口)程序(matlab)
  8. stm32例程_如何系统地入门学习stm32?
  9. 手写springboot
  10. php又拍云,申请又拍云云存储教程(PHP V3.80+)
  11. JS判断字符串是否含有某个值
  12. 网络上找不到共享的计算机,找不到局域网中的共享电脑
  13. 声网Agora Lipsync技术剖析:通过实时语音驱动人像模拟真人说话
  14. SDUT 2055-来淄博旅游
  15. android微信小程序自动填表_微信“填表”类小程序,你可能根本没用对
  16. 纠正pylint no member报错
  17. remove () 函数
  18. 纯html+css实现点击显示再次点击隐藏并且不联动的多个下拉菜单
  19. 全网最全的微服务链路追踪实践-SkyWalking(看这一篇就够了)
  20. CreatarGlobe实现多机立体显示方案(初稿)

热门文章

  1. 卓越领导者的智慧(精华版)
  2. HTTP最常见的请求头
  3. BZOJ5300 [Cqoi2018]九连环 【数学】【FFT】
  4. 洛谷P2734 游戏 A Game
  5. 单KEY业务,数据库水平切分架构实践
  6. RSA加密算法的简单案例
  7. 队列定义、队列的存储结构
  8. Eclipse配置国内镜像源
  9. antv图例出现分页_图例-自定义文本样式
  10. IDEA部署Tomcat