SSM整合简单登录案例

[1] 在数据库中创建用户信息表

在这里插入图片描述

[2] 搭建SSM开发环境

  1. 使用idea创建登录功能的web项目
    在这里插入图片描述

  2. 在web-inf目录下创建lib文件夹,并导入SSM的jar包.
    在这里插入图片描述

  3. 在src下创建MVC的包结构
    在这里插入图片描述

  4. 在src下创建并配置SSM的xml文件
    ① applicationcontext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"default-autowire="byName"><!--属性文件扫描--><context:property-placeholder location="classpath:db.properties"></context:property-placeholder><!--配置注解扫描--><context:component-scan base-package="com.bjsxt.service.impl"></context:component-scan><!--配置数据源bean--><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${mysql.driver}"></property><property name="url" value="${mysql.url}"></property><property name="username" value="${mysql.username}"></property><property name="password" value="${mysql.password}"></property></bean><!--配置工厂bean--><bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean"></bean><!--配置Mapper扫描bean--><bean id="mapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="factory"></property><property name="basePackage" value="com.bjsxt.mapper"></property></bean><!--配置事务管理bean--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"></bean><!--配置事务管理方法--><tx:advice id="advice" transaction-manager="transactionManager"><tx:attributes><tx:method name="sel*" read-only="true"/><tx:method name="ins*"/><tx:method name="up*"/><tx:method name="del*"/></tx:attributes></tx:advice><!--配置事务管理切面--><aop:config><aop:pointcut id="mp" expression="execution(* com.bjsxt.service.impl.*.*(..))"/><aop:advisor advice-ref="advice" pointcut-ref="mp"></aop:advisor></aop:config>
</beans>

② db.properties

mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/502
mysql.username=root
mysql.password=1234

③ log4j.properties


log4j.rootCategory=infolog4j.logger.com.bjsxt.mapper=debug, CONSOLE,LOGFILE
log4j.logger.com.bjsxt.advice=debug, CONSOLE,LOGFILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %c-%d-%m%nlog4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=D:/axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %c-%d-%m%n

④ springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--配置注解扫描--><context:component-scan base-package="com.bjsxt.controller"></context:component-scan><!--配置注解解析器--><mvc:annotation-driven></mvc:annotation-driven><!--配置静态资源放行--><mvc:resources mapping="/js/**" location="/js/"></mvc:resources><mvc:resources mapping="/css/**" location="/css/"></mvc:resources><mvc:resources mapping="/images/**" location="/images/"></mvc:resources>
</beans>
  1. 配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><!--配置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><!--配置SpringMVC的Servlet--><servlet><servlet-name>mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>mvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--配置编码过滤器--><filter><filter-name>code</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>code</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

[3] 实现登录功能

  1. 创建登录页面(简单的login.jsp)
<%--Created by IntelliJ IDEA.User: wyyDate: 2021/6/28Time: 16:05
--%>
<%String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><base href="<%=basePath %>"/><title>Title</title>
</head>
<body><h3>SSM整合案例之简单登录</h3><hr><form action="userLogin">用户名: <input type="text" name="uname" value=""><br>密码: <input type="password" name="pwd" value=""><br><input type="submit" value="登录"></form>
</body>
</html>
  1. 创建控制器类,并声明处理登录请求的单元方法
package com.bjsxt.controller;import com.bjsxt.pojo.User;
import com.bjsxt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class UserController {//声明业务层属性@Autowiredprivate UserService userService;//声明单元方法:处理登录请求@RequestMapping("userLogin")public String userLogin(String uname,String pwd){//处理请求User user = userService.selUserInfoService(uname, pwd);//响应结果if(user!=null){return "redirect:/main.jsp";}else{return "redirect:/login.jsp";}}}
  1. 创建登录业务代码
package com.bjsxt.service;import com.bjsxt.pojo.User;public interface UserService {//登录业务方法User selUserInfoService(String uname, String pwd);
}
package com.bjsxt.service.impl;import com.bjsxt.mapper.UserMapper;
import com.bjsxt.pojo.User;
import com.bjsxt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl implements UserService {//声明mapper层属性@Autowiredprivate UserMapper userMapper;//登录业务方法@Overridepublic User selUserInfoService(String uname, String pwd) {return userMapper.userLoginMapper(uname,pwd);}
}
  1. 创建登录mapper层代码
package com.bjsxt.mapper;import com.bjsxt.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;public interface UserMapper {//用户登录@Select("select * from t_user where uname=#{uname} and pwd=#{pwd}")User userLoginMapper(@Param("uname") String uname,@Param("pwd") String pwd);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19级、20级:班级日常分享,一天一瞬间

点击上方蓝色关注我们&#xff01;由于近期班级里面总是有或大或小的问题&#xff0c;所以就和丁老师商量的制定了长达29条的班规&#xff0c;昨天利用下午上课的时间在班内逐条讲解。因为班规是以安全、学习、道德以及身心健康为中心出发的&#xff0c;所以条条都合理&#xf…

同步VS异步

同步异步 &#xff0c; 举个例子来说&#xff0c;一家餐厅吧来了5个客人&#xff0c;同步的意思就是说&#xff0c;来第一个点菜&#xff0c;点了个鱼&#xff0c;好&#xff0c; 厨师去捉鱼杀鱼&#xff0c;过了半小时鱼好了给第一位客人&#xff0c;开始下位一位客人&#xf…

面向 Visual Studio 开发者的 Git 内部源代码

在我撰写的 Git DevOps 文章 (msdn.com/magazine/mt767697) 中&#xff0c;我介绍了 Git 版本控制系统 (VCS) 与可能已经很熟悉的集中式 VCS 的区别。然后&#xff0c;我演示了如何在 Visual Studio 中使用 Git 工具完成一些 Git 任务。在本文中&#xff0c;我将汇总 Git 在新发…

Intellij IDEA神器居然还有这些小技巧

转载自 Intellij IDEA神器居然还有这些小技巧 Intellij IDEA真是越用越觉得它强大&#xff0c;它总是在我们写代码的时候&#xff0c;不时给我们来个小惊喜。出于对Intellij IDEA的喜爱&#xff0c;我决定写一个与其相关的专栏或者系列&#xff0c;把一些好用的Intellij IDE…

SpringMVC中使用作用域对象完成数据的流转

文章目录SpringMVC中使用作用域对象完成数据的流转[1] 作用域对象复习[2] SpringMVC中使用作用域对象流转数据[3] SpringMVC的Model对象的使用SpringMVC中使用作用域对象完成数据的流转 [1] 作用域对象复习 PageContext对象 作用域范围:当前jsp页面内有效request对象 作用域范…

为什么总是喜欢看我桌面呢?

点击上方蓝色关注我们&#xff01;每天上课&#xff0c;尤其是19级&#xff0c;在刚刚连接上投影仪的那一瞬间&#xff0c;差不多50双眼睛盯着我的桌面看&#xff0c;由于桌面上的字比较小&#xff0c;所以大家眼睛都不带的眨一下的。我的桌面也没啥好看的呀&#xff0c;不就是…

原码,反码,补码

原码就是符号位加上真值的绝对值&#xff0c; 即用第一位表示符号&#xff0c; 其余位表示值。 反码的表示方法是:正数的反码是其本身&#xff1b;负数的反码是在其原码的基础上&#xff0c; 符号位不变&#xff0c;其余各个位取反。 补码的表示方法是:正数的补码就是其本身&am…

【2018.3.10】模拟赛之三-ssl2576 平台

目录地址 前言 水题不想说&#xff0c;连自带快排都懒得用了 正题 有n个平台&#xff0c;每个平台头尾有两根柱子支撑到地板或另一个平台上&#xff0c;求支撑平台需要的柱子数 输入输出&#xff08;需要自取&#xff09; Input 输入文件platforme.in第一行包括1个整数N…

再谈消息队列技术

上周&#xff0c;我们举办了第二届技术沙龙&#xff0c;我这边主要演讲了消息队列技术的议题&#xff0c;现分享给大家&#xff1a; 在我们团队内部&#xff0c;随着消息应用中心&#xff08;任务中心&#xff09;的广泛应用&#xff0c;有时候我们感觉不到消息队列的存在&…

20级:班级日常分享,一天一瞬间

点击上方蓝色关注我们&#xff01;今天批改的作业不仅仅是卡个印有“优”字样式的章&#xff0c;当然也不仅仅是用红笔写个“SSSS9.28”字样的批语了。除了给每个学生的作业本上都卡了“优”的章之外&#xff0c;还送给每位同学一句或长或短的话&#xff0c;有表扬有批评&#…

SpringMVC的视图解析器

文章目录SpringMVC的自定义视图解析器[1] SpringMVC的视图解析器[2] SpringMVC的自定义视图解析器SpringMVC自定义视图解析器的使用[1] 目前项目资源的声明位置和访问中存在的问题[2] 使用自定义视图解析器优化资源跳转路径[3] 使用restful声明公共单元方法请求转发WEB-INF下的…

互联网级监控系统必备-时序数据库之Influxdb技术

时间序列数据库&#xff0c;简称时序数据库&#xff0c;Time Series Database&#xff0c;一个全新的领域&#xff0c;最大的特点就是每个条数据都带有Time列。 时序数据库到底能用到什么业务场景&#xff0c;答案是&#xff1a;监控系统。 Baidu一下&#xff0c;互联网监控系…

存放80000000学生成绩的集合,怎么统计平均分性能高

大家好&#xff0c;我是雄雄&#xff0c;好久不介绍一下我&#xff0c;就被大家淡忘了……我们都知道&#xff0c;遍历集合的方式最常用的有两种&#xff0c;一种是使用下标的方式遍历&#xff0c;第二种便是使用foreach遍历&#xff0c;代码分别如下&#xff1a;使用下标的方法…

数组元素的默认值

数组元素的默认值 数组元素是整型&#xff1a;0 数组元素是浮点型&#xff1a;0.0 数组元素是char型&#xff1a;0或’\u0000’&#xff0c;而非’0’ 数组元素是boolean型&#xff1a;false 数组元素是引用数据类型&#xff1a;null eg 非数组元素必须初始化后才能进行使用…

如何重构箭头型代码

转载自 如何重构"箭头型"代码 本文主要起因是&#xff0c;一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论&#xff0c;在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功&#xff0c;似乎不太值得写一篇文章&#xff0c;不过我…

SpringMVC的上传与下载

文章目录SpringMVC的上传SpringMVC的下载SpringMVC的上传 [1] 上传的功能需求 随着我们互联网的发展&#xff0c;我们的用户从直接访问网站获取信息。变为希望将自己本地的 资源发送给服务器&#xff0c;让服务器提供给其他人使用或者查看。还有部分的用户希望可以将 本地的资…

中秋节支付宝口令红包解析

大家好&#xff0c;我是雄雄。继上篇文章&#xff08;10.1日&#xff09;发完之后就没有再日更公众号了&#xff0c;给自己也放几天假。这个假期实在是太太太长了&#xff0c;放的我都心气憔悴&#xff01;出去玩吧&#xff0c;没地儿去&#xff0c;在家吧&#xff0c;除了看书…

asp.net core高级应用:TagHelper+Form

上一篇博客《asp.net core新特性(1):TagHelper》我讲解了TagHelper的基本用法和自定义标签的生成&#xff0c;那么我就趁热打铁&#xff0c;和大家分享一下TagHelper的高级用法~~&#xff0c;大家也可以在我的博客下随意留言。对于初步接触asp.net core的骚年可以看看我对TagHe…

爸妈没多大本事……

本文原创&#xff1a;王晓丹世界上什么都不公平&#xff0c;唯独时间最公平&#xff0c;你是懒惰还是勤奋&#xff0c;时间都会给出结果。每个人都是孤独的&#xff0c;你的人生不会辜负你的。那些流下的泪和那些辛苦的汗水 全都让你成为一个独一无二的自己。把懒惰放一边 &…