广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringMVC使用注解实现登录功能
  • 569
分享到

SpringMVC使用注解实现登录功能

2024-04-02 19:04:59 569人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了springMVC使用注解实现登录的具体代码,供大家参考,具体内容如下 一、使用Component\Controller\Service\Repository四大

本文实例为大家分享了springMVC使用注解实现登录的具体代码,供大家参考,具体内容如下

一、使用Component\Controller\Service\Repository四大注解类:

  • @Component 是通用标注
  • @Controller 标注 WEB 控制器
  • @Service 标注 Servicec 层的服务
  • @Respository 标注 DAO层的数据访问

这些注解都是类级别的,可以不带任何参数,也可以带一个参数,代表bean名字,在进行注入的时候就可以通过名字进行注入了。

二、@Resource和@Autowired注解的异同

  • @Autowired默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false

例如:@Autowired(required=false),如果我们想使用名称装配可以结合@Qualifier注解进行使用

  • @Resource,默认安装名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找 ,如果注解写在setter方法上默认取属性名进行装配 。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。

三、其他注解类 

(1) PathVariable注解类

@RequestMapping注解中使用占位符的情况下,需要使用@PathVariable注解指定占位符参数

(2) RequestParam注解类

表单提交数据时,可以通过这个注解来解决request.getParameter("uname")

(3) CookieValue注解类

如果要保存字符串数据,可以使用这个注解

(4) SessionAttributes注解类 

如果希望在多个请求之间公用某个模型属性数据,则可以在控制器类标注一个@SessionAttributes,springmvc会将模型中对应的属性暂存到httpserssion中除了SessionAttributes,还可以直接用原生态的request.getSession()来处理

(5) ResponseBody注解类

用于将Controller的方法返回的对象,通过适当的HttpMessageConverter(转换器)转换为指定格式后,写入到Response对象的body数据区;  返回如JSON、xml等时使用

(6)RequestHeader注解类

@RequestHeader注解,可以把Request请求header部分的值绑定到方法的参数上

四、应用注解来实现登录

 (1)、创建工程如下:

 (2)、配置文件pom.xml(主要是修改:dependencies的内容)

<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>springmvc</groupId>
    <artifactId>springmvc</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name />
    <description />
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
 
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
 
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1-b05</version>
        </dependency>
 
        <!-- jackson start -->
 
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.1.0</version>
        </dependency>
        <!-- jackson end -->
    </dependencies>
    <build>
        <finalName>springmvc</finalName>
        <sourceDirectory>${basedir}/src</sourceDirectory>
        <outputDirectory>${basedir}/WebRoot/WEB-INF/classes</outputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/src</directory>
                <excludes>
                    <exclude>**
    public User selectByName(String uname) {
        if ("admin".equals(uname)) {
            User user = new User("admin", "aaa");
            return user;
        }
        return null;
    }
 
}
package com.hlx.service;
 
import javax.annotation.Resource;
 
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.ModelAndView;
 
import com.hlx.bean.User;
import com.hlx.dao.UserDao;
 
@Service
public class UserService {
 
    @Resource
    private UserDao userDao;
 
    
    public User doLogin(String uname, String upass) throws Exception {
        // 判断
        if (uname == null || "".equals(uname)) {
            throw new Exception("用户名不能为空!");
        }
        if (upass == null || "".equals(upass)) {
            throw new Exception("密码不能为空!");
        }
 
        User user = userDao.selectByName(uname);
 
        if (user == null) {
            throw new Exception("用户名不存在!");
        }
 
        if (!user.getUpass().equals(upass)) {
            throw new Exception("密码不正确!");
        }
 
        return user;
 
    }
}
package com.hlx.controller;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
 
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 org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.bind.support.SessionStatus;
 
 
import com.hlx.bean.User;
import com.hlx.service.UserService;
 
@Controller
@SessionAttributes("user") //保存user对象
public class UserController {
 
    //业务层
    @Resource
    private UserService userService;
    
    @RequestMapping("login")
    public String toLoginPage(){
        return "jsp/login.jsp";
    }
    
    @RequestMapping(value="dologin",method=RequestMethod.POST)
    public String doLogin(@RequestParam String uname,@RequestParam String upass,HttpServletRequest request,ModelMap map){
        try {
            //调用方法
         User user=userService.doLogin(uname,upass);
         
         //存入user
         map.put("user", user);
         ///
         
        } catch (Exception e) {
            // TODO: handle exception
            request.setAttribute("error", e.getMessage());  //提示错误消息
            return "jsp/login.jsp";  //返回登录页面
        }
        return "jsp/success.jsp";
    }
    
    
    @RequestMapping("doloGout")
    public String doLogout(SessionStatus status){
        //清空session
        status.setComplete();
        //返回登录页面
        return "jsp/login.jsp";
    }
    
}

效果:

package com.hlx.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import com.hlx.bean.User;
 
@Controller
public class JSONController {
 
    @ResponseBody
    @RequestMapping("/getJson")
    public User getUserinfo(){
        User user = new User("mike", "123456");
        return user;
    }
}

效果:

package com.hlx.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import com.hlx.bean.User;
 
@Controller
public class PathVariableControler {
    
    @ResponseBody
    @RequestMapping("/pathvariable/{uname}")
    public User test1(@PathVariable String uname){
        User user = new User();
        user.setUname("john");
        return user;
    }
    @ResponseBody
    @RequestMapping("/pathvariable2/{intval}")
    public User test1(@PathVariable Integer intval){
        User user = new User();
        user.setUname(intval + "");
        return user;
    }
 
}

效果:

注意:这里是数字

注意:这里只能是数字,不能字符串,否则找不到页面!

总结:  

应用了四大注解类Component、Controller、Service、Repository;掌握PathVariable,RequestParam注解类

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: SpringMVC使用注解实现登录功能

本文链接: https://www.lsjlt.com/news/166916.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringMVC使用注解实现登录功能
    本文实例为大家分享了SpringMVC使用注解实现登录的具体代码,供大家参考,具体内容如下 一、使用Component\Controller\Service\Repository四大...
    99+
    2022-11-13
  • springmvc+spring+mybatis实现用户登录功能(上)
    由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教。一、代码结构整个项目的代码结构如图所示: c...
    99+
    2023-05-31
    springmvc spring mybatis
  • Android使用http实现注册登录功能
    在项目中实现注册登录有很多种方式,一般对于初学者来说,不使用框架,采用http的post和get请求后台服务器,是一种更好理解底层源码的方式。使用框架实现注册登录虽然比自己封装pos...
    99+
    2022-11-13
  • Python实现注册登录功能
    用Python写个注册登录功能,供大家参考,具体内容如下 本文是用Python写一个注册登录功能,难度不大,很适合练手主要就是用列表和字典,以及逻辑判断用到的第3方库模块是time模...
    99+
    2022-11-13
  • Node.js实现登录注册功能
    本文实例为大家分享了Node.js实现登录注册功能的具体代码,供大家参考,具体内容如下 目录结构 注册页面: reg.html <!DOCTYPE html> <...
    99+
    2022-11-13
  • Android实现登录注册功能
    本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下 运行环境 Android Studio 总体效果图 一、 设计注册页面的布局 二、完成注册...
    99+
    2022-11-13
  • QT实现用户登录注册功能
    本文实例为大家分享了QT实现用户登录注册的具体代码,供大家参考,具体内容如下 1、login.h #ifndef LOGIN_H #define LOGIN_H #include ...
    99+
    2022-11-13
  • Android用SharedPreferences实现登录注册注销功能
    Android用SharedPreferences实现登录注册注销功能 前言 本文用SharedPreferences本地缓存账号信息来实现登录注册功能,以及退出注销功能。 一、本文...
    99+
    2022-11-13
  • python实现登录与注册功能
    本文实例为大家分享了python实现登录与注册的具体代码,供大家参考,具体内容如下 1. 案例介绍 本例设计一个用户登录和注册模块,使用 Tkinter 框架构建界面,主要用到画布、...
    99+
    2022-11-12
  • NodeJs+MySQL实现注册登录功能
    本文实例为大家分享了NodeJs+MySQL实现注册登录功能的具体代码,供大家参考,具体内容如下 之前写过一个没有连接数据库的注册与登陆的实现,这次加上了数据库 刚刚接触后端,很多不...
    99+
    2022-11-13
  • JavaWeb实现用户登录与注册功能
    本文实例为大家分享了JavaWeb实现用户登录与注册的具体代码,供大家参考,具体内容如下 所用知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础 ...
    99+
    2022-11-12
  • Java-web实现用户登录、注册功能
    源码在资源里 目录 环境搭建数据库 用户登录需求分析代码实现编写UserMapper类编写User类编写loginServlet类编写login.html编写login.css ...
    99+
    2023-10-10
    java 前端 servlet
  • SpringMVC实现自定义拦截器登录检测功能
    这篇文章主要介绍“SpringMVC实现自定义拦截器登录检测功能”,在日常操作中,相信很多人在SpringMVC实现自定义拦截器登录检测功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringMVC实现...
    99+
    2023-06-20
  • android登录注册功能如何实现
    要实现Android的登录注册功能,你可以按照以下步骤进行操作:1. 创建一个布局文件来设计登录和注册界面。可以使用EditText...
    99+
    2023-10-20
    android
  • Spring MVC+mybatis实现注册登录功能
    本文实例为大家分享了Spring MVC mybatis实现注册登录功能的具体代码,供大家参考,具体内容如下前期准备: 如下图所示,准备好所需要的包 新建工程,导入所需要的包,在web.xml中配置好所需要的,如下<...
    99+
    2023-05-31
    spring mvc mybatis
  • java+mysql实现登录和注册功能
    初学JAVA  EE,老师留下一小作业,用JAVA实现与服务器端交互,实现登录和注册功能,初学一种专业课很多老师都会留下一种让学生实现登录和注册的作业。 下面是记录的实现步...
    99+
    2022-11-13
  • Android实现登录注册功能封装
    我们都知道Android应用软件基本上都会用到登录注册功能,那么对一个一个好的登录注册模块进行封装就势在必行了。这里给大家介绍一下我的第一个项目中所用到的登录注册功能的,已经对...
    99+
    2022-06-06
    封装 Android
  • 基于Spring5实现登录注册功能
    本文实例为大家分享了Spring5实现登录注册功能的具体代码,供大家参考,具体内容如下 准备: 根据分析用户注册登录都需要的信息为①username(String)②userid(I...
    99+
    2022-11-13
  • node.js实现简单登录注册功能
    本文实例为大家分享了node.js实现简单登录注册的具体代码,供大家参考,具体内容如下 1、首先需要一个sever模块用于引入路由,引入连接数据库的模块,监听服务器2、要有model...
    99+
    2022-11-13
  • Python如何实现注册登录功能
    这篇文章给大家分享的是有关Python如何实现注册登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下本文是用Python写一个注册登录功能,难度不大,很适合练手主要就是用列表和字典,以及逻辑判断用...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作