当前位置: 首页 > wzjs >正文

提供网站建设设计品牌营销策划是干嘛的

提供网站建设设计,品牌营销策划是干嘛的,东莞网站建设类岗位,网站全站模板目录 MVC的介绍 mvc是什么 M-V-C 三部分的含义 MVC运行过程 MVC的优点 1、低耦合性 2、较低的生命周期成本 3、高重用性和可适用性 4、快速的部署 5、可维护性 具体实现 两种经典MVC实现模型 模型1:JSPJavaBean MVC的具体实现-用户登录实例 实例描述 …

目录

MVC的介绍 

mvc是什么

 M-V-C 三部分的含义

MVC运行过程 

 MVC的优点

1、低耦合性

2、较低的生命周期成本

3、高重用性和可适用性

4、快速的部署

5、可维护性

 具体实现

 两种经典MVC实现模型

模型1:JSP+JavaBean 

 MVC的具体实现-用户登录实例

实例描述 

实现思路 

View-视图的实现 

登录页面参考代码 

Model-模型的实现

Model-模型的实现代码 

Model-数据库工具类代码 

Controller-控制器的实现 

 Controller-控制器的参考代码

调试运行 

MVC2实现 

 View - 视图的实现

Model - 模型的实现 

 Controller - 控制器的实现

 数据库工具类

 Web.xml 配置

注册成功和失败的页面

小结


MVC的介绍 

 

mvc是什么

 

 MVC全名是Model View Controller,模型(model)-视图(view)-控制器(controller)的缩写

 

使用MVC模式,就是程序员在写代码时,将一个程序代码人为地分成了M-V-C三部分来写。

 

 M-V-C 三部分的含义

M模型(Model

业务逻辑层。用于封装业务逻辑和数据模型。

V视图(View

表示层。就是与用户实现交互的界面,通常实现数据的输入和输出功能。

C控制器(controller)

控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作

MVC运行过程 

 

 

 MVC的优点

1、低耦合性

视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

2、较低的生命周期成本

MVC使开发和维护用户接口的技术含量降低。

3、高重用性和可适用性

随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEBHTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。

4、快速的部署

使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTMLJSP开发人员)集中精力于表现形式上。

5、可维护性

分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

 

 具体实现

 两种经典MVC实现模型

Java Web领域存在着两种经典模型,也可以称为实现模式,分别是Model1Model2。这两种模型都可被看做是MVC的具体实现形式 

模型1:JSP+JavaBean 

 

 模型1的特点是,
JSP充当控制器C与视图V的双重角色
JSP直接调用后台模型进行业务处理,同时再由JSP返回用户结果界面
JavaBean扮演了模型M的角色

模型2:JSP+Servlet+JavaBean 

 

 

模型2的特点是
Servlet作为控制器C
JSP仅作为视图V
JavaBean作为模型M
整个过程:

用户通过浏览器发送请求,Servlet接收请求并调用相应的JavaBean处理请求,JavaBean负责业务逻辑和数据处理。到处理完成,JavaBean将结果返回给Servlet,Servlet根据结果指定JSP页面返回给客户浏览器,完成一次操作
 

 MVC的具体实现-用户登录实例

实例描述 

利用MVC实现模型2 ,即JSP+Servlet+JavaBean模式实现用户登录功能,数据库使用mysql
登录页面及操作效果如下

 

  数据库中登录用表及数据如下


表名userinfo(用户信息表)
字段2个
username 用户名 字符串 10位 主键
password 密码 字符串 6位 非空

实现思路 

 要在程序中体现MVC的思想,核心问题就是把程序按照MVC的定义分成三部分(或者说归三类)

属于V范畴的内容写在V指定的地方

属于M范畴的内容写在M指定的地方

属于C范畴的内容写在C指定的地方

View-视图的实现 

视图是MVC中的V,使用JSP来实现,即用户界面。对于用户登录功能,我们用最简单的界面,如下图,只需要“用户名”、“密码”2个输入框,再有“提交”和“重置”2个按钮就行了
 

 

登录页面参考代码 

 

<form action="login" method="post">用户名:<input type="text" name="userid"><br>密码:<input type="password" name="password"><br><input type="submit" value="提交"><input type="reset" value="重置">
</form>

我们还需要登录成功、登陆失败画面,代码以下省略

Model-模型的实现

MVC中的M,使用JavaBean来实现模型,即完成业务逻辑和数据的处理。
一般地建立登录的逻辑处理类Login来实现用户登陆的业务逻辑。
该类需要做的事情是

1.获得用户填写的登录信息
2.根据用户填写的登录信息,在数据库进行查找,若找到,那么则返回成功标志,若没有找到任何记录,则返回登陆失败失败
 

Model-模型的实现代码 

public boolean execute(HttpServletRequest request){boolean ret=false;DBUtil dBUtil=new DBUtil();String sql="";try {	request.setCharacterEncoding("utf-8");String username=request.getParameter("userid");String password=request.getParameter("password");sql="select count(1) from userinfo where username='"+username+"' and password='"+password+"'";dBUtil.executeQuery(sql);ResultSet rs=dBUtil.getRs();int count=0;if(rs.next()){	count=rs.getInt(1);}if (count>0) {	ret=true;}} catch (Exception e) {e.printStackTrace();System.out.println("执行登录失败,请检查sql:"+sql);} dBUtil.close();return ret;}

Model-数据库工具类代码 

 

public class DBUtil{private static final String URL="jdbc:mysql://localhost:3306/test";private static final String LOGIN="root";private static final String PASSWORD="";Connection conn=null;Statement st=null;private ResultSet rs=null;public ResultSet getRs(){return rs;}public void setRs(ResultSet rs){this.rs=rs;}void getConnection(){try {Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(URL,LOGIN,PASSWORD);} catch (ClassNotFoundException e) {System.out.println("数据库连接出错,请检查驱动程序是否存在,驱动名是否正确");} catch (SQLException e) {System.out.println("数据库连接出错,请检查登录的用户名密码是否正确,数据库服务器是否启动");}}public int executeQuery(String sql){try {if(st==null){getConnection();st=conn.createStatement();}rs=st.executeQuery(sql);} catch (SQLException e) {System.out.println("数据库查询执行出错,请检查sql:"+sql);}return 0;}public int executeUpdate(String sql){int ret=0;try {if(st==null){getConnection();st=conn.createStatement();}ret=st.executeUpdate(sql);} catch (SQLException e) {ret=-1;System.out.println("数据库增删改执行出错,请检查sql:"+sql);}return ret;}public void close(){try {if (rs!=null){rs.close();}if (st!=null){st.close();}if (conn!=null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}}

Controller-控制器的实现 

 MVC中的C,使用Servlet来实现控制
一般地,建立Servlet类LoginServlet,在这个类中在doPost()方法中写代码。
具体做的事情是
1.调用业务逻辑处理类做事情
2.得到业务逻辑处理类的返回结果
3.根据结果做出决策:跳转到登录的结果页面

 

 Controller-控制器的参考代码

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.调用人家做事情Login login=new Login();//2.得到做的事情结果boolean ret=login.execute(request);//3.根据结果做出决策if(ret){//成功response.sendRedirect("./login_succ.jsp");}else{//失败response.sendRedirect("./login_err.jsp");}
}

 web:

<servlet><servlet-name>login</servlet-name><servlet-class>login.ServletLogin</servlet-class></servlet><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern></servlet-mapping>

调试运行 

 确定数据库表及数据

准备好确定数据库驱动程序

准备好分别输入错误与正确的登录数据执行程序

 

MVC2实现 

数据库设计这里同样忽略

 View - 视图的实现

视图部分使用JSP来实现用户注册页面。用户注册页面需要包含用户名和密码的输入框,以及提交和重置按钮。 

register.jsp 

<!DOCTYPE html>
<html>
<head><title>用户注册</title>
</head>
<body><h2>用户注册</h2><form action="register" method="post">用户名:<input type="text" name="username"><br>密码:<input type="password" name="password"><br><input type="submit" value="注册"><input type="reset" value="重置"></form>
</body>
</html>

Model - 模型的实现 

 模型部分使用JavaBean来处理业务逻辑和数据操作。我们需要创建一个 Register 类来处理用户注册的逻辑。

Register.java 

public class Register {public boolean execute(HttpServletRequest request) {boolean ret = false;DBUtil dBUtil = new DBUtil();String sql = "";try {request.setCharacterEncoding("utf-8");String username = request.getParameter("username");String password = request.getParameter("password");// 检查用户名是否已存在sql = "SELECT COUNT(1) FROM userinfo WHERE username='" + username + "'";dBUtil.executeQuery(sql);ResultSet rs = dBUtil.getRs();int count = 0;if (rs.next()) {count = rs.getInt(1);}if (count == 0) {// 用户名不存在,可以注册sql = "INSERT INTO userinfo (username, password) VALUES ('" + username + "', '" + password + "')";int rows = dBUtil.executeUpdate(sql);if (rows > 0) {ret = true;}}} catch (Exception e) {e.printStackTrace();System.out.println("执行注册失败, 请检查sql: " + sql);}dBUtil.close();return ret;}
}

 Controller - 控制器的实现

 控制器部分使用Servlet来处理请求和响应。我们需要创建一个 RegisterServlet 类来处理用户注册的请求。

RegisterServlet.java 

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class RegisterServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 1. 调用业务逻辑处理类Register register = new Register();// 2. 得到业务逻辑处理类的返回结果boolean ret = register.execute(request);// 3. 根据结果做出决策if (ret) {// 注册成功response.sendRedirect("./register_succ.jsp");} else {// 注册失败response.sendRedirect("./register_err.jsp");}}
}

 数据库工具类

数据库工具类 DBUtil 用于处理数据库连接和操作。这个类在注册功能中也会被使用。

DBUtil.java

import java.sql.*;public class DBUtil {private static final String URL = "jdbc:mysql://localhost:3306/test";private static final String LOGIN = "root";private static final String PASSWORD = "";private Connection conn = null;private Statement st = null;private ResultSet rs = null;public ResultSet getRs() {return rs;}public void setRs(ResultSet rs) {this.rs = rs;}private void getConnection() {try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(URL, LOGIN, PASSWORD);} catch (ClassNotFoundException e) {System.out.println("数据库连接出错,请检查驱动程序是否存在,驱动名是否正确");} catch (SQLException e) {System.out.println("数据库连接出错,请检查登录的用户名密码是否正确,数据库服务器是否启动");}}public int executeQuery(String sql) {try {if (st == null) {getConnection();st = conn.createStatement();}rs = st.executeQuery(sql);} catch (SQLException e) {System.out.println("数据库查询执行出错,请检查sql:" + sql);}return 0;}public int executeUpdate(String sql) {int ret = 0;try {if (st == null) {getConnection();st = conn.createStatement();}ret = st.executeUpdate(sql);} catch (SQLException e) {ret = -1;System.out.println("数据库增删改执行出错,请检查sql:" + sql);}return ret;}public void close() {try {if (rs != null) {rs.close();}if (st != null) {st.close();}if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}
}

 Web.xml 配置

在 web.xml 中配置 RegisterServlet 的映射。

web.xml

<servlet><servlet-name>RegisterServlet</servlet-name><servlet-class>RegisterServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>RegisterServlet</servlet-name><url-pattern>/register</url-pattern>
</servlet-mapping>

注册成功和失败的页面

创建两个简单的JSP页面来显示注册成功和失败的结果。

register_succ.jsp

 

<!DOCTYPE html>
<html>
<head><title>注册成功</title>
</head>
<body><h2>注册成功!</h2>
</body>
</html>

 register_err.jsp

 

<!DOCTYPE html>
<html>
<head><title>注册失败</title>
</head>
<body><h2>注册失败,用户名已存在!</h2>
</body>
</html>

小结

使用MVC模式的程序与不使用MVC,效果是一样的

不同的是,程序分成了三部分

JSP页面是视图V

servlet是控制器C

登录的Login和数据库工具类DBUtil是模型M

 

http://www.dtcms.com/wzjs/249860.html

相关文章:

  • 做360手机网站首页seo系统教程
  • 旅行社网站建设方案书网站运营主要做什么工作
  • 郑州最牛的网站开发公司网站优化师
  • 网站建设需要方案重庆seo网络推广
  • 滨海县做网站注册淘宝小程序竞价网络推广托管
  • 微信小程序推广引流怎么做360优化大师官方最新
  • 一级a做爰片视频免费观看网站长沙网站优化推广方案
  • 哪些企业会考虑做网站百度 站长工具
  • 1元二手已备案域名百度seo分析工具
  • 网站存在的问题及改进措施河南seo排名
  • 三桥做网站百度排名优化专家
  • 先锋网站大全免费b2b网站大数据营销案例分析
  • 论坛门户网站建设运营费用四川seo平台
  • 网站如何建设手机版舆情监测分析系统
  • 网站建设用什么软件做东莞seo排名外包
  • 网站建设的指标国际军事形势最新消息
  • 怎么自己做刷东西的网站论坛营销
  • wordpress login urlseo推广公司排名
  • 网站开发实现的环境公司网站建设费
  • 代做ppt网站网页查询
  • 大屏手机网站如何制作网页链接
  • 培训网站导航大数据精准客户
  • 怎样淘宝做seo网站推广泰安网站推广优化
  • 视频弹幕网站怎么做的百度电脑网页版入口
  • 龙华营销型网站建设公司百度app关键词优化
  • 英语网站开发做外贸网站哪家公司好
  • 网络广告系统重庆可靠的关键词优化研发
  • 网站开发最新效果2021时事政治热点50条
  • 求职网站网页模板亚马逊关键词快速优化
  • 义乌做网站要多少钱百度问答seo