您的位置 首页 java

通过Spring练习验证登入的功能

通过Spring练习验证登入的功能

第一步、导环境支持的Java包

jar包

导入Java包

第二、编写web.xml(加载Spring的配置文件)

通过监听器实现启动加载

<?xml version=”1.0″ encoding=”UTF-8″?><web-app xmlns:xsi=”#34; xmlns=”#34; xsi:schemaLocation=” #34; version=”3.1″> <!–当tomcat加载web.xml时,把spring 配置文件信息存储放在application对象中 –> <!– webapplicationcontext 容器, 是ApplicationCntext子接口 –> <!– 设置Spring文件配置路径–> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!– 加载Spring配置文件 –> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener></web-app>

第三、写applicationContext.xml配置

1.获取数据源

<!–获取数据源 –> <bean id=”dataSource” class=”org.springframework.jdbc.datasource.DriverManagerDataSource”> <property name=”driverClassName” value=”com.mysql.jdbc.Driver”></property> <property name=”url” value=”jdbc:mysql://localhost:3306/ssm”></property> <property name=”username” value=”root”></property> <property name=”password” value=”123456″></property> </bean>

2.创建SpringSql数据对象Factory(Mybatis-spring封装)

<!–Spring帮助创建SQL sessionFactory –> <bean id=”factory” class=”org.mybatis.spring.SqlSessionFactoryBean”> <property name=”dataSource” ref=”dataSource”></property> </bean>

3.扫描器,扫描接口,并创建接口对象

告诉扫描器扫描哪个 包 类型为String类型

告诉扫描器 Mybatis 有session.getmapper工厂对象

类型为—-sqlSessionFactory : SqlSessionFactory

<!–扫描器,扫描接口,并创建接口对象 –> <bean class=”org.mybatis.spring.mapper.MapperScannerConfigurer”> <property name=”basePackage” value=”com.wq.mapper”></property> <property name=”sqlSessionFactory” ref=”factory”></property> </bean>

到此,总体环境搭建完成了

第四、数据库设计

CREATE TABLE users( id INT(10) PRIMARY KEY auto_increment, username VARCHAR(20) UNIQUE, password VARCHAR(20))INSERT INTO users VALUES(DEFAULT,’张三’,’123′)

第五、写逻辑代码

1.创建实体类对象

package com.wq.pojo;public class User { private int id; private String username; private String password;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 getPassword() { return password;}public void setPassword(String password) { this.password = password;} }

2.建立mapper接口(注解和配置文件写都是可以的)

package com.wq.mapper;import org.apache.ibatis.annotations.Select;import com.wq.pojo.User;public interface Usersmapper { @Select(“select * from users where username=#{username} and password=#{password}”) User selByUsersPwd(User users);}

3.service逻辑层代码接口+实现’

package com.wq.service;import com.wq.pojo.User;public interface UsersService { /** * 登入 * @param users * @return */ User login(User users);}

这里用到设值注入

package com.wq.service.impl;import com.wq.mapper.Usersmapper;import com.wq.pojo.User;import com.wq.service.UsersService;public class UsersServiceImpl implements UsersService { private Usersmapper usersmapper; public Usersmapper getUsersmapper() { return usersmapper; } public void setUsersmapper(Usersmapper usersmapper) { this.usersmapper = usersmapper; } @Override public User login(User users) { // TODO Auto-generated method stub return usersmapper.selByUsersPwd(users); }}

在Spring配置文件配置环境-com.wq.service.UsersService

通过查询数据库将其set到service中获取查询数据

4.控制器Servlet代码

获取Spring逻辑对象 通过init初始化代码

验证码(输入与图形对比)

package com.wq.Servlet;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 org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import com.wq.pojo.User;import com.wq.service.UsersService;import com.wq.service.impl.UsersServiceImpl;/** * Servlet implementation class LoginServlet */@WebServlet(name = “login”, urlPatterns = { “/login” })public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; private UsersService usersService; @Override public void init() throws ServletException { ApplicationContext ac=WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); usersService = ac.getBean(“usersService”,UsersServiceImpl.class); } protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding(“utf-8”); String codString=req.getParameter(“code”); String codession = req.getSession().getAttribute(“code”).toString(); System.out.println(codession); System.out.println(codString); if(codession.equals(codString)){ String usernameString=req.getParameter(“username”); String passwordString=req.getParameter(“password”); User users=new User(); users.setUsername(usernameString); users.setPassword(passwordString); User 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); } }}

验证码不正确

密码不正确

登入成功

index.jsp

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%><%@ taglib prefix=”c” uri=”#34; %><%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> <base href=”<%=basePath%>”> <title>My JSP ‘index.jsp’ starting page</title> <meta http-equiv=”pragma” content=”no-cache”> <meta http-equiv=”cache-control” content=”no-cache”> <meta http-equiv=”expires” content=”0″> <meta http-equiv=”keywords” content=”keyword1,keyword2,keyword3″> <meta http-equiv=”description” content=”This is my page”> <!– <link rel=”stylesheet” type=”text/css” href=”styles.css”> –> <script type=”text/javascript” src=”js/jquery-1.7.2.js”></script> <script type=”text/javascript”> $(function(){ $(“a”).click(function(){ //浏览器带有缓存功能,不会多次请求相同数据 ?date= +new DataView() /* $(“img”).attr(“src”,”vcs?date=”+new DataView()); */ $(“img”).attr(“src”,”vcs?number=”+Math.random());//实现局部刷新 return false; }) }) </script> </head> <body> <!– <img alt=”” src=”demo”>直接返回一个Servlet的图片流 访问静态资源和访问控制器的结果都是一样的—一个是静态访问图片路径——另一个是动态获取图片流 –> ${error } <form action=”login” method=”post”> 用户名:<input type=”text” name=”username”/><br> 密码:<input type=”password” name=”password”/><br> 验证码:<input type=”text” size=”4″ name=”code”/><img alt=”” src=”vcs” width=”80″ height=”40″><a href=””>看不清</a><br> <input type=”submit” value=”登入” /><input type=”reset” value=”重置”> </form> </body></html>

文章来源:智云一二三科技

文章标题:通过Spring练习验证登入的功能

文章地址:https://www.zhihuclub.com/186898.shtml

关于作者: 智云科技

热门文章

网站地图