mvc设计模式实现简单登录跳转

MVC模式

MVC最初应用于桌面程序中,M指数据模型,V指用户界面,C指控制器,是Xerox PARC在20世纪80年代为编程语言“Smalltalk-80”发明的一种软件设计模式,至今已被广泛使用。基于JavaEE的Web应用开发,经历了Model1和Model2的不同时代。

Model1:

在Model 1中,不使用Servlet,JSP和JavaBean协作共同完成任务,不是真正的MVC模式。

              优点:架构简单,适合小型项目的开发。

               缺点:JSP职责过重,可维护性较差。

Model2:

Model 2已经是MVC设计思想下的架构,Servlet充当控制器,JSP充当视图,JavaBean作为模型。浏览器的请求都提交给Servlet,Servlet实例化JavaBean处理请求,并根据处理结果跳转到不同的JSP页面,生成响应到客户端浏览器。JavaBean可以使用JDBC访问数据库。

        优点:职责清晰,适合大、中型项目。

               缺点:不适合小型项目(主要是层过多)

项目结构和数据库表,DBUtils工具类笔者前面文章有这里就不放了

  

 建立实体类User

package com.entity;

public class User {

	private Long id;
	private String userName;
	private String password;
	private Integer age;
	private String gender;
	private String address;
	public Long getId() {
		return id;
	}
	public void setId(Long 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;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public User(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}
	
}

编写Dao

package com.dao;

import java.sql.SQLException;

import com.utils.DBUtils;

public class UserDao {

	/**
	 * 根据用户名和密码查询满足条件的用户数
	 * @param username
	 * @param password
	 * @return
	 */
	public Long queryUserByNamePwd(String username,String password){
		String sql = "select count(*) from t_user where UserName = ? and Password =?";
		try {
			return (Long) DBUtils.executeScalar(sql, username,password);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return 0L;
	}
}

编写service

package com.service;

import com.dao.UserDao;
import com.entity.User;

public class UserService {

	private UserDao dao = new UserDao();
	/**
	 * 登录验证
	 * @param username 用户名
	 * @param password 密码
	 * @return true:验证通过 false:验证失败
	 */
	public boolean login(User user){
		Long result = dao.queryUserByNamePwd(user.getUserName(), user.getPassword());
		return result > 0;
	}
}

编写servlet,并在制器中调用Service的方法

package com.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.entity.User;
import com.service.UserService;

public class LoginServlet extends HttpServlet {

	//调用service
	private UserService service = new UserService();
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

		doPost(req, resp);
	}
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String username = req.getParameter("username");
		String password = req.getParameter("pwd");
		User user = new User(username,password);
		if(service.login(user)){
			resp.sendRedirect("index.jsp");
		}else{
			resp.sendRedirect("login.jsp");
		}
	}
}

编写登录jsp,并在视图中指定Servlet

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'login.jsp' starting page</title>
  </head>
  <body>
     <form action="LoginServlet" method="POST">
      <table>
        <tr>
          <td>用户名</td>
          <td><input type="text" name="username" id="username"></td>
        </tr>
        <tr>
          <td>密码</td>
          <td><input type="password" name="pwd" id="pwd"></td>
        </tr> 
        <tr>
          <td colspan="2" align="center">
          <input type="submit" value="登录">
          </td>
        </tr>
      </table>
</form>
  </body>
</html>

 

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以为您解答有关MVC设计模式在JavaWeb中的简单实验。 MVC是一种常用的设计模式,用于将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller)。在JavaWeb中,MVC模式可以用于实现Web应用程序的开发。 下面是一个简单MVC模式实验,使用JavaWeb实现一个简单登录页面: 1. 创建一个Model类,用于处理数据逻辑,例如User.java,包含用户名和密码的属性和相应的getter和setter方法。 ```java public class User { private String username; private String password; 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; } } ``` 2. 创建一个View类,用于显示用户界面,例如login.jsp,包含一个表单以供用户输入用户名和密码。 ```html <form action="loginController" method="post"> <input type="text" name="username" placeholder="Username"><br> <input type="password" name="password" placeholder="Password"><br> <input type="submit" value="Login"> </form> ``` 3. 创建一个Controller类,用于处理用户请求和响应,例如LoginController.java,包含一个doPost方法,用于验证用户输入的用户名和密码,并根据验证结果返回相应的视图。 ```java public class LoginController extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); // 验证用户名和密码 if (username.equals("admin") && password.equals("password")) { // 如果验证通过,跳转到成功页面 request.getRequestDispatcher("success.jsp").forward(request, response); } else { // 如果验证失败,跳转到失败页面 request.getRequestDispatcher("failure.jsp").forward(request, response); } } } ``` 4. 配置web.xml文件,将请求映射到相应的Controller类中。 ```xml <servlet> <servlet-name>LoginController</servlet-name> <servlet-class>com.example.LoginController</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginController</servlet-name> <url-pattern>/loginController</url-pattern> </servlet-mapping> ``` 5. 创建成功页面和失败页面,例如success.jsp和failure.jsp,用于显示相应的结果。 ```html <!-- success.jsp --> <h1>Login successful!</h1> <!-- failure.jsp --> <h1>Login failed!</h1> ``` 以上就是一个简单MVC模式实验,使用JavaWeb实现一个简单登录页面。通过使用MVC模式,将应用程序分为三个部分,可以使代码更加清晰、易于维护和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值