Servlet 中的属性 |Java
servlet 中的属性是一个对象,可以通过以下几个方面来设置、获取或删除
- 请求范围
- 适用范围
- 会话范围
要将值从 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
输出:
小服务程序代码
该程序处理请求数据并检查其有效性,如果遇到任何错误,它将在称为 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();
}
}
输出 :
HTML 代码 2
如果没有发生错误,则打印成功消息
Comment Successfully Stored