斐讯路由器做网站映射,自己的服务器做网站要备案,毕业设计网站用什么做,有哪些做室内设计好用的网站有哪些MVC原理及案例分析
关于MVC MVC全名是Model View Controller#xff0c;是模型(model)#xff0d;视图(view)#xff0d;控制器(controller)的缩写#xff0c;一种软件设计典范#xff0c;用一种业务逻辑、数据、界面显示分离的方法组织代码#xff0c;将业务逻辑聚集到…MVC原理及案例分析
关于MVC MVC全名是Model View Controller是模型(model)视图(view)控制器(controller)的缩写一种软件设计典范用一种业务逻辑、数据、界面显示分离的方法组织代码将业务逻辑聚集到一个部件里面在改进和个性化定制界面及用户交互的同时不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC开始是存在于桌面程序中的M是指业务模型V是指用户界面C则是控制器使用MVC的目的是将M和V的实现代码分离从而使同一个程序可以使用不同的表现形式。 以简单的登录功能为案例简单分析MVC的具体实现
项目执行的流程 项目文件中各个层次的作用 具体代码实现 login.jsp
% page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8%
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd
html
head
meta http-equivContent-Type contenttext/html; charsetUTF-8
title登录/title
/head
bodyform actionLoginServlet methodpost用户名input typetext nameunamebr/密码nbsp;nbsp;nbsp;input typepassword nameupwdbr/input typesubmit value登录/form
/body
/htmlWelcome.jsp
% page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8%
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd
html
head
meta http-equivContent-Type contenttext/html; charsetUTF-8
titleInsert title here/title
/head
body登陆成功
/body
/htmlLoginServlet.java
package org.zxm.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.zxm.Dao.LoginDao;
import org.zxm.entity.Login;//控制器层用于接收view层的请求并分发给Model处理
public class LoginServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//post请求方式设置编码request.setCharacterEncoding(UTF-8);//接受用户名和密码String name request.getParameter(uname);String pwd request.getParameter(upwd);//封装Login login new Login(name,pwd);//将用户名和密码传递到登录功能里面LoginDao//调用模型层的登录功能int result LoginDao.login(login);if(result 0) {//重定向response.sendRedirect(Welcome.jsp);}else {response.sendRedirect(login.jsp);}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}LoginDao.java
/*** */
package org.zxm.Dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import org.zxm.entity.Login;/*** author 11441*模型层用于处理登录查询数据库*/
public class LoginDao {//用于登录的login方法//在方法参数中传入login类型public static int login(Login login) {//登录成功与否的标识//boolean flag false;int flag -1; //-1系统异常 0用户名或密码有误 1登陆成功int result -1;Connection connection null;PreparedStatement prepareStatement null;ResultSet rs null;try {//加载驱动Class.forName(com.mysql.jdbc.Driver);//获取连接connection DriverManager.getConnection(jdbc:mysql://localhost:3306/test1, root, root);//访问数据库String sql select count(*) from login where username ? and pwd ?;prepareStatement connection.prepareStatement(sql);prepareStatement.setString(1, login.getUsername());prepareStatement.setString(2, login.getPwd());rs prepareStatement.executeQuery();if(rs.next()) {result rs.getInt(1);}if(result 0) {//登陆成功return 1;}else {//登陆失败用户名或密码有误return 0;}} catch (ClassNotFoundException e) {e.printStackTrace();//登陆失败系统异常return -1;} catch (SQLException e) {e.printStackTrace();//登陆失败系统异常return -1;} catch (Exception e) {e.printStackTrace();//登陆失败系统异常return -1;}finally {try {if(rs ! null) rs.close();if(prepareStatement ! null) prepareStatement.close();if(connection ! null) connection.close();} catch (SQLException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}} }
}Login.java
/*** */
package org.zxm.entity;/*** author 11441**/
public class Login {private int id;private String username;private String pwd;public Login(String username, String pwd) {this.username username;this.pwd pwd;}public Login() {}public Login(int id, String username, String pwd) {this.id id;this.username username;this.pwd pwd;}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 getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd pwd;}
}
总结
MVC模式的优点
按照MModel VView CController进行分层有利于代码的维护提高了代码重用率更好的实现开发中的分工有益于后期代码的维护降低了成本
MVC模式的缺点
增加了复杂性运行效率降低