Spring登录实例

  项目结构

  首先看一下整个项目的目录结构,如下:

  导入Jar包

  工欲善必先利其器,导入一下Jar包

  配置文件

  web.xml

  配置 web.xml配置文件,如下:

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  contextConfigLocation

  classpath:applicationContext.xml

  org.springframework.web.context.ContextLoaderListener

  applicationContext.xml

  创建applicationContext.xml配置文件,如下:

  获取数据源,数据库相关配置(注意:要配置自己的数据库相关信息),beanID:dataSource。

  创建 SqlSessionFactory,beanID:factory。

  扫描器配置,扫描接口,并创建接口对象。

  由spring管理service实现类,beanID:userService。

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://www.springframework.org/schema/beans

  http://www.springframework.org/schema/beans/spring-beans.xsd">

  value="com.mysql.jdbc.Driver">

  value="jdbc:mysql://localhost:3306/spring">

  class="org.mybatis.spring.SqlSessionFactoryBean">

  class="com.spring.service.impl.UsersServiceImpl">

  创建数据库

  创建对应的用户表,如下:

  

  数据库信息为:spring库,users表。

  代码实现

  创建Users类

  先创建一个用户类Users,如下:

  public class Users {

  private int user;

  private String username;

  private String password;

  public int getUser() {

  return user;

  }

  public void setUser(int user) {

  this.user = user;

  }

  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;

  }

  }

  创建UsersMapper类

  创建UsersMapper类,如下:

  public interface UsersMapper {

  @Select("select * from users where username=#{username} and password=#{password}")

  Users selByUsersPwd(Users users);

  }

  创建UsersService接口

  创建UsersService类,如下:

  public interface UsersService {

  /**

  * 登录

  * @param users

  * @return

  */

  Users login(Users users);

  }

  创建UsersServiceImpl类

  创建UsersService接口实现类,如下:

  public class UsersServiceImpl implements UsersService {

  private UsersMapper usersMapper;

  public UsersMapper getUsersMapper() {

  return usersMapper;

  }

  public void setUsersMapper(UsersMapper usersMapper) {

  this.usersMapper = usersMapper;

  }

  @Override

  public Users login(Users users) {

  // TODO Auto-generated method stub

  return usersMapper.selByUsersPwd(users);

  }

  }

  创建LoginServlet类

  创建LoginServlet类,如下:

  @WebServlet("/login")

  public class LoginServlet extends HttpServlet {

  private UsersService usersService;

  //从spring中取出UsersServiceImpl

  public void init()throws ServletException{

  ApplicationContext ac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());

  usersService = ac.getBean("usersService",UsersServiceImpl.class);

  }郑州妇科咨询网站 http://www.zzkdfk120.com/

  protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException {

  req.setCharacterEncoding("utf-8");

  //获取验证码

  String code = req.getParameter("code");

  //到session中获取验证码

  String codeSession = req.getSession().getAttribute("code").toString();

  //判断验证码是否正确

  if(codeSession.equals(code)) {

  //获取用户名

  String username = req.getParameter("username");

  //获取密码

  String password = req.getParameter("password");

  //创建users对象

  Users users = new Users();

  users.setUsername(username);

  users.setPassword(password);

  //登录

  Users user = usersService.login(users);

  if(user!=null) {

  resp.sendRedirect("main.jsp");

  }else {

  req.setAttribute("error", "用户名或密码不正确!");

  req.getRequestDispatcher("index.jsp").forward(req, resp);

  }

  }else {

  req.setAttribute("error", "验证码不正确");

  req.getRequestDispatcher("index.jsp").forward(req, resp);

  }

  }

  }

Spring登录实例的更多相关文章

  1. Spring Security4实例(Java config版)——ajax登录,自定义验证

    本文源码请看这里 相关文章: Spring Security4实例(Java config 版) -- Remember-Me 首先添加起步依赖(如果不是springboot项目,自行切换为Sprin ...

  2. Spring Security4实例(Java config 版) —— Remember-Me

    本文源码请看这里 相关文章: Spring Security4实例(Java config版)--ajax登录,自定义验证 Spring Security提供了两种remember-me的实现,一种是 ...

  3. SSO 基于CAS实现单点登录 实例解析(二)

    本文目录: 概述 演示环境 部署CAS-Server相关的Tomcat 部署CAS-Client相关的Tomcat 测试验证SSO 第一: 本demo在一个机器上实现(三个虚拟主机),来看SSO单点登 ...

  4. SSO单点登录学习总结(3)—— 基于CAS实现单点登录实例

    第一: 本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们可以布到多个机器上使用都是同一个道理的),一个服务器主机,和两个客户端虚拟主机 [html] view plaincop ...

  5. spring应用实例

    新建一个登陆页面:loginActionSupport.jsp,代码例如以下   <%@page contentType="text/html;charset=GBK" is ...

  6. SSO之CAS单点登录实例演示

    本文目录: 一.概述 二.演示环境 三.JDK安装配置 四.安全证书配置 五.部署CAS-Server相关的Tomcat 六.部署CAS-Client相关的Tomcat 七. 测试验证SSO 一.概述 ...

  7. spring得到实例和new一个实例,哪个快?

    spring配置的bean是默认单例,那么在程序中,得到一个实例一定比创建一个实例的速度快,也更加省资源.今天实际测试的时候发现,new 一个对象比spring得到一个对象快多了.后面自己又加了个单例 ...

  8. Struts2自定义拦截器Interceptor以及拦截器登录实例

    1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor ...

  9. 基于CAS的SSO(单点登录)实例

    第一步 部署CAS-Server(服务端) 1.从CAS官方网站(http://developer.jasig.org/cas/)下载最新版本的CAS-Server(当前最新版本cas-server- ...

随机推荐

  1. liteos动态加载(十三)

    1. 概述 1.1 基本概念 动态加载是一种程序加载技术. 静态链接是在链接阶段将程序各模块文件链接成一个完整的可执行文件,运行时作为整体一次性加载进内存.动态加载允许用户将程序各模块编译成独立的文件 ...

  2. nginx 图片访问404 (使用location中使用 root,alias的区别)

    问题描述: 在/data/code_img/文件下有很多验证码图片,想将他们展示出来 希望通过 http://127.0.0.1/img/1.png 这种形式访问到对应图片,刚开始nginx中配置如下 ...

  3. Misc-不简单的压缩包

    题目下载地址 https://ctf.bugku.com/files/e5a937a3985f5264a723bcbd0e062b0f/zip 友情连接同时也是网上看到的第一份关于这题的writeup ...

  4. python 异常try/except语句

    异常模式的写法 try: 执行正常的模块 except X: 执行异常X的代码 except: 其他的异常执行模块except 必须在except X之后 else: 没有异常,则会执行完try,而后 ...

  5. appium Ui自动化调起应用点击

    appium Ui自动化调起微信并点击登录按钮的java代码(对的,就这么一丢丢). public class testWX { public static void main(String[] ar ...

  6. 【Ribbon篇四】Ribbon核心组件IRule(3)

    Ribbon在工作时分为两步: 先选择 EurekaServer,它优先选择在同一个区域内负载较少的Server: 再根据用户指定的策略,在从Server取到的服务注册列表中选择一个地址: 其中Rib ...

  7. scala java 混合编译配置

    参考:https://www.jianshu.com/p/f20550cd1067 pom.xml 配置 <build> <plugins> <plugin> &l ...

  8. Potyczki Algorythmiczne 2019

    Runda próbna: A + B 设$f[i]$表示两数相加得到前$i$位的方案数,由$f[i-1]$和$f[i-2]$转移得到. #include<cstdio> #include ...

  9. Dockerfile命令整理

    通过Dockerfile只做Docker镜像时,需要用到Dockerfile的命令,收集整理如下,以便后续翻阅参考. FROM 功能为指定基础镜像,并且必须是第一条指令. 如果不以任何镜像为基础,那么 ...

  10. 记录几篇PM文章

    今日阅读了几篇关于 PM 的文章感觉还不错,整理.摘录于此: 1.[项目经理和产品经理:https://www.cnblogs.com/joylee/p/3541141.html] ——关于二者的异同 ...