【Spring+SpringMVC+Mybatis】利用SSM整合,完成用户登录、注册、修改密码系统

基于Spring MVC + Spring + MyBatis的【超市会员管理系统】 先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。(7)创建业务逻辑相应的接口及其实现类,实现相应的业务,并在类中加入对DAO/Mapper的引用和注入。(5)创建业务处理层,在其中定义业务方法,实现系统需求,在这些业务方法中需要执行DAO方法。(1)按以上数据库要求建库、建表,并添加测试数据(不少于5条,测试数据不需要和上图一致)。(1)创建数据库,创建数据表,添加测试数据(不少于5条,测试数据不需要和上图一致)。... 阅读详情

 版权声明:本文为博主原创文章,未经博主允许,欢迎随意转载,标好作者+原文地址就可以了!感谢欣赏!觉得好请回个贴! https://blog.youkuaiyun.com/yongh701/article/details/78571831
 

近年来,由于Struts2+Hibernate3+Spring3,这套SSH框架,Struts2屡次爆出安全漏洞,Hibernate就只会推行它HQL那套而越来越远离SQL查询关系数据库的本质,所以Spring+SpringMVC+Mybatis这套SSM框架悄然兴起,现阶段在Javaee领域,有种新项目必选SSM的趋势。本文将利用一个简单的例子,具体如下图所示,其实也就是把《【Struts2+Hibernate3+Spring3】利用SSH整合,完成打印用户表,用户登录、注册、修改密码系统》(点击打开链接)中的SSH例子再用SSM再做一次,同时视图尽可能地不杂糅其它技术,以最短的代码,给大家展示Spring、SpringMVC、Mybatis三者整合的例子。

一、SSM的下载和配置

在Eclipse新建一个JavaEE的Dynamic Web Project估计已经不用说了,接下来我就不用什么Maven了,自己配好所有必须的jar包,具体如下。

1、Spring和SpringMVC的下载和配置

其实Spring和SpringMVC所用的jar包都是相同的,毕竟Spring他希望自己一套吃遍Java的所有领域,但Spring做Java和xml交互、近年来SpringMVC做Java和JSP的交互做得最为突出,所以流行起来了。

Spring3.x的使用首先需要commons-logging-1.2.jar这玩意,这个commons-logging-1.2.jar是所有jar的前提,不然,你的java应用只有jar的话,spring根本启动不了,最直接的表现是配置了spring的javaee应用的tomcat启动不来。

所以,你要先下载commons-logging-1.2.jar。这玩意直接在Apache Tomcat的官网有,不是很明白为何不直接搞到Tomcat里面。

官网是:http://commons.apache.org/proper/commons-logging/download_logging.cgi

下载之后解压,直接取走里面的commons-logging-1.2.jar到你的java应用。

commons-logging-1.2-javadoc.jar是个API说明文档,并没有什么卵用。

接下来,才是下载Spring3.x。Spring的包全部放到http://repo.spring.io/里面了,在Spring的官网,http://spring.io你只会看到你并希望Maven下载和一大堆说明文档,顶多是最新版Github托管而已。

进入了spring的资源库之后,如下图,找到libs-release-local(这spring都不知道怎么想的,堂堂的javaee大厂,资源库里面的东西竟然不是按a-z排的)->org->springframework->spring->3.2.18 release然后选择右上角的download,下载Spring3.x的最终稳定版。

下载之后解压,在libs中,取走所有最终应用,关于API说明*-javadoc.jar、源代码*-sources.jar完全可以不需要。

2、JDBC和Mybatis的下载

JDBC请选择合适自己数据库的版本,本文用Mysql做例子,所以选择的是Mysql的JDBC。
你首先需要两个jar,一个是连接Mysql必须的jar,这里以Mysql做例子,Orcale等数据库则换成相应的jar包即可,可以到Mysql的官网下载:https://dev.mysql.com/downloads/connector/j/,下载之后取走其中的mysql-connector-java-5.1.44-bin.jar到你的工程目录,一般在工程目录新建一个lib,放这些包。

然后下载Mybatis,最新的Mybatis是放在Github托管的,网址:https://github.com/mybatis/mybatis-3/releases,同样取走里面的核心jar,放到你的工程目录的WEB-INF\lib下。

3、Mybatis和Spring交互包

最后补上这个jar就OK了。

还需要在https://github.com/mybatis/spring/releases下载一个Spring连接Mybatis的jar包mybatis-spring-1.3.1.jar:

整合之后WEB-INF\lib文件夹如下所示:


二、目录结构和所使用的数据库表

按照上述过程配好在WEB-INF\lib配好jar包之后,先贴上我最终完工的工程目录结构:


还有我使用的数据库表,还是这张早已举个栗子举烂的Mysql中test数据库的User用户表,随便开个Mysql,建立张user表,数据库test弄出来的。


三、配置文件xml的编写

1、我们先从这个Javaee工程的总配置文件web.xml看起,所有Javaee工程必有这个文件。在这个文件中,主要是声明使用SpringMVC、Spring还有这个网站主要使用UTF-8编码,避免乱码。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <!-- 启用SpringMVC -->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 指明Spring配置的初始化文件 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <!-- 字符编码过滤器 -->
    <filter>
        <filter-name>encodingFilter</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>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/</url-pattern>
    </filter-mapping>
</web-app>
这里的web.xml的初始化,不同于之前《【Spring+Mybatis】Spring整合Mybatis》(点击打开链接)中,指明在 Java工程Spring的核心配置文件applicationContext.xml所在目录时,在contextConfigLocation的值只写一个applicationContext.xml就行,必须写明/WEB-INF/applicationContext.xml,不完全写明,Javaee工程找applicationContext.xml会直接去网站根目录WebContent找,肯定找不到,同时会出现org.springframework.beans.factory.BeanCreationException之类的错误

2、接下来先看SpringMVC-servlet.xml,命名只能这样写,毕竟在web.xml,指明的servlet-name就是SpringMVC,这个文件我在《【SpringMVC】Helloworld》(点击打开链接)已经详细写过了,还是那句话,这篇文章主要是介绍SSM整合的,要是每个技术都写一次,就显得没有重点了。
这里除了要求SpringMVC在actios找servlet以外,同时要求Spring扫描Service层,是因为在action用到Service的类中的方法和数据库打交道,所以必须要求actions层注入Service。同时扫描test.actions和test.services。

<?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:p="http://www.springframework.org/schema/p"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans     
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
    http://www.springframework.org/schema/context     
    http://www.springframework.org/schema/context/spring-context-2.5.xsd    
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  
  
    <context:component-scan base-package="test.actions" />  
    <context:component-scan base-package="test.services" />  
  
    <bean  
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/views/" />  
        <property name="suffix" value=".jsp" />  
    </bean>  
  
</beans>  

3、然后是Spring的核心配置文件applicationContext.xml了,这里和《【Spring+Mybatis】Spring整合Mybatis》(点击打开链接)同样,同时整合JDBC和Mybatis,利用Spring配置数据源,同时指出Mybatis的核心配置文件是/WEB-INF/configuration.xml。这里还利用到Spring整合SpringMVC的自动注解功能,可以用一个@将原来的Spring必须要求的private私有变量+getter+setter,精简到一个注解+private私有变量即可。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    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-4.1.xsd ">
    <!-- Spring连接的JDBC数据源 -->
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url"
            value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useOldAliasMetadataBehavior=true" />
        <property name="username" value="root" />
        <property name="password" value="root" />
    </bean>
    <!-- 指出Mybatis的核心配置文件,关于数据库表和Java文件的映射写在里面 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="/WEB-INF/configuration.xml"></property>
    </bean>
    <!-- 指出数据库接口方法所在的包 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
        autowire="byName">
        <property name="basePackage" value="test.dao" />
        <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>
    <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
</beans> 
这里/WEB-INF/configuration.xml也必须完全写明,不能只写configuration.xml,不然就会出现org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/configuration.xml]的报错,无法启动tomcat,具体如下图所示:

4、最后就是Mybatis的配置文件configuration.xml了,由于Spring的存在,让configuration.xml可以变得非常简单,不用像《【Mybatis】Helloworld》(点击打开链接)里面写得这么长,指出数据库和Java的映射关系Mapper的所在地即可。

<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE configuration      
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"      
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 指明在user这个表中所包含常用sql方法,test/mapper/User.xml是一个指明java方法和sql语法联系的xml文件 -->
    <mappers>
        <mapper resource="test/mapper/User.xml" />
    </mappers>
</configuration>   

然后顺手在test.mapper包下新建一个User.xml。


四、工程核心文件的编写

经历了上面一大堆配置文件终于弄好整个Spring+SpringMVC+Mybatis的配置了,接下来开始分门别类地分层严格遵循MVC的思想编写整个Javaee工程的核心文件了。

1、首先完成刚才顺手建立的test.mapper.User.xml。该文件在《【Mybatis】Helloworld》(点击打开链接)详细说过了。主要是写关于该User表的主要操作和test.dao下的Java方法对应关系。这里分别有按照username查用户、增加一个用户、修改用户名对应密码的三个方法,也刚好展示Mybatis的增删改查了。

<?xml version="1.0" encoding="UTF-8" ?>   
<!DOCTYPE mapper PUBLIC    
    "-//mybatis.org//DTD Mapper 3.0//EN"   
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test.dao.UserDao">
    <select id="findUsersByUsername" resultType="test.entity.User">
        select * from user
        where username=#{username}
    </select>
    <!--执行增加操作的SQL语句。id和parameterType分别与IUserOperation接口中的addUser方法的名字和参数类型一致。 
        useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主键; keyProperty="id"指定把获取到的主键值注入到User的id属性 -->
    <insert id="addUser" parameterType="test.entity.User"
        useGeneratedKeys="true" keyProperty="id">
        insert into
        user(username,password) values(#{username},#{password})
    </insert>
    <update id="modifyPasswordByUsername" parameterType="test.entity.User">
        update user set password=#{password} where username=#{username}
    </update>
</mapper> 

2、然后马上来完成test.mapper.User.xml对应的test.dao.UserDao.java,具体如下所示,其实也没什么好说,就是一大堆方法的罗列,毕竟dao只是一个数据库接口而已。这里唯一需要大家注意的是,在SSM整合的过程中,我们需要对Dao层,标上@Repository的注解,让Spring能识别这是Dao层。
package test.dao;
 
import org.springframework.stereotype.Repository;
 
import test.entity.User;
 
@Repository
public interface UserDao {
    public User findUsersByUsername(String username);
 
    public int addUser(User user);
 
    public int modifyPasswordByUsername(User user);
}

同时也顺手完成刚才在test.mapper.User.xml提到的增删改查的使用和返回类型,实体类test.entity.User.java。这样的数据库~Java实体,典型的private+getter+setter结构,相信大家早就见惯不怪了。
package test.entity;
 
public class User {
    
    private Integer id;
    private String username;
    private String password;
 
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer 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;
    }
 
}

4、然后是Service层,也就是事务层,test.services.UserServices.java,这里主要为Action层提供一系列封装的方法,拿Action提供的数据操作数据库,并且处理完返回数据给Action来应对jsp和java的交互,这往往是网页工程的核心。
这里一样要严格注解一个@Service表示这是个事务层,不然Spring是直接识别不到报错的。

package test.services;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import test.dao.UserDao;
import test.entity.User;
 
@Service
public class UserServices {
    
    @Autowired
    private UserDao userDao;//自动注入的存在,无需getter和setter了
 
    /*各个业务*/
    
    //判断用户是否存在
    public boolean isUserExist(String username) {
        if (userDao.findUsersByUsername(username) == null) {
            return false;
        } else {
            return true;
        }
    }
 
    //根据提供的用户名拿密码
    public String getPasswordByUsername(String username) {
        return userDao.findUsersByUsername(username).getPassword();
    }
 
    //新增一个用户
    public void addUser(String username, String password) {
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        userDao.addUser(user);
    }
  
    //修改某一用户的密码
    public void modifyPasswordByUsername(String username, String newpassword) {
        User user = userDao.findUsersByUsername(username);
        user.setUsername(username);
        user.setPassword(newpassword);
        userDao.modifyPasswordByUsername(user);
    }
    
}
另外,大家也可以从这个文件看到Mybatis比Hibernate优秀的原因,Mybatis处理数据库根本就没有什么commit不commit的提交事务才能修改数据库事情!他就是一个简单的SQL过程,上面的调用的dao方法,你完全可以理解成,这其实就是mapper一条对数据库操作的sql语句,执行即更改。

5、之后是test.actions.WebAction.java,这里也就是网页的Action层了,这个文件也在《【SpringMVC】Helloworld》(点击打开链接)中详细表述过了。

这里在SSM同样要明确地加上@Controller注解表示这是个Action层。

这里也同时展示了SpringMVC中Java是如何拿前台的数据,和返回数据到前台的。拿前台的数据主要是靠@RequestParam("前台表单的name")+后台Java的变量名了这个注解,当然还有拿其它数据的方式,不过这个是拿Post方法提交的表单数据最常用了,当然在get提供也可以照样拿,其余几种拿前台数据的方式比较少用,大家有兴趣可以某度一下。@RequestMapping注解指明servlet的url和get/post的使用方式。

而返回数据到前台,主要压在model里面,model可以放任何类型的东西,也就是objects。model可以用jsp3.0简单的表达式${}打印,要是里面放的是个list可以配合c标签来打印。

至于各个方法如何处理用户登录、注册、修改密码的细节,相信大家配合上面的test.services.UserServices.java一下就看得懂了,一点都不难,非常简单的逻辑判断。

package test.actions;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
 
import test.services.UserServices;
 
@Controller
public class WebAction {
    @Autowired
    private UserServices userServices;//自动注入的存在,getter和setter见鬼去吧!
 
    //跳转到本工程主页的action
    @RequestMapping(value = "/index")
    public String index() {
        return "index";
    }
 
    //关于用户登录的表单提交
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public String login(@RequestParam("username") String username,
            @RequestParam("password") String password, ModelMap model) {
        if (!userServices.isUserExist(username)) {
            model.addAttribute("msg", "用户名不存在!");
        } else {
            if (password.equals(userServices.getPasswordByUsername(username))) {
                model.addAttribute("msg", "登录成功!");
            } else {
                model.addAttribute("msg", "密码错误!");
            }
        }
        return "index";
    }
 
    //关于用户注册的表单提交
    @RequestMapping(value = "/register", method = RequestMethod.POST)
    public String register(@RequestParam("username") String username,
            @RequestParam("password") String password, ModelMap model) {
        if (userServices.isUserExist(username)) {
            model.addAttribute("msg", "用户名已存在!");
        } else {
            userServices.addUser(username, password);
            model.addAttribute("msg", "注册成功!");
        }
        return "index";
    }
 
    //关于修改密码的表单提交
    @RequestMapping(value = "/modifyPassword", method = RequestMethod.POST)
    public String modifyPassword(@RequestParam("username") String username,
            @RequestParam("password") String password,
            @RequestParam("newpassword") String newpassword, ModelMap model) {
        if (!userServices.isUserExist(username)) {
            model.addAttribute("msg", "用户名不存在!");
        } else {
            if (password.equals(userServices.getPasswordByUsername(username))) {
                userServices.modifyPasswordByUsername(username, newpassword);
                model.addAttribute("msg", "修改密码成功!");
            } else {
                model.addAttribute("msg", "密码错误!");
            }
        }
        return "index";
    }
    
}

6、最后完成view\index.jsp这一页就大功告成了,views层也就是前端,非常简单的东西,不多赘述了。本文为了只是用jsp3.0的表达式简单打印了的string变量${msg},那些什么打印用户表就不做。要是model里面放的是个list,可以参考《【Servlet】利用Servlet3.0标准与JSTL表达式实现文件上传系统,支持图片上传后显示》(点击打开链接)利用jstl表达式的c标签,<c:foreach>打印了,这里为了不杂糅jstl的技术,就不展示怎么打印用户表了。
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>主页</title>
</head>
<body>
    <p style="color:red">${msg}</p><hr>
    用户登录<br>
    <form action="login" method="post">
        用户名:<input type="text" name="username" /><br>
        密码:<input type="password" name="password" /><br>
        <input type="submit" value="提交"><br>
    </form><hr>
    用户注册<br>
    <form action="register" method="post">
        用户名:<input type="text" name="username" /><br>
        密码:<input type="password" name="password" /><br>
        <input type="submit" value="提交"><br>
    </form><hr>
    修改密码<br>
    <form action="modifyPassword" method="post">
        用户名:<input type="text" name="username" /><br>
        密码:<input type="password" name="password" /><br>
        新密码:<input type="password" name="newpassword" /><br>
        <input type="submit" value="提交"><br>
    </form><hr>        
</body>
</html>

Spring+Spring MVC+MyBatis学生信息管理系统(SSM) 运用java的springmvc和mybatis后端框架,结合bootstrap样式框架,mysql、tomcat等通过多次重装配置,最后成功部署完成真的费了很大一番功夫,期间一直报错,虽还有部分功能仍尚有欠缺需要完善,不过能做出来已经觉得很棒了 O v O。 阅读详情

相关推荐

基于SSM的企业住房公积金管理系统

系统角色:管理员、业务员、普通职工 首页 编辑个人信息以及密码 系统基本功能 登录,注销、密码修改 部业务员角色功能 业务/账表管理 公积金缴纳管理:手动登账、自动登账、缴纳统计、利息统计 公积金提取管理:提取记录检索、提取金额发放 普通职工角色功能 个人业务管理 我的公积金缴纳记录:缴纳统计、利息统计、记录检索 我的公积金提取记录:记录检索、申请提取、编辑申请 管理员角色功能 基本设置管理 部门信息管理:添加、修改、删除、查询 职工信息管理:添加、修改、删除、查询 系统参数

q_2457781052的博客 1756

java ssm实现修改密码,SSM项目store_SSM_v1 05修改密码

SSM项目store_SSM_v1 05修改密码文章目录1 点击修改密码跳转1.1 前端加入注解/user/updatePwd修改密码1.2 跳转到密码修改页面UserController类里://跳转到密码修改页面@GetMapping("/updatePwd")public String updatePwd(){return "web/password";}2 检查原密码2.1 前端ajax传...

weixin_32511509的博客 2625

[含论文+源码等]基于SSM的手机商城[包运行成功]

下载:https://download.youkuaiyun.com/download/m0_66599252/77333704 项目介绍: [含论文+源码等]基于SSM的手机商城[包运行成功] 系统说明: 《基于java+ssm+mysql实现的手机商城》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 前端使用技术:JSP,HTML5,CSS3、JavaScript、jQuery、bootstrap等 后台使用技术:Spring、SpringMvc、Mybatis(SSM)等 数据库:Mysq

m0_66599252的博客 619

ssm java修改密码代码_使用ssm实现校验密码

由于审题不清,在完成作业“servlet实现进行用户名和密码验证”中使用了jdbc连接数据库的方式实现,没用静态方式验证,故本次作业使用ssm实现本次作业上传到百度网盘:链接:https://pan.baidu.com/s/12IIczLqaFfa94mn-tY4MHw提取码:4q7d一、 导入jar包 二、 搭建框架(简述) 三、使用逆向工程创建mysql数据库中相应的数据库(swpu)下的u...

weixin_36443241的博客 900

手把手教你用X-AnyLabeling实现医学图像标注:从SAM模型选择到多边形优化全流程

本文详细介绍了如何使用X-AnyLabeling平台结合Med-SAM等专业模型实现医学图像的高效标注。从环境配置、模型部署到实战工作流,涵盖智能辅助标注、低对比度解决方案及团队协作方案,帮助医疗从业者大幅提升标注效率与质量。特别适合处理CT/MRI等医学影像的复杂标注需求。

weixin_29251131的博客 456

本地部署DeepSeek-Coder-6.7B 离线版的完整指南:打造适配当前系统的AI助手

《DeepSeek-Coder-6.7B本地部署指南》详细介绍了如何离线部署这款专注于代码生成的AI模型。文章涵盖硬件要求(推荐8核CPU、32GB内存、NVIDIA RTX3080显卡)、软件依赖(Python3.8+、CUDA11.0+、PyTorch1.9+)以及具体安装步骤,包括模型下载、路径配置和GPU加速设置。重点说明如何通过输入系统配置文档和使用说明书,让模型生成适配特定系统的代码,并提供了参数调优和模型微调的方法。该指南旨在帮助开发者在本地安全高效地使用AI助手,实现代码自动生成与优化,提升

欢迎来到我的优快云博客!我专注于技术创新和数字化转型,特别是在低代码平台、人工智能和大数据分析领域的探索与应用。通过深入分析各种行业案例,帮助企业加速数字化进程,提升运营效率与创新能力。在这里,您将找到关于低代码平台、AI技术、数据分析与 1492

ssm修改密码_SSM框架整合入门教程(简单实现数据库操作)

https://blog.youkuaiyun.com/khxu666/article/details/79851070​blog.youkuaiyun.com一、上述链接教程转载自优快云论坛,请引用注明出处二、根据上述教程搭建SSM框架体系三、修正:想必大家在网页上查找计算机类的问题时最头疼的莫过于一步一步按照博主的内容来却始终无法达成目的,或多或少的都会出现一些博主并未提到过的问题。这几天刚刚看了这个教程,自己在实...

weixin_39675513的博客 701

68页|大型车企集团数字化转型汽车数字化信息系统平台规划方案

这份PPT文档提供了一个全面的汽车集团数字化转型规划方案,涵盖了项目目标、规划思路、实施关注点、解决方案建议以及合作优势等多个方面。

baidu_25525561的博客 1328

Spring+SpringMVC+Mybatis项目在线考试管理系统

随着时代的发展,人们对考试的要求也越来越多,无论是在校学生,公务员考试还是驾校考试,考试参与的人数越来越多,如果还是延用传统的考试模式进行考试这无疑会给管理考试的工作人员增加很大的负担,同时给参与考试者增加等待时间的成本,所以如何通过计算机改变这一现状是本系统的研究的一个重点内容。 本课题是一个基于SSM(Spring+SpringMVC+MyBatis)的管理系统,本在线考试系统是在Windows10操作系统的环境下,通过比较成熟的Eclipse和Mysql作为开发工具来进行开发的。本在线考试系统主要内

分享技术热点,看天下大事 2559

第78篇:AI辅助创意与设计工作流——Logo、海报、UI的自动化生成与迭代(操作教程)

在广告公司和设计团队摸爬滚打几年,我见过太多设计师为一个Logo的配色、一张海报的版式反复修改到深夜。自从AI绘画工具爆发,我就一直在琢磨,怎么把这些“黑科技”真正塞进设计师的日常流水线里,而不是让它们仅仅是个玩具。今天要聊的,就是一套我实践下来,能真正提升效率的AI辅助创意与设计工作流。我们不谈颠覆,只谈增效——如何用AI快速完成Logo、海报、UI的灵感生成、批量出图与智能迭代,把设计师从重复劳动中解放出来,聚焦在真正的创意决策上。

weixin_37464284的博客 538

【CASS精品教程】032:CASS11台阶画法案例大全

一、普通无边台阶 二、普通有边台阶 三、普通圆弧无边台阶 四、U型台阶 五、曲线U型台阶 六、L型台阶

智慧空间实验室 7463

计算机毕业设计之基于SSM的手机商城|鲜花

订单管理-编辑、删除、发货。《基于java+ssm+mysql实现的手机商城》该项目含有源码、文档等资料、配套开发软件、软件安装教程、项目发布教程等。Spring、SpringMvc、Mybatis(SSM)等。

2301_79424183的博客 388

mjlab 入门教程(一)MuJoCo 人形机器人强化学习训练 sim-to-real 部署框架

摘要:mjlab是一个结合IsaacLab API与MuJoCo简洁性的GPU加速机器人仿真框架,专为强化学习和机器人研究设计。它提供快速安装(支持uv、pip、conda和Docker)、核心功能(域随机化、NaN守护、观测历史/延迟、执行器/传感器系统)以及从IsaacLab的迁移指南。相比IsaacLab,mjlab更轻量、启动更快,直接构建在MuJoCo Warp上,避免了Omniverse开销。其哲学强调裸机性能、开发者体验和核心领域专注,适合需要快速迭代和直接MuJoCo控制的用户,而Isaac

2506_90492529的博客 2724

基于SSM的手机商城|鲜花|化妆品系统

订单管理-编辑、删除、发货。《基于java+ssm+mysql实现的手机商城》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等。Spring、SpringMvc、Mybatis(SSM)等。

千里码设计工作室 159

YOLOv11改进 | 损失函数改进篇 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数

这篇文章介绍了YOLOv11的重大改进,特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体,如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU,还融合了“Focus”思想,创造了一系列新的损失函数。这些组合形式的损失函数超过了二十余种,每种都针对特定的目标检测挑战进行优化。文章会详细探讨这些损失函数如何提高YOLOv11在各种检测任务中的性能,包括提升精度、加快收敛速度和增强模型对复杂场景的适应性。

Snu77的博客 6194

zynq的irq_f2p 如何增加或修改中断引脚个数(宽度)

ZYNQ开发过程中,如果使用PL到PS的中断,会产生一个疑问,设置界面显示可以有[91:84]、[68:61]共16个中断引脚,但是并没有设置中断口的宽度,如果使用多个中断引脚,应该怎么办?如果通过concat连接多个引脚,则自动调整为对应的引脚数。例如连接3个中断信号,则自动调整为:IRQ_F2P[2:0]

FPGA艺术家的博客 833

SSM项目store_SSM_v1 05修改密码

SSM项目store_SSM_v1 05 文章目录1 修改密码1.11.2 1 修改密码 1.1 前端加入注解/user/updatePwd <li><a href="/user/updatePwd">修改密码</a></li> 1.2 //跳转到密码修改页面 @GetMapping("/updatePwd") public String updatePwd(){ return "web/password"; .

qq_43881663的博客 2124

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringMVC+Mybatis用户管理系统(框架入门级别)

SpringMVC+Mybatis+Mysql 基于SpringMVC+Mybatis编写的用户管理系统示例(数据库:mysql),SpringMVC框架入门级别DEMO。 主要为前端Okhttp提供网络请求的后台服务支持。 GitHub:https://github.com/MrZhousf/SpringMVC 功能点 支持用户的增删改查jsp采用ajax异步请求刷新

嘿,你好! 1131

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SSM—用户模块(二)忘记密码,修改密码、获取用户信息

dao层 /** * 查找用户登录问题 * @param username * @return */ String selectQuestionByUsername(String username); /** * 校验问题答案是否正确 * @param username * @param questi...

xiaoxin0630的博客 6080

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

springmvc+spring+maven项目中的修改密码的实现

springmvc+spring+maven项目中的修改密码的实现一、前端实现,描述即点击修改密码字段,跳出修改密码界面。1)实现先创建修改密码的jsp前台界面代码updatePassword.jsp:&lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&gt;&lt;...

勤于总结的菜鸟 7182

spring+springmvc+mybatis实现简单用户注册和登录

一.建立Dynamic Web Project 项目结构: mysql建立: 二.代码 首先配置web.xml: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance http://www.springmodules.o...

码来-陈平安的博客 1万+

java记住密码mybatis_基于Spring+Spring MVC+Mybatis的用户账号注册和密码修改

package com.service;import java.sql.SQLException;import java.util.List;import com.bean.UserBean;import com.dao.UserDao;public class UserService {/******* 员工** ****/// 用于数据库中员工是否注册public booleancheck(S...

weixin_42452244的博客 201

html实现登录后显示用户名_我的Java Web之路61 - 实现用户注册功能

本系列文章旨在记录和总结自己在Java Web开发之路上的知识点、经验、问题和思考,希望能帮助更多(Java)码农和想成为(Java)码农的人。目录介绍四大架构(技术、业务、应用、数据)思路展示层 - 注册页面 register.htmlUser实体类DAO层 - UserMapper接口和元数据服务层 - UserService控制器层 - 添加Handler总结介绍到现在为止,我们的租房网应用...

weixin_30200131的博客 3175

工作记录——ssm实现修改密码

注意点 Controller层 @RequestMapping怎么用,为什么,@ResponseBody怎么用,为什么,这两个一起用为怎么样 @RequestMapping(“dtmNeibaoPasswordEditForwardAction”) 和@ResponseBody 多写了@responsebody就是一直跳不到jsp,而是显示了这个字符串 该页面使用非标准属性“zoom”。请考虑在相...

尽力漂亮的博客 1911

SSM项目实战之十二:用户信息的修改

用户信息的修改本文目标用户界面的调整service层的调整dao层的调整修改数据的提交修改service层实现类测试修改 本文目标 在上文的基础上来完成用户的修改 用户界面的调整 为user.jsp添加指向修改的链接 控制层不需要调整 service层的调整 @Override public void getUpdateUserInfo(Integer id,Model mode...

JustinNeil的博客 8132
上一篇: javaWeb项目之JSP学习笔记----6JSP标签JSTL
下一篇: Maven 中pom.xml配置文件详解
iamlinuxasd
博客等级 码龄10年 4粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值