基于mvc设计模式实现用户登录操作
知识点补充:mvc理论知识

应用实例:创建一个jsp页面login,将其表单数据发送到类LoginServlet中,在该类调用类LoginDao实现用户登录操作。
若登录成功则跳转到welcome.jap,否则跳回login.jsp

项目目录结构图

1.创建好需要用到的数据库与数据表

create database test;
use test;
drop table if exists login;
create table login(l_id int not null primary key,l_name varchar(20),l_pwd varchar(20)
)
insert into login (l_id,l_name,l_pwd) values(1,'小尘','123abc');
select * from login;
select count(*) from login where l_name='小尘' and l_pwd='123abc';

2.导入相关数据库驱动包到目录WebContent/WEB-INF/lib下,选中该驱动包:右键build path—>add build path

3.在WebContent目录下创建login.jsp和welcome.jsp页面

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="LoginServlet" method="post">用户名:<input type="text" name="uname"><br>密码:<input type="password" name="upwd"><br><input type="submit" value="登录"></form>
</body>
</html>

welcome.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
登录成功!!!
</body>
</html>

4.创建com.xiaochen.entity包,在该包内创建类Login

Login.java

package com.xiaochen.entity;public class Login {private int id;private String name;private String pwd;public Login() {}public Login( String name, String pwd) {super();this.name = name;this.pwd = pwd;}public Login(int id, String name, String pwd) {super();this.id = id;this.name = name;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

5.创建com.xiaochen.dao包,在该包内创建类LoginDao

LoginDao.java

package com.xiaochen.dao;import java.sql.*;import com.xiaochen.entity.Login;public class LoginDao {//return 1:登录成功//return 0:登录失败//return -1:系统异常public static int login(Login login) {Connection con=null;PreparedStatement pstmt=null;ResultSet rs=null;int count=-1;String DRIVER="com.mysql.jdbc.Driver";String URL="jdbc:mysql://localhost:3306/test";String NAME="root";String PWD="123abc";try {//加载具体的驱动类Class.forName(DRIVER);//连接数据库con=DriverManager.getConnection(URL,NAME,PWD);//获取数据操作数据库对象String sql="select count(*) from login where l_name=? and l_pwd=?";//操作数据库pstmt=con.prepareStatement(sql);//从实体类获取名字与密码,将其值赋予sql语句的占位符pstmt.setString(1, login.getName());pstmt.setString(2, login.getPwd());//返回结果rs=pstmt.executeQuery();while(rs.next()!=false) {//若查询成功则表示登录成功,将其值赋予resultcount=rs.getInt(1);}if(count>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 {//关闭jdbc三幻神if(rs!=null) rs.close();if(pstmt!=null) pstmt.close();if(con!=null) con.close();} catch (SQLException e) {e.printStackTrace();return -1;}       }       }
}

6.创建com.xiaochen.controller包,在该包内创建类LoginServlet

LoginServlet.java

package com.xiaochen.controller;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.xiaochen.dao.LoginDao;
import com.xiaochen.entity.Login;@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);//设置编码格式request.setCharacterEncoding("utf-8");//获取login.jsp传来的用户名与密码String name=request.getParameter("uname");String pwd=request.getParameter("upwd");//将这两个数据封装到实体类LoginLogin login=new Login(name,pwd);//将封装后的数据传到LoginDao使用int result=LoginDao.login(login);//登录成功,跳转到welcome.jsp页面if(result>0) {response.sendRedirect("welcome.jsp");}//登录失败,跳回登录页面重新登录else {response.sendRedirect("login.jsp");}}}

运行结果图

java_web:基于mvc设计模式实现用户登录操作相关推荐

  1. 基于MVC模式的用户登录

    第1关:编写用户登录页面. 本关我们要实现的是登陆功能的第一步:编写登陆表单,在jsp中编写表单,设置用户名字段userName和用户密码字段password,并设置请求的servlet路径为logi ...

  2. MVC框架实现用户登录注册功能(连接数据库)

    目录 一.简单理解MVC框架 二.项目结构 三.项目源码 3.1 User 3.2 UserDao 3.3 RegisterDao 3.4 servletControll 3.5 servletCon ...

  3. java实现登录注册案例_Java基于IO版实现用户登录注册的案例

    下面小编就为大家带来一篇基于IO版的用户登录注册实例(Java).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 今天学的是用户登录注册功能. 4个包: itcast.c ...

  4. 基于 JSP + Servlet 的用户登录验证

    综合案例--基于 JSP + Servlet 的用户登录验证 [例6-1] 实现一个简单的用户登录验证程序,如果用户名是 abc ,密码是 123,则显示欢迎用户的信息,否则显示"用户名或密 ...

  5. java管理和用户用一个入口登录_五、基于Struts的MVC案例:用户登录

    通过上一部分内容的学习,我们已经能完全看懂简单的Struts程序,并且知道通过增加Action来增加业务功能的实现,通过struts.xml实现路由映射,并通过JavaBean来传递数据. 本着应用就 ...

  6. 关于.net mvc用sqlhelper实现用户登录操作executereader函数的使用报错

    通过控制器获取html中post获取到了username和password字段数据后通过三层结构传递给dll函数从而实现登录操作 dll中代码如下: public UserList Login(Use ...

  7. 【微信公众号】微信集成功能--扫描二维码完成用户登录操作

    目录 需求来源 实现思路 1.进入登录页面,生成微信公众号的临时二维码: 2.用户通过微信扫一扫二维码: 3.登录页面定时查询扫码结果: 代码实现(基于Laravel框架前后端混合) HTML PHP ...

  8. 【微信小程序】如何利用云开发控制台的数据库实现用户登录操作。

    微信小程序可以使用授权登录来获取用户的信息,免打扰的操作让用户省了不少心,但是开发者在设计登录和注册的页面时,总是避免不了使用数据库,而且后续还需要从云开发控制台的数据库中获取用户信息,因此登录和云开 ...

  9. 基于selenium实现12306的登录操作(图形验证码识别)

    说明 12306 会有如下一个图形验证码识别点击,所以必须得先点击正确图片,才能继续进行操作. 基本步骤 selenium打开对应网站,并进行截图 将图片截取出对应验证码所在图片 通过超级鹰识别出要点 ...

最新文章

  1. php 千万级访问量网站,承受每天百万级访问量的网站需要多少台服务器?
  2. linux下载软件后环境变量配置(最详细的保姆教程)——怎么找到linux下文件的路径
  3. ReactiveCocoa 更优雅的编程(信号探秘)
  4. TensorFlow 卷积神经网络实用指南 | iBooker·ApacheCN
  5. iOS 应用程序的生命周期浅析
  6. java清除缓存池_Java 缓存池(使用Map实现)
  7. 两个excel表格信息合并 自动匹配_别再复制黏贴了,合并两个Excel表格可以很简单!...
  8. 彻头彻尾理解 ConcurrentHashMap
  9. 惠普服务器自动装驱动安装,Win10系统不断自动安装HP打印机驱动且报错0x80240017的解决方法...
  10. MATLAB绘制中国地图超全教程
  11. 计算机基础及photoshop应用好考吗,计算机基础及Photoshop应用考试技巧
  12. 亚马逊测评日记: 亚马逊自养号是什么意思?测评的风险?review和feedback、rating星级评分的区别?
  13. 「CSS」知识点笔记:transition
  14. Ps编程脚本开发零基础学脚本(一)
  15. vite + ts + eslint全局变量配置
  16. 云+5g +大数据 +ai_5G + AI,设备智能(第一部分)
  17. C语言面试题--已知整形变量在内存中占4个字节的空间,现有一无符号整形变量a = 0x20190125,请编写函数求出变量a所占内存每个字节的值是多少?
  18. python中git克隆代码失败_使用Git clone代码失败的解决方法
  19. 运维工程师的宿命(困兽之斗)
  20. Hadoop: Rack Awareness Topology

热门文章

  1. 超神学院计算机排名,超神学院电脑版
  2. 训练一次得到多个模型做集成的方法
  3. 【腾讯云】用Java发送QQ邮件,实现天气预报推送
  4. 【GBase 8a MPP数据库集群】计算字符串长度 BIT_LENGTH(str)
  5. mysql中CONCAT()的用法
  6. 帆软报表获取服务器信息,帆软报表中数据查询取数的介绍
  7. 推箱子游戏 java_Java实现推箱子游戏
  8. 程序员应该读的几本书
  9. React 封装组件的一些心得(一)
  10. 计算机怎么添加隐藏的网络,手提电脑怎么连接隐藏wifi_电脑怎样连接隐藏的无线网-win7之家...