📜  Spring – MVC 密码

📅  最后修改于: 2022-05-13 01:54:44.403000             🧑  作者: Mango

Spring – MVC 密码

Spring 是最流行的Java EE 框架之一。它是一个开源轻量级框架,允许Java EE 7 开发人员构建简单、可靠且可扩展的企业应用程序。该框架主要侧重于提供各种方法来帮助您管理业务对象。在这个例子中,我们将学习 Spring MVC Password 标签。我们将在 Spring 工具套件(STS)中创建一个基本的 Spring MVC 项目,以使用form:password标签从用户那里获取密码。

spring-form.tld

我们可以使用Java Server Pages (JSP) 作为 Spring Framework 中的视图组件。 Spring 2.0 版本提供了一套全面的数据绑定感知标签作为标签库,即spring-form.tld ,用于在使用 JSP 和 Spring Web MVC 时处理表单元素。

此标签库中的每个标签都支持其对应的 HTML 标签对应的属性集,使标签使用起来既熟悉又直观。这些标记在处理时生成一个符合 HTML 4.01/XHTML 1.0 的 HTML 标记。我们可以使用这些标签来评估错误、设置主题、格式化输入和输出国际化消息的字段。

要使用 spring 库标签,我们需要在 JSP 页面中包含以下指令。

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    --form is the tag name prefix that is used for the tags from this library.

“密码”标签

' password ' 标签使用绑定值呈现一个类型为 'password' 的 HTML 'input' 标签。它定义了一个密码字段意味着,字符将被屏蔽。我们可以在用户必须输入任何类型的敏感/机密信息的表单中使用此标签。下面是“密码”表单标签的示例。

HTML


HTML


Java
package com.geeksforgeeks.app;
  
public class Home {
      
    private String name;
    private String password;
    private String email;
      
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
      
}


Java
package com.geeksforgeeks.app;
  
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
  
@Controller
public class HomeController {
  
    @RequestMapping(value = "/")
    public String viewHome(Model model) {
  
        Home home = new Home();
        model.addAttribute("home", home);
        return "home";
    }
  
    @RequestMapping(value = "/submit", method = RequestMethod.POST)
    public String submit(@ModelAttribute("home") Home home) {
        return "summary";
    }
  
}


HTML
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>



Home Page


    

Welcome to GeeksforGeeks!!

                                                                                                                                                                                                                                                        
Full Name:
Password:
E-Mail Address:
Submit
    
  


HTML
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>




Summary page


    

Details Submitted!!

                                                                                                                                             
Full Name:${home.name}
Password:${home.password}
E-Mail Address:${home.email}
  


HTML


该标签将在处理时生成一个 HTML 密码标签,如下所示。

HTML


“密码”标签中的属性

以下是“密码”标签中可用的各种属性。

1) HTML 标准属性:HTML 标准属性也称为全局属性,可用于所有 HTML 元素。

Name

Description

accesskeyTo specify a shortcut key to activate/focus on an element.
idTo specify a unique ID for the element.
dirTo specify text direction of elements content.
langTo specify the language of the content.
tabindexTo specify tabbing order of an element.
titleTo specify extra information about the element on moving the cursor over the element.

2) HTML 事件属性:HTML 事件属性用于在元素上发生指定事件时触发函数。

Name

Description

onblurTo execute a JavaScript function when a user leaves the text field.
onchangeTo execute a JavaScript function when a user changes the text.
onclickTo execute a JavaScript function when the user clicks on the field.
ondblclickTo execute a JavaScript function when the user double clicks on the element.
onfocusTo execute a JavaScript function when the user focuses on the text box.
onkeydownTo execute a JavaScript function when the user is pressing a key on the keyboard.
onkeypressTo execute a JavaScript function when the user presses the key on the keyboard.
onkeyupTo execute a JavaScript function when the user is releasing the key on the keyboard.
onmousedownTo execute a JavaScript function when the user is pressing a mouse button.
onmousemoveTo execute a JavaScript function when the user is moving the mouse pointer.
onmouseoutTo execute a JavaScript function when the user is moving the mouse pointer out of the field.
onmouseoverTo execute a JavaScript function when the user is moving the mouse pointer onto the field.
onmouseupTo execute a JavaScript function when the user is releasing the mouse button.
onselectTo execute a JavaScript function when the user selects the text.

3) HTML 可选属性:HTML 可选属性用于修改元素的默认功能。

Name

Description

cssClassTo specify a class name for an HTML element to access it.
cssErrorClassTo be used when the bounded element has errors.
cssStyleTo add styles to an element, such as color, font, size etc.
disabledTo specify whether the element to be disabled or not.
sizeTo specify the number of visible width of the element in characters.
maxlengthTo specify the maximum number of characters(length) allowed in the element.
readonlyTo set the element as read only when the value is ‘true’.
altTo specify some alternate description about the element.

4)其他属性:

Name

Description

autocompleteTo specify the browser to display options to fill in the field, based on earlier typed values, when user starts to type in the field.
htmlEscapeTo enable/disable HTML escaping of rendered values.
pathTo specify the path to the property for binding the data.
showPasswordTo show the password field value in the screen without being masked.

Spring MVC 应用程序

我们将创建一个简单的 Spring MVC 应用程序,如下所示,从用户那里获取输入值 - 名称和密码,并处理它们以获取输出。

Spring MVC 应用程序

Spring MVC 应用程序

创建应用程序的步骤

1) 在 Spring Tool Suite 中创建一个 Spring MVC 项目。

2)在STS中,根据开发者选择创建项目时,会下载所有需要的maven依赖,*.jar,lib文件,并提供嵌入式服务器。

3)下面是Spring MVC项目创建后的最终项目结构*. Java和 *.jsp 文件。

项目结构

项目结构

执行

要创建的文件如下:

  1. 家。 Java – Bean 类 – 定义字段属性和属性的 getter/setter 方法。
  2. 家庭控制器。 Java – 控制器类 – 处理用户请求并生成输出。
  3. home.jsp – 与用户交互的 Jsp 文件以进行输入。
  4. summary.jsp – JSP 文件,用于向用户显示处理后的输出。

1) 家。 Java文件:

Java Bean 类定义所有属性和这些属性的getter/setter 方法以获取和设置值。

Java

package com.geeksforgeeks.app;
  
public class Home {
      
    private String name;
    private String password;
    private String email;
      
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
      
}

2)家庭控制器。 Java文件:

这是控制器类,它根据请求 URL 的映射执行方法。

使用的注释:

  • @Controller向容器传达这个类是 spring 控制器类。要使用这个注解,我们需要导入org.springframework.stereotype.Controller包。
  • @RequestMapping ,根据提供的值将请求 URL 映射到指定的方法。要使用这个注解,我们需要导入org.springframework.web.bind.annotation.RequestMapping包。
  • @ModelAttribute ,用于将方法参数或方法返回值绑定到命名模型属性。我们需要导入org.springframework.web.bind.annotation.ModelAttribute包。

Java

package com.geeksforgeeks.app;
  
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
  
@Controller
public class HomeController {
  
    @RequestMapping(value = "/")
    public String viewHome(Model model) {
  
        Home home = new Home();
        model.addAttribute("home", home);
        return "home";
    }
  
    @RequestMapping(value = "/submit", method = RequestMethod.POST)
    public String submit(@ModelAttribute("home") Home home) {
        return "summary";
    }
  
}

3) home.jsp 文件:

JSP 文件带有带有相应实现的 spring 库标签。

HTML

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>



Home Page


    

Welcome to GeeksforGeeks!!

                                                                                                                                                                                                                                                        
Full Name:
Password:
E-Mail Address:
Submit
    
  

4) summary.jsp 文件:

这是处理请求后在浏览器中显示用户输入值的输出 JSP 页面。

HTML

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>




Summary page


    

Details Submitted!!

                                                                                                                                             
Full Name:${home.name}
Password:${home.password}
E-Mail Address:${home.email}
  

执行

  • 创建完所有需要的 . Java和 .jsp 文件,在服务器上运行项目。
  • 在项目上,运行方式-> 在服务器上运行。
  • 在 localhost 中选择服务器以运行应用程序。
  • 在浏览器中打开 URL: http://localhost:8080/app/以获取以下屏幕。
主页

主页

在表格中输入所有详细信息。

输入

输入

  • 由于我们将密码字段的最大长度指定为 6 个字符,因此我们只能输入 6 个字符。
  • 我们可以根据我们的要求为密码字段指定不同的属性。
  • 例如:如果我们想根据所使用的语言改变字段中输入的文本的方向,我们可以在 JSP 页面上使用如下所示的dir属性。

HTML


现在,输入值方向将改变如下,

密码字段的输入方向

密码字段的输入方向

点击提交按钮。

输出

输出

提交表格后,输入的详细信息将显示在屏幕上