初识java web 实现简单的登录功能

  • mvc结构实现mysql 连接

  • 什么是mvc

    • MVC是模型(model)、视图(view)、控制(controller)这三个单词上的首字母组成。它是一种应用模型,它的目的是实现Web系统的职能分工。避免all in one 所有代码全部写在一个文件里的一种分工模型。
  • 实现简单登录功能

    • 登录成功,进入sccess.jsp界面,失败返回首页,并输出密码错误

数据库简单编写

  • 创建数据库
create database student;
  • 创建表
create table tbl_user(userId   varchar(11)  not nullprimary key,passWord varchar(255) not null
);
  • 导入数据
insert into tbl_user (userId,passWord) values ('admin','1234');
insert into tbl_user (userId,passWord) values ('张三','1234');

idea上准备工作

  • 创建一个干净的meavn项目

  • 把该项目添加web项目

导入依赖

  • junit 是为了便于测试
  • 其他是一些基础包
    • mysql 连接数据库
    • servlet-api servlet服务
    • jsp-api
    • jstl 写el表达式
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2.1-b02</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version></dependency></dependencies>

连接数据库

  • 使用idea连接本地数据库

编写实体类User

public class User {private String userId;private String passWord;public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) {this.passWord = passWord;}
}

UserDao层接口

public interface UserDao {public boolean getUser(String userID,String userPassWord);
}

UserDaoImpl实现类

public class UserDaoImpl implements UserDao{private String driver = "com.mysql.cj.jdbc.Driver";private String url = "jdbc:mysql://localhost:3306/student";private String root = "root";private String password = "123456";@Overridepublic boolean getUser(String userID,String userPassWord) {boolean flag = false;Connection conn = null;PreparedStatement pstm = null;ResultSet rs = null;String sql = "select * from tbl_user where userId = ? and passWord = ?";try {Class.forName(driver);conn = DriverManager.getConnection(url,root,password);pstm = conn.prepareStatement(sql);pstm.setString(1,userID);pstm.setString(2,userPassWord);rs = pstm.executeQuery();if(rs.next()){flag = true;}} catch (Exception e) {e.printStackTrace();}finally{try {rs.close();pstm.close();conn.close();} catch (SQLException throwables) {throwables.printStackTrace();}}return flag;}
}

UserService层接口

public interface UserService {public boolean Login(String userId,String userPassWord);
}

UserServiceImpl实现类

public class UserServiceImpl implements UserService{@Overridepublic boolean Login(String userId, String userPassWord) {boolean flag = false;UserDao userDao = new UserDaoImpl();flag = userDao.getUser(userId,userPassWord);return flag;}
}

编写LoginServlet服务层

public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {boolean flag = false;String userId = req.getParameter("userName");String userPassWord = req.getParameter("userPassWord");UserService userService = new UserServiceImpl();flag = userService.Login(userId,userPassWord);if(flag){User user = new User();user.setUserId(userId);user.setPassWord(userPassWord);req.getSession().setAttribute("user",user);resp.sendRedirect("jsp/success.jsp");}else{req.setAttribute("msg","用户错误");req.getRequestDispatcher("login.jsp").forward(req,resp);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

配置web.xml文件

  • servlet3.0之后可以使用注解,不用配置这个文件,但是是初学者,还是先学会配置web.xml文件
<servlet><servlet-name>loginServlet</servlet-name><servlet-class>com.hjk.servlet.LoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>loginServlet</servlet-name><url-pattern>/login</url-pattern></servlet-mapping>

编写login.jsp 界面

  • 简单的写了一下,一个表单的提交功能
<form action="login" method="post"><table><tr><span style="color: aquamarine">${requestScope.msg}</span></tr><tr><td>用户名:</td><td><input type="text" name="userName"/></td></tr><tr><td>密码</td><td><input type="password" name="userPassWord"/></td></tr><tr><td></td><td><input type="submit" value="submit"/><input type="reset" value="reset"></td></tr></table>
</form>
  • 写一个登录成功界面sccess.jsp
    -这个文件在web问价夹下面,本来想写一个拦截器,没有登录不能直接访问后面的界面,现在还没有写
<h1><span style="text-align: center"><span style="color: deeppink" >欢迎您,${sessionScope.user.userId}登录成功</span></span></h1>
  • 如果登录失败就返回登录界面

idea默认会先访问index.jsp界面,这里在web.xml配置一下,让他直接访问login.jsp

    <welcome-file-list><welcome-file>/login.jsp</welcome-file></welcome-file-list>

####已经可以登录了,但是还是存在中文乱码,编写一个过滤器CharacterEncoding,让它处理中文乱码

  • 这个包必须导入import javax.servlet.*;
public class CharacterEncoding implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {servletRequest.setCharacterEncoding("utf-8");servletRequest.setCharacterEncoding("utf-8");//不执行filterChain就会一直卡在这里,相当于一直拦截filterChain.doFilter(servletRequest,servletResponse);}@Overridepublic void destroy() {}
}
  • 为过滤文件配置web.xml
    <filter><filter-name>characterEncoding</filter-name><filter-class>com.hjk.filter.CharacterEncoding</filter-class></filter><filter-mapping><filter-name>characterEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>

结果展示

  • 初始界面

  • 登录失败界面

  • 登录成功;不加过滤器张山是不能登录成功的

  • admin

  • 张三

文件的整体结构

一些注意点

  • 导包的时候一定要到对
  • idea有可能在测试的时候没有lib包这个时候需要自己添加lib问价夹,并且把相应的依赖都添加进去

  • 服务器报404 一般是路径错误(比较好解决)
  • 500 可能是一些代码错误,或者jar没到入

mysql+jdbc连接数据库简单实现登录功能 --java相关推荐

  1. 利用IDEA搭建SpringBoot项目,整合mybatis,实现简单的登录功能。

    利用IDEA搭建SpringBoot项目,整合mybatis,实现简单的登录功能. 仅供参考!!! 仅供参考!!! 仅供参考!!! 利用闲余时间想自己搭建一个springboot+mybatis的项目 ...

  2. SpringBoot+2次MD5登录密码加密+MyBatisPlus+Thymeleaf+Bootstrap简单实现登录功能,一文轻松搞定!

    这里写目录标题 一.演示GIF 二.开发前期准备 1.数据库 2.依赖POM.XML 3.idea结构目录 三.后端 1.实体类 2.mapper接口 3.mapper.xml 4.Servicce接 ...

  3. 使用vue-cli+element-ui+expsess+mysql做一个简易的登录功能

    使用vue-cli+element-ui+expsess+mysql做一个简易的登录功能 1使用webpack下载vue模板 vue init webpack aaa(aaa为项目名称) cd到aaa ...

  4. PHP连接数据库实现用户注册登录功能

    PHP连接数据库实现用户注册登录功能 代码如下 dbconnect.php login.html register.php login.php index.php logout.php ) 代码如下 ...

  5. python flask框架下登录注册界面_Python的Flask框架中实现简单的登录功能的教程

    Python 的 Flask 框架中实现简单的登录功能的教程 , 登录是各个 web 框架中的基础功能 , 需要的朋友可以参考下 回顾 在前面的系列章节中, 我们创建了一个数据库并且学着用用户和邮件来 ...

  6. Android studio连接MySQL并完成简单的登录注册功能

    近期需要完成一个Android项目,那先从与数据库交互最简单的登陆注册开始吧,现记录过程如下: 此篇文章的小demo主要涉及数据库的连接,以及相应信息的查找与插入. 我已将源码上传至GitHub: h ...

  7. javaweb实现简单注册登录功能——(注册)

    这里实现的注册登录功能是在学习了javaweb课程之后做的一个大作业中的内容,没有涉及任何框架技术,都是基础知识凑成的✌.适合刚开始接触web的孩纸. --首页: 首页代码: <%@ page ...

  8. jsp连接数据库实现用户登录功能

    1.Login.jsp 在这个页面中,通过表单输入用户名和密码,点击登陆:如果数据库中存在此人的正确的用户名和密码,那么系统提示成功登陆:否则系统提示登陆失败,请重新登陆. <body> ...

  9. JSP+Servlet + JDBC 实现简单的登录验证模块

    数据库设计+编码+运行调试 数据库准备: 二话不说,上图 文件组织如下: 首先写出三个JSP页面文件 login.jsp <%@ page language="java" c ...

最新文章

  1. 你听说过反摩尔定律吗?
  2. 斯坦福SAIL负责人Christopher Manning:语言理解是人机灵魂的桥梁
  3. 2017 ACM/ICPC(西安)赛后总结
  4. maven构建本地jar包到本地仓库
  5. msm8953之串口dts配置
  6. STM32定时器学习---基本定时器
  7. Redis运维和开发学习目录
  8. python-nmap使用及案例
  9. linux中如何自定义命令行,linux终端颜色和命令行自定义
  10. community 计算模块度_聚苯乙烯泡沫模块可以用在哪些建筑上?
  11. rancher 使用部分运维操作
  12. [JSOI2010] 连通数
  13. 一个炫酷的个人网站带后台
  14. android中打开地理位置,Android中获取地理位置经纬度
  15. Ubuntu常用命令
  16. 介绍一种AI的抠图方法
  17. 10.1假期一半总结
  18. 扭蛋机html源码,jQuery动画扭蛋机抽奖代码
  19. 如何确保数据完整性?
  20. excel如何提取图片中的文字?

热门文章

  1. linux 怎么卸载gnome-screenshot,Ubuntu 18.04下开启gnome-screenshot截图工具
  2. Teamcenter Organization
  3. ubuntu server 12.04.2 安装桌面之后没有上面的工具条
  4. vc中关于屏幕闪烁问题解决的小结
  5. 2021-2025年中国4K和8K超高清电视行业市场供需与战略研究报告
  6. 稳定wow60级服务器,魔兽世界怀旧服:永久60级服务器可能人多还是人少?玩家吵开了!...
  7. 浮想——我和CSDN走过了3个时代(长文,无耐心读完者勿入)
  8. win10环境变量设置(win10系统环境变量怎么设置)
  9. 02-微信小程序开发-模板与配置
  10. flink1.13.2源码编译遇到的坑1.Failed to execute goal org.apache.rat:apache-rat-plugin:0.12