📜  Servlet 中的属性 |Java

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

Servlet 中的属性 |Java

servlet 中的属性是一个对象,可以通过以下几个方面来设置、获取或删除

  1. 请求范围
  2. 适用范围
  3. 会话范围

要将值从 servlet 传递到 html/jsp 文件,请求对象调用setAttribute()方法。 setAttribute() 方法将输入作为对象,将数据从 servlet 发送到请求网站

public void setAttribute(String name, Object obj)

设置应用程序范围内的指定对象。

在用户端,html 使用可以获取属性的语法

${ var-name }

其中 var- name与 setAttribute() 方法中的名称相同

让我们看一个在服务器端验证表单的网站示例

HTML 文件 1(请求网站)

代码会将输入数据发送到 Servlet 以处理验证,如果发生任何验证,则返回错误文本。


Demo

* required field

 
                                 ${errors.Name}     

                Male     Female     Other      ${errors.Gender}     

    

输出:

HTML1 输出

小服务程序代码

该程序处理请求数据并检查其有效性,如果遇到任何错误,它将在称为 MAP 类的 Bundle 中添加错误文本。此捆绑包再次发送到请求站点以进行错误更正

// Servlet code
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
@WebServlet("/CommitServlet")
public class CommitServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
  
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response)
        throws ServletException, IOException
    {
  
        // Create a Bundle of errors in the form of Map
        Map errors = new HashMap();
        Map after = new HashMap();
  
        // Get the input values from the website
        String inputName = request.getParameter("inputName");
        String inputGender = request.getParameter("gender");
  
        // If error occur, previous entered data will be reflected
        after.put("inputName", inputName);
  
        // Check for Validation of Name and Gender
        if (!validateName(inputName))
  
            // If error occur, create a entry for
            // the bundle and write a alert message
            errors.put("Name", "Please enter a valid name");
  
        if (inputGender == null)
  
            // If Gender is not select, encounter an error
            errors.put("Gender", "Please select a Gender");
  
        if (errors.isEmpty())
  
            // If no error occur, redirect to the response website
            response.sendRedirect("success.html");
  
        else {
  
            // Set this bundle into the request attribute
            // and pass the data to the requested website
            request.setAttribute("after", after);
            request.setAttribute("errors", errors);
            request.getRequestDispatcher("comment.jsp").forward(request, response);
        }
    }
  
    // Method to validate Proper Name, entered by the user
    public static boolean validateName(String txt)
    {
        String regex = "^[a-zA-Z ]+$";
        Pattern pattern = Pattern.compile(regex,
                                          Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(txt);
        return matcher.find();
    }
}

输出 :
错误

错误1

HTML 代码 2

如果没有发生错误,则打印成功消息


    
        

Comment Successfully Stored