【spring】集成Web、druid、jdbcTemple实现免登录时长两天半

这篇具有很好参考价值的文章主要介绍了【spring】集成Web、druid、jdbcTemple实现免登录时长两天半。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CSDN话题挑战赛第2期
参赛话题:学习笔记

*学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?

🌕博客x主页:己不由心王道长🌕!
🌎文章说明:spring🌎
✅系列专栏:spring
🌴本篇内容:使用spring、web监听器、过滤器+servlet+druid+mybatis实现免登录时长两天半(对所需知识点进行选择阅读呀~)🌴
☕️每日一语:人生寂寞是一种力量。人经得起寂寞,就能获得自由;耐不住寂寞,就会受人牵制。☕️
🕤作者详情:作者是一名双非大三在校生,喜欢Java,欢迎大家探讨学习,喜欢的话请给博主一个三连鼓励。🕤

🚩前言

  • 凡事自己多动手动脑、听取他人优秀的观点,做一个会学习的人。
🚩一、创建项目框架

在这里创建一个maven工程,选择web模板,JDK选择1.8:

druid不用登录直接进去,spring,spring,前端,java

创建maver工程以后,可能目录结构并不完整,接下来我们要构建一个完整的目录结构,只有完整的目录结构,在后面部署在tomcat服务器上时才能正常使用。

补全maven目录结构:打开项目—>找到src目录—>选中右键—>选择新建(new)—>选择目录—>重复四次,直到把目录补全。

druid不用登录直接进去,spring,spring,前端,java
druid不用登录直接进去,spring,spring,前端,java

至此我们就完全了一个工程的创建。

🚩二、导入前端页面资源

要实现免登录时长两天半,我们得找到前端资源,并导入我们的项目中。

前端资源怎么找?我这里提供了本次项目的前端资源,需要的可以私信我。或者直接搜索jQuery之家也可以获取相应资源

导入到哪里? 导入到项目下的Webapp目录下
druid不用登录直接进去,spring,spring,前端,java

前端效果展示

druid不用登录直接进去,spring,spring,前端,java
druid不用登录直接进去,spring,spring,前端,java

前端页面分析:可以看到两个页面是相互跳转的,当在登录页面填好密码和账号以后,点击登录就会向下经过Web层调控,然后调用Sevice。。。往下查询数据库并返回查询结构,有用户存在则跳转到欢迎页,没有则跳转登录页。相应的注册成功之后也跳转到登录页面。在这个过程中使用过滤器过滤,没有登录则不能访问欢迎页,访问则直接跳转到登录页。
druid不用登录直接进去,spring,spring,前端,java
通过分析,前端页面要执行的主要操作有两个个。一个是登录(login)、一个是注册(register)。

druid不用登录直接进去,spring,spring,前端,java

🚩三、pom.xml依赖坐标导入

在原先免登录时长两天半的依赖上,本次结合了spring方法,使用的是xml格式开发项目。需要导入spring依赖、测试依赖和spring集成web依赖。

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>spring-web</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
<!--    添加测试依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

<!--    添加mybatis依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
<!--   添加servlet依赖-->
      <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>

      <!--    添加MySQL依赖-->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.29</version>
      </dependency>

      <!--    添加jsp依赖-->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.2.1</version>
      <scope>provided</scope>
    </dependency>
   <!--   添加el表达式依赖-->
      <dependency>
          <groupId>javax.el</groupId>
          <artifactId>javax.el-api</artifactId>
          <version>3.0.0</version>
      </dependency>
<!--      添加jstl标签库依赖-->
      <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>jstl-api</artifactId>
          <version>1.2</version>
      </dependency>

      <!--添加druid依赖-->
      <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.1.10</version>
      </dependency>
     <!--添加spring依赖、添加core就行了。core包含了依赖注入和控制反转-->
      <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>5.3.22</version>
      </dependency>
      <!--添加spring-web集成-->
      <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.3.22</version>
      </dependency>

  </dependencies>

</project>

🚩四、Web层(controller)层搭建

通过上面的分析,我们先创建两个servlet,即LoginServlet、RegisterServlet。实现对应接口,重写doGet、doPost方法,并在doPost方法中调用doGet方法。
druid不用登录直接进去,spring,spring,前端,java

🚩五、Spring、Spring集成Web

要使用Spring、大致分为以下几步:

导入Spring依赖坐标: pom.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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

</beans>

Spring集成Web也分为下面几步:
导入Spring-web依赖坐标: pom.xml文件已经导入完毕。
druid不用登录直接进去,spring,spring,前端,java

配置ContextLoaderListener监听器
首先思考一个问题一个问题,我们要用到Spring,那么Spring总得创建吧?怎么创建呢?是调用一次就new一次吗?显然不是,那到底什么时候创建,放在什么地方才能保存持久!!!?
答:使用监听器在加载项目的时候创建,存储在应用域,应用域范围广
druid不用登录直接进去,spring,spring,前端,java

在web层调用Spring

怎么获取Spring的上下文对象,Spring-Web提供了一个工具WebApplicationContextUtils供使用者获得应用上下文对象,想使用,直接调用,一遍获取前面都要加一个get,所以方法是getApplicationContext

package com.bipt.controller;


import com.bipt.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* @author 不止于梦想
* @date 2022/10/7 22:55
*/
public class LoginServlet extends HttpServlet {
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //获取servletContext上下文对象、Spring容器创建保留在这里。
       ServletContext servletContext = this.getServletContext();
       //获取spring容器、传入servletContext上下文对象
       ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);
       //调用容器内的方法、获取容器内的对象
       UserService userService = app.getBean(UserService.class);

   }

   @Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       this.doGet(req, resp);
   }
}

至此,完成了Spring和Web的集成。

🚩六、Spring控制反转和依赖注入
控制反转IOC

控制反转是Spring的一个特性,以前的对象是我们自己创建的,想要的时候就new一个。现在用到Spring、Spring是一个大容器,我们把对象的创建交给Spring,当加载Spring配置文件时,就会创建相应的bean对象,并且保存在Spring容器中。
druid不用登录直接进去,spring,spring,前端,java

值得注意的是,id在Spring当中作为唯一标识、用来识别不同的bean,id不能相同!!
同一个类型可以创建多个,但要调整scope(范围),scope里常用的singleton(单例)prototype(多例)。创建多个相同类型时,scope设置为prototype。默认情况下是singleton(单例)。

依赖注入DI

用到spring,可以对程序进行解耦合,但不代表没有联系。在Service层中想要调用Mapper层的方法,在过去要在Service层中添加Mapper层对象作为属性,这属于代码层面的绑定死。

上面的绑定死肯定不是我们要的,那么怎么办?通过Spring 依赖注入(DI)把相应的需求在配置文件中进行设置,把耦合关系从代码中抽离出来。在配置文件中,我们需求改变的时候可以直接修改配置文件,而不用修改源代码,这符合软件设计的原则
druid不用登录直接进去,spring,spring,前端,java

🚩七、Spring整合druid数据库连接池和加载jdbcTemple

druid(德鲁伊)数据库连接池是一个优秀的工具,在这里我们整合其作为我们的一部分。同样的,第一部分也是导入相应的位置坐标。
druid不用登录直接进去,spring,spring,前端,java
然后在spring核心配置文件进入bean导入,这样就可以在启用时创建在ioc容器当中。
druid不用登录直接进去,spring,spring,前端,java
这里我配置了一个jdbc.properties配置文件做为存储jdbc代码的地方。当然,这里不配置也没事。没有配置则直接在value处添加相应数据。例如在name=driver的property中的value也可以为:com.mysql.jdbc.driver
如果配置了配置文件,就把它引进来即可,然后像上面一样依次取值。

加载jdbcTemple

同样的,需要导入相应坐标,这个是spring关于jdbc的一个模板工具。

druid不用登录直接进去,spring,spring,前端,java
然后配置:
druid不用登录直接进去,spring,spring,前端,java
值得注意的是这个bean的参数name也叫dataSource,而ref后的dataSource是上面druid配置数据源的信息。
至此,已经把druid、jdbcTemple与spring整合好了。

🚩八、集成Web、druid、jdbcTemple实现免登录时长两天半

至此,进入我们最后一步,具体的实现各个层面的应用。

pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>spring-web</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
<!--    添加测试依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

<!--    添加mybatis依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
<!--   添加servlet依赖-->
      <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>

      <!--    添加MySQL依赖-->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.29</version>
      </dependency>

      <!--    添加jsp依赖-->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.2.1</version>
      <scope>provided</scope>
    </dependency>
   <!--   添加el表达式依赖-->
      <dependency>
          <groupId>javax.el</groupId>
          <artifactId>javax.el-api</artifactId>
          <version>3.0.0</version>
      </dependency>
<!--      添加jstl标签库依赖-->
      <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>jstl-api</artifactId>
          <version>1.2</version>
      </dependency>

      <!--添加druid依赖-->
      <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.1.10</version>
      </dependency>
     <!--添加spring依赖、添加core就行了。core包含了依赖注入和控制反转-->
      <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>5.2.5.RELEASE</version>
      </dependency>

      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
      </dependency>
      <!--添加spring-web集成-->
      <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.2.5.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>5.2.5.RELEASE</version>
          <scope>compile</scope>
      </dependency>

      <!-- spring事务依赖 -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>5.2.5.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>5.2.5.RELEASE</version>
      </dependency>

  </dependencies>

</project>
 
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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!--控制反转+依赖注入-->
    <bean id="UserMapper" class="com.bipt.mapper.impl.implUserMapper">
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>
    <bean id="UserService" class="com.bipt.service.implService.ImplUserService">
        <property name="userMapper" ref="UserMapper"></property>
    </bean>
   <!--加载导入配置文件-->
    <context:property-placeholder location="classpath:/dbConfig.properties"/>
    <!--配置数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>
    <!--配置jdbcTemplate-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
</beans>

🚩总结

在这次的实践中,发现了很多问题,有的问题还有待修复,但是总体完成了。需要源原件的可以联系博主。**文章来源地址https://www.toymoban.com/news/detail-639657.html

到了这里,关于【spring】集成Web、druid、jdbcTemple实现免登录时长两天半的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Gateway集成Swagger实现微服务接口文档统一管理及登录访问

    本文将介绍如何在 Spring Cloud 微服务中使用 Swagger 网关来统一管理所有微服务的接口文档,并通过 Spring Security 实现登录后才能访问 Swagger 文档,以确保接口数据的安全访问。 在开始之前,需要假设你已经完成了 Spring Cloud Gateway 的相关配置,并且已经了解了基本的网关配置知

    2024年02月05日
    浏览(31)
  • Spring Boot:Web应用开发之登录与退出的实现

    登录与退出功能作为 Web 应用中的基础且重要的组成部分,直接关系到用户的安全和隐私保护。通过实现登录与退出功能,可以对用户的身份进行验证和授权,确保只有合法的用户才能访问特定的资源或执行特定的操作。同时,退出功能也为用户提供了便捷的方式来结束当前

    2024年04月23日
    浏览(20)
  • Spring Authorization Server入门 (十三) 实现联合身份认证,集成Github与Gitee的OAuth登录

    什么是联合身份认证?       通过Spring Security OAuth2 Client(Login)模块集成第三方登录至自己的认证服务中,使用联合身份认证只需要请求认证服务,不通过前端来跳转三方的授权申请链接,而是统一通过认证服务来跳转,只需要维护Spring Authorization Server中身份认证提供商

    2024年02月05日
    浏览(35)
  • Spring Boot + Druid 实现监控 MySQL 性能,简单又实用!

    来源:blog.csdn.net/lvoelife/article/details/128092586 我们都使用过连接池,比如 C3P0,DBCP,hikari, Druid ,虽然HikariCP的速度稍快,但Druid能够提供强大的监控和扩展功能,也是阿里巴巴的开源项目。 Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,

    2024年02月11日
    浏览(32)
  • SpringBoot项目集成Druid

    本文将介绍Druid的相关内容以及项目如何集成Druid,请多多指教。 Druid是阿里开源的一个数据库连接池的解决方案。它本身还自带一个监控平台,可以查看时时产生的sql、uri等监控数据,可以排查慢sql、慢请求,方便对sql和项目代码进行调优。 1.1数据库连接池 数据库连接池是

    2024年02月10日
    浏览(35)
  • Springboot集成 Druid

    Druid是一个开源的数据库连接池和SQL查询优化工具,用于提高应用程序对数据库的性能和可扩展性。主要提供的功能:数据库连接池、数据库连接池监控、SQL查询优化、数据源管理、防御SQL注入、统计和监控。 注意:SpringBoot2.0默认是用com.zaxxer.hikari.HikariDataSource作为数据源。

    2024年02月02日
    浏览(27)
  • Spring Boot整合Druid(druid 和 druid-spring-boot-starter)

    引言 在现代的Web应用开发中,高性能的数据库连接池是确保应用稳定性和响应性的关键因素之一。Druid是一个开源的高性能数据库连接池,具有强大的监控和统计功能,能够在Spring Boot应用中提供出色的数据库连接管理。本文将研究在Spring Boot中集成Druid连接池的步骤,以及如

    2024年01月19日
    浏览(53)
  • 后端项目开发:集成Druid数据源

    Druid作为连接池中间件可以监控数据库访问性能,对数据库密码加密,查看SQL执行日志,扩展JDBC。 添加依赖 参考官方文档:https://github.com/alibaba/druid/wiki 更多配置参考:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter 启动应用:访问http://localhost:8001/druid/login.html查看监

    2024年02月11日
    浏览(34)
  • 若依微服务集成CAS,实现单点登录

    若依(RuoYi)微服务是一款基于Spring Cloud Alibaba开发的企业级微服务框架,采用前后端分离方式,使用了常用的微服务组件,如Feign、Nacos、Sentinel、Seata等,提供了丰富的微服务治理功能,如服务注册、发现、路由、负载均衡、熔断降级、限流等。借助若依微服务框架可以让我

    2024年02月12日
    浏览(29)
  • Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成

    目录 1. 什么是spring,它能够做什么? 2. 什么是控制反转(或依赖注入) 3. AOP的关键概念 4. 示例 4.1 创建工程 4.2 pom文件 4.3 spring配置文件 4.4 示例代码 4.4.1 示例1 4.4.2 示例2 (abstract,parent示例) 4.4.3 使用有参数构造方法创建javaBean 4.4.4 init-method:指定bean的初始化方法 4.4.5 复杂属

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包