学习Java Web篇:MVC设计模式
一、MVC设计模式
1、什么是MVC模式
1.1、MVC —— Model View Controller模型视图控制器
1.2、Model:模型 一个功能 一般用JavaBean
1.3、View:视图 用于展示以及用户交互。一般使用html,jsp,ccs等这些前端技术实现
1.4、Controller:控制器 接收请求,将请求跳转到模型进行处理,待模型处理完毕之后,再将处理的结果返回给请求处,一般用Servlet实现控制器
我感觉MVC就是简单前后端交互模式,其中最重要的模块是Servlet。
2、我自己画个图来展示下

3、简单MVC登录实例
3.1、框架

3.2、 View层
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="<%= request.getContextPath() %>/LoginServlet" method="post">
<input type="text" name="uname"><br/>
<input type="password" name="upwd"><br/>
<input type="submit" value="登录"><br/>
</form>
</body>
</html>
welcom.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
登录成功,欢迎您
</body>
</html>
3.3、Dao层
Dao功能操作
//model层,实现某种功能
public class LoginDao {
private static String url="jdbc:mysql://localhost:3306/test";
private static String user="root";
private static String password="root";
public static int Login(user s){
Connection conn=null;
PreparedStatement pst=null;
ResultSet re=null;
int result=0;//1:登录成功 0:登录失败 用户或密码有误
try{
Class.forName("com.mysql.jdbc.Driver");
conn= DriverManager.getConnection(url,user,password);
pst=conn.prepareStatement("select count(*) from user where username=? and password=? ");
pst.setString(1,s.getUserName());
pst.setString(2,s.getPassword());
re=pst.executeQuery();
if(re.next()){
result=re.getInt(1); } }catch (ClassNotFoundException e1){
e1.printStackTrace();
}catch (Exception e2){
e2.printStackTrace();
}finally {
try {
//进行非空判断,防止re,comm,pst抛出空异常
if (re != null) re.close();
if(pst !=null) pst.close();
if(conn !=null) conn.close();
}catch (Exception e){
e.printStackTrace();
}
}
return result;
}
}
Dao层实体user
/**
* 实体user,将传入的数据封装成一个实体
*/
public class user {
private int id;
private String userName;
private String password;
public user(){ }
public user(String userName, String passqord) { this.userName = userName;
this.password = passqord;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}
3.4、控制层Controller
LoginServlet
/**
* Controller控制器
*/
@WebServlet(name = "LoginServlet",value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String usename=request.getParameter("uname");
String password=request.getParameter("upwd");
user s=new user(usename,password);
int i=LoginDao.Login(s);
if(i==1){
//一定要加request.getContextPath(),不然找不到路径
response.sendRedirect(request.getContextPath()+"/MVCExample/welcome.jsp");
}else{
response.sendRedirect(request.getContextPath()+"/MVCExample/login.jsp");
}
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
调用过程:从前端页面Login.jsp登录,登录之后将请求页面和登录信息username和password传给控制层,在控制层Controller中调用Model层来实现登录LoginDao,最终Model层将查到的结果返回给控制层ServletLogin,控制层再将结果返回给前端展示。在此过程中控制层相当于分发器,前端和后端通过他来进行信息的交互。
学习Java Web篇:MVC设计模式的更多相关文章
- Java Web中MVC设计模式与IOC
MVC是由Model(模型).View(视图).Controller(控制器)三个模块组成 视图:用于做数据展示以及和用户交互的一个界面(html页面) 控制层:能够接受客户端的请求,具体的业务功能还 ...
- 第80节:Java中的MVC设计模式
第80节:Java中的MVC设计模式 前言 了解java中的mvc模式.复习以及回顾! 事务,设置自动连接提交关闭. setAutoCommit(false); conn.commit(); conn ...
- 零基础如何系统学习Java Web
零基础如何系统学习Java Web? 我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...
- 疯狂学习java web
因工作需要,疯狂学习java web,只是这么多年一直从事C++开发,突然之间要接手同事的那么一大堆代码,真有无从下手的感觉,首先是要学习html,然后是js, 然后是jsp,当然还有各种框架,想想就 ...
- 学习Java Web开发
学习DreamWaveMX中文版的网页设计技术 HTML网页设计,这是最基本的.学习XML的一些基本知识.初步掌握一些JSCRIPT的应用. 学习JAVA语言. 这应该分成2次来进行: 第1次找一本国 ...
- 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程
在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1 哪些知识点 ...
- Java Web自定义MVC框架详解 (转)
转自:http://blog.csdn.net/jackfrued/article/details/42774459 最近给学生讲Java Web,希望他们能够在学完这部分内容后自己实现一个MVC框架 ...
- Java面试题(Java Web篇)
Java Web 64.jsp 和 servlet 有什么区别? jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将 ...
- Java Web学习总结(28)——Java Web项目MVC开源框架SSH和SSM比较
SSH和SSM定义 SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层. SSM 则指的是 SpringMVC 做控制 ...
随机推荐
- docker学习:docker镜像
镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. UnionFS(联合文件系 ...
- 高可用k8s集群搭建
虚拟机选择 Win10 Hyper-V 总体架构 三个master,三个node master的组件 etcd kube-apiserver kube-controller-manager kube- ...
- 为什么要避免在 Go 中使用 ioutil.ReadAll?
原文链接: 为什么要避免在 Go 中使用 ioutil.ReadAll? ioutil.ReadAll 主要的作用是从一个 io.Reader 中读取所有数据,直到结尾. 在 GitHub 上搜索 i ...
- 什么是LTV,舔狗的LTV可以乘以N吗?
依旧注意一下,数据类文章比较敏感,舔狗只是代词,千万不要以为我是舔狗. 之前我们探讨过如何对自己的用户进行分层:不知怎么选,用RFM模型看舔狗质量! 也探讨了如何判断自己适不适合海后(主播)这个业务: ...
- 初识python: 集合
集合是一个无序的,不重复的数据组合.主要作用如下:1.去重,把一个列表变成集合,会自动去重:2.关系测试,测试两组数据之前的交集.差集.并集等关系 #!/user/bin env python # a ...
- celery起动,运行有警告
运行命令 : celery worker -A task_log -l info: 有如下警告 2019-12-22 22:42:50,215: WARNING/MainProcess] /root ...
- [ flask ] flask-restful 实现嵌套的有关系的输出字段
问题描述: 1. 先说明数据关系:有用户,和菜谱.一个用户可以拥有多个菜谱:一对多的关系 2. resources/users.py 的输出字段: user_fields = { 'id':fiel ...
- Go语言系列之并发编程
Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(宏观上并行,微观上并发). 并行:同一时刻执行多个任务(宏观和微观都是并行). Go语言的并发通过goroutine实现.gorout ...
- 使用altium designer 21极坐标绘制异形焊盘 比如焊接螺母的 环绕焊盘
先看一张图 在回流焊时,不能直接做一个大圆圈焊盘来焊接螺母,这样焊锡膏因为流动问题,可能会导致螺母歪斜 厂家推荐的焊盘形状右上角 所以 需要绘制异形焊盘 首先进入ad的封装库工作界面 在库中点右下角P ...
- CSS相关知识及入门
CSS(层叠样式表) 作用 修饰HTML页面,美化 CSS代码规范 放置规范 在<style>标签内容体中书写样式代码 <style>标签放置在<head>标签内. ...