`
缠小溪
  • 浏览: 23715 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

servlet登陆功能实现二——MVC模式

 
阅读更多

一、什么是MVC模式

MVC是Model-View-Control的简称,即模型-视图-控制器,他是一个存在于服务器表达层的模型,他将应用分开,改变应用之间的高度耦合

1、MVC模式结构
视图:数据的展现
视图是用户看到并与之交互的界面,视图向用户显示相关数据,并能接受用户的输入数据,但它并不接受数据的业务处理,视图可以向模型查询数据状态,但不能改变模型,视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
模型:应用对象
模型是应用程序的主体部分。模型代表了业务数据和业务逻辑。当数据放生改变时,它要负责通知视图部分;一个模型能为多个视图提供数据,提高了重用性
控制器:逻辑处理,控制实体数据在视图上的显示,调用模型处理业务请求
当用户从浏览器提交表单请求时,控制器接受数据并交给相应的模型来处理,然后模型将结果返回给控制器。
2、MVC模式的运行机制
web用户向服务器提交的所有请求都有控制器来接收,接收到请求后,控制器负责决定应该调用哪个模型来处理,模型进行相应的逻辑处理之后将结果返回给控制器,控制器再将结果呈现给相应的视图并最终呈献给用户。

二、MVC模式实例——用户登陆

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		//从cookie中得到cookie
		String username="";
		String userpwd="";
		Cookie[] cookies=request.getCookies();
		for(Cookie cookie:cookies){
			if(cookie.getName().equals("username")){
//			if(cookie!=null){
				username=cookie.getValue();
				System.out.print(cookie.getValue());
			}
		}
		System.out.println(username);
		//返回一个界面
		out.println("<img src='/ManageUser3.0/images/banner.gif' title='banner'/>");
		out.println("<h1>用户登陆</h1>");
		out.println("<form action='/ManageUser3.0/servlet/LoginCLServlet' method='post'>");
		out.println("用户名:<input type='text' name='username' id='username' value='"+username+"'/><br/>");
		out.println("密     码:<input type='password' name='userpwd' id='userpwd'/><br/>");
		out.println("<input type='checkbox' name='cookie' id='cookie' value='keep'/>在此电脑上保存用户信息<br/>");
		out.println("<input type='submit' value='登陆'><br/>");
		out.println("</form>");
		out.flush();
		out.close();
	}
登陆视图,完成登陆后视图将表单提交给控制器LoginCLServlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
//		接收用于提交的用户名和密码
		String username=request.getParameter("username");
		String userpwd=request.getParameter("userpwd");
//		接受复选框的信息
		String value=request.getParameter("cookie");
//		System.out.println(value);
		
		UsersService userservice=new UsersService();
		User user=new User();
		user.setName(username);
		user.setPwd(userpwd);
		
		if(userservice.checkUser(user)){
			//如果进来,则合法
			if(value!=null&&value.equals("keep")){
				//保存用户信息
				//创建cookie并保存到登陆的浏览器
				Cookie c_name=new Cookie("username",username);
				c_name.setMaxAge(7*3600*24);
				response.addCookie(c_name);
			}
				//跳转最后执行
				response.sendRedirect("/ManageUser3.0/servlet/MainFrame?username="+username);
//				request.getRequestDispatcher("/servlet/MainFrame").forward(request, response);
			}else{
				response.sendRedirect("/ManageUser3.0/servlet/LoginServlet");
//				request.getRequestDispatcher("/servlet/LoginServlet").forward(request,response);
				//不合法
				System.out.println("密码或账号错误");
			}	
		
	}
控制器调用模型UsersService来处理数据,并接受处理结果
/**
	 * 验证用户是否合法的函数
	 * @author chanxiaoxi
	 * @param user
	 * @return boolean
	 */
	public boolean checkUser(User user){
		boolean b=false;
		String sql="select * from mu_user where user_name=? and user_pwd=?";
		String paras[]={user.getName(),user.getPwd()};
		ResultSet rs=sqlHelper.executeQuery(sql, paras);
		try{
			if(rs.next()){
				b=true;
			}
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			DBUtil.close(rs, ps, conn);
		}
		return b;
	}
完成验证之后将结果返回给控制器,控制器根据返回的结果再将相应的结果返回给视图


分享到:
评论

相关推荐

    MVCSample.zip

    MVC模式(跟着敲小白也能看得懂的案例)中的代码和SQL设计。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使 MVC 设计模式被分成三个核心层:视图层、控制层、模型层。它们各自处理自己的任务,各...

    javaweb实验报告(购物系统)

    基于MVC设计模式的在线购物系统的实现,报告中有代码和截图,天津理工javaweb实验报告

    jsp+servlet 网上书城项目

    含数据库文件(oracle),项目简洁不复杂,符合简单的课程设计要求,对于学习jsp和servlet大有益处,积分较高,但绝对干货!

    Java Web程序设计——图书借阅网站的实现——图书信息实验.docx

    1、实现Servlet的基本特性、生命周期和编程方式; 2、实现JSP的基本特性和编程方式; 3、实现JavaBean的基本特性和编程方式;; 4、实现MVC和DAO设计模式...5、使用MVC和DAO设计模式设计图书借阅网站中图书信息的功能。

    Java Web程序设计——图书借阅网站的实现——读者信息实验.docx

    1、实现Servlet的基本特性、生命周期和编程方式; 2、实现JSP的基本特性和编程方式; 3、实现JavaBean的基本特性和编程方式;; 4、实现MVC和DAO设计模式...5、使用MVC和DAO设计模式设计图书借阅网站中图书信息的功能。

    《Java Web开发教程——入门与提高篇(JSP+Servlet)》源代码

    本资源是《Java Web开发教程——入门与提高篇(JSP+Servlet)》一书的源代码,基本上都是采用JSP2.0和MVC模式。

    Java Web程序设计_图书借阅网站的实现——图书借还实验.docx

    1、实现Servlet的基本特性、生命周期和编程方式; 2、实现JSP的基本特性和编程方式; 3、实现JavaBean的基本特性和编程方式;; 4、实现MVC和DAO设计模式...5、使用MVC和DAO设计模式设计图书借阅网站中图书借还的功能。

    oracle代码.rar

    Servlet+jsp+javabean模式开发   ———————————————— 版权声明:本文为CSDN博主「aliceiwill」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:...

    javaWEB项目——在线图书馆管理系统

    利用javaweb技术采用MVC模式开发的在线图书馆管理系统 整个项目采用myeclipse软件开发,该项目可以直接运行在Tomcat服务器上。 1.项目分别利用jsp显示用户查询前端页面及其管理员对图书的增删改查(CURD)功能界面。...

    外文翻译 stus MVC

    Struts——an open-source MVC implementation This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control...

    JSP入门必看实例——销售管理系统

    JSP入门必看实例——销售管理系统,MVC开发模式:Servlet+JavaBean+JSP,里面有源代码和数据库(mssql)

    JSP开发模式比较,JSP入门实例——model1VSmodel2

    大家都知道,JavaBean+JSP和Servlet+JavaBean+JSP是JSP最基础的开发模式,也是每个JSP初学者必学的,后者属于MVC开发模式,也就是实现了3层架构的分离,这里为大家带来两个简单的论坛实例,让初学者从简单中体会到这...

    基于微信小程序的人脸识别的签到系统的设计与实现

    该系统以MVc为开发模式,采用ISp为前台页面开发技术、servlet开发跳转等流程控制的控制器,Java语言开发业务逻辑等模型,以MYSQL为数据库,tomcat为 wEB 服务器。开发了用户管理、人脸识别设备管理、微信端情况查询及...

    软工大作业——订餐系统

    此代码为软件工程大作业。该程序的开发是基于MVC模式,使用JSP&Servlet;进行开发。该订餐系统分为Web端和Android端,Android端设计较为简单,主要的逻辑处理都在Web端进行处理。

    实例学习 Struts.doc

    采用 Struts 能开发出基于 MVC 模式的应用,关于 MVC 的概念可以参见 GoF 的《设计模式——可复用面向对象软件的基础》。 你现在要做的是,下载、安装、配置好以下的工具,版本不同的话操作可能会有些差异,具体的看...

    java面试题库2021.pdf

    ①MVC 模式与 Struts 体系 4、 mybatis 5、 MVC 框架 6、 各框架对比与项目优化 7、 JPA ①EJB 三、 Java web 开发核心内容 1、 web 编程基础 ①Tomcat 服务器NOWCODER.COM 牛客网——互联网学习求职必备神器 名企...

    从Java走向Java+EE+.rar

    5.3 使用Eclipse和Tomcat开发Servlet实例——输出字符串响应 72 5.4 小结 77 第6章 JSP——前后台更好地分离 79 6.1 JSP的概念 79 6.2 JSP页面的组成 80 6.2.1 JSP的指令元素 82 6.2.2 JSP的脚本元素 ...

    JAVA核心技术

    JSP(TagLib)——&gt;ActionForm——&gt;Action ——&gt; Event——&gt;EJBAction——&gt;EJB ——&gt;DAO——&gt;Database JSP(TagLib) (forward) &lt;——Action &lt;——EventResponse&lt;—— ??Turbine:??主要应用方面:WEB层。??主要应用...

    讨论区BBS网站

    本系统采用JSP+Servlet+Java bean模式开发,将界面表现与业务逻辑处理分开,体现了MVC(Model——View-Controller) 的思想,通过JSP技术来表现页面,通过Servlet技术来完成大量的事物处理工作,Servlet创建...

Global site tag (gtag.js) - Google Analytics