学习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 做控制 ...
随机推荐
- LDAP服务端安装
安装环境: 10.43.159.9 root/zdh1234 使用离线的yum源安装,如果机器重启过需要重新挂载镜像 mount /dev/cdrom /media/zidong/ 1.查看openl ...
- 微信公众号开发--.net core接入
.net进行微信公众号开发的例子好像比较少,这里做个笔记 首先,我们需要让微信能访问到我们的项目,所以要么需要有一个可以部署项目的连接到公网下的服务器,要么可以通过端口转发将请求转发到我们的项目,总之 ...
- PHP json_encode() 序列化对象、数组、空对象、空数组
$result = [ "object" => ["a" => 1], "array" => [1,2,3,4,5], & ...
- CS基础 float 浮动的使用方法
html代码: <body> <div class='red'> </div> <div class='green'> </div> < ...
- html 基础 vscode的常用快捷键
1.ctrl+/ //注释代码 2.文件内容查找替换:ctrl+f ctrl+h ,替换一个ctrl+shift+1,替换所有ctrl+alt+enter 3.移动当前行,向上alt+up(方向键↑) ...
- 在B站学Java
大家好,我是大彬~ 众所周知,B站是用来搞学习的,对于学编程的小伙伴来说,B站有着非常丰富的学习资源.今天给大家分享一些质量比较高的Java学习视频,希望对大家有帮助! Java基础 首先是Java基 ...
- 初识python: 回调函数
回调函数 简单理解就是:将一个函数通过参数的形式传递给另一个函数 #!/user/bin env python # author:Simple-Sir # time:2019/8/9 10:49 # ...
- concat模糊查询
<if test="name!=null"> name like concat('%',concat(#{name},'%')) </if> choose ...
- Elasticsearch打造全文搜索引擎(一)
带着问题上路--ES是如何产生的? (1)思考:大规模数据如何检索? 如:当系统数据量上了10亿.100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题: 1)用什么数据库好?(mysq ...
- Python爬取中国知网文献、参考文献、引证文献
前两天老师派了个活,让下载知网上根据高级搜索得到的来源文献的参考文献及引证文献数据,网上找了一些相关博客,感觉都不太合适,因此特此记录,希望对需要的人有帮助. 切入正题,先说这次需求,高级搜索,根据中 ...