Đọc/Viết các giá trị trường HTML từ Javatag (S): Tương tác JavaScriptTag(s): Javascript interaction[NetScape và IE4 tương thích] Gói NetScape.javaScript.* (LiveConnect) cung cấp các phương tiện để trực tiếp điều khiển các thành phần hình thức HTML. Show
JSObject win = (JSObject)JSObject.getWindow(this); JSObject inputText = (JSObject) win.eval("document.forms[0].elements[0]"); String value = (String)inputText.getMember("value"); // read form value inputText.setMember("value" , value + " new stuff"); // write form value Nhưng hành động này đòi hỏi một applet đã ký. Ở Netscape, bạn phải PrivilegeManager.enablePrivilege("UniversalBrowserRead"); PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); Trước khi sử dụng JSObject liên quan đến tài liệu HTML. Nhưng có một cách giải quyết, chỉ cần truyền thông tin thông qua các chức năng JavaScript! [JSjava.java] import java.applet.*; import java.awt.event.*; import java.awt.*; import netscape.javascript.*; public class JSjava extends Applet implements ActionListener { Button b1,b2; TextField tf; JSObject win; public void init(){ setLayout(new FlowLayout()); tf = new TextField(10); b1 = new Button("to FORM"); b2 = new Button("from FORM"); b1.addActionListener(this); b2.addActionListener(this); add(tf);add(b1);add(b2); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == b1) { // send TO FORM JSObject win = (JSObject)JSObject.getWindow(this); win.eval("setHTMLInputText('"+tf.getText()+"');"); } if (ae.getSource() == b2) { // receive FROM FORM JSObject win = (JSObject)JSObject.getWindow(this); tf.setText((String)win.eval("getHTMLInputText();")); } } } [JSjava.html] <HTML><HEAD> <SCRIPT> function getHTMLInputText(){ return document.forms[0].elements[0].value; } function setHTMLInputText(s){ document.forms[0].elements[0].value = s; } </SCRIPT></HEAD><BODY> <FORM> <INPUT TYPE=text SZIE=20> </FORM> <APPLET NAME="JS" CODE=JSjava.class MAYSCRIPT WIDTH=200 HEIGTH=200> </APPLET></BODY></HTML> Để có kết quả tốt nhất, không bao giờ sử dụng liveConnect jSObject trong phương thức applet () của applet. Mã Java trong servlet: chuỗi username = request.getParameter ("tên người dùng"); Chuỗi mật khẩu = request.getParameter ("mật khẩu"); .... Chi tiết của & NBSP; Cập nhật lần cuối vào ngày 11 tháng 3 năm 2020 & NBSP; | & nbsp; & nbsp; in & nbsp; E-mail Last Updated on 11 March 2020 | Print Email Trong hướng dẫn Java Servlet này, tôi sẽ hướng dẫn bạn cách đọc các giá trị của các trường đầu vào chung từ dạng HTML ở phía máy chủ với Java Servlet. Bạn biết đấy, việc xử lý dữ liệu biểu mẫu được biểu thị trong trang HTML là một nhiệm vụ rất phổ biến trong phát triển web. Một kịch bản điển hình là người dùng điền vào các trường của một biểu mẫu và gửi nó. Máy chủ sẽ xử lý yêu cầu dựa trên dữ liệu đã gửi và gửi phản hồi lại cho máy khách. Hình ảnh sau đây mô tả quy trình làm việc với Java Servlet ở phía máy chủ: & nbsp;Để tạo biểu mẫu trong HTML, chúng tôi cần sử dụng các thẻ sau:
Để làm cho biểu mẫu hoạt động với Java Servlet, chúng tôi cần chỉ định các thuộc tính sau cho thẻ: tag:
Ví dụ: sau đây là mã HTML của mẫu đăng nhập: <form name="loginForm" method="post" action="loginServlet"> Username: <input type="text" name="username"/> <br/> Password: <input type="password" name="password"/> <br/> <input type="submit" value="Login" /> </form> Hình thức này sẽ trông như thế này trong trình duyệt: Về phía máy chủ, chúng ta cần tạo một servlet Java được ánh xạ tới URL: LogInservlet, như được chỉ định trong thuộc tính hành động của biểu mẫu. Sau đây là mã của servlet: @WebServlet("/loginServlet") public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // code to process the form... } } Lưu ý rằng URL servlet được chỉ định bởi chú thích @WebServlet trước lớp servlet. Khi người dùng gửi biểu mẫu đăng nhập ở trên, phương thức dopost () servlet () sẽ được gọi bởi container servlet. Thông thường, chúng tôi sẽ thực hiện các tác vụ sau trong phương thức Dopost ():@WebServlet annotation before the servlet class. When the user submits the login form above, the servlet’s doPost() method will be invoked by the servlet container. Typically we will do the following tasks inside doPost() method:
Để đọc các giá trị của các trường biểu mẫu, giao diện httpservletRequest cung cấp các phương thức sau:HttpServletRequest interface provides the following methods:
Lưu ý rằng các phương thức trên cũng có thể xử lý các tham số trong chuỗi truy vấn URL, do đó tên GetParameter. Ví dụ: chúng ta có thể viết mã sau trong phương thức dopost () để đọc các giá trị của các trường biểu mẫu:doPost() method to read values of form’s fields: String username = request.getParameter("username"); String password = request.getParameter("password"); Để gửi phản hồi lại cho máy khách, chúng tôi cần lấy một người viết từ đối tượng phản hồi bằng cách gọi phương thức getWriter () của giao diện httpservletResponse:getWriter() of the HttpServletResponse interface: PrintWriter writer = response.getWriter(); Sau đó sử dụng phương thức in () hoặc println () để cung cấp phản hồi (dưới dạng mã HTML). Ví dụ:print() or println() method to deliver the response (in form of HTML code). For example: String htmlRespone = "<html>"; htmlRespone += "<h2>Your username is: " + username + "</h2>"; htmlRespone += "</html>"; writer.println(htmlRespone); Tại đây, mã hoàn chỉnh của lớp Servlet để xử lý mẫu đăng nhập: package net.codejava.servlet; import java.io.IOException; import java.io.PrintWriter; 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("/loginServlet") public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // read form fields String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("username: " + username); System.out.println("password: " + password); // do some processing here... // get response writer PrintWriter writer = response.getWriter(); // build HTML code String htmlRespone = "<html>"; htmlRespone += "<h2>Your username is: " + username + "<br/>"; htmlRespone += "Your password is: " + password + "</h2>"; htmlRespone += "</html>"; // return response writer.println(htmlRespone); } } Ở đây, một đầu ra ví dụ khi gửi biểu mẫu đăng nhập trên trong trình duyệt: Cho đến nay, bạn đã có được các thông tin khi xử lý dữ liệu biểu mẫu HTML với Java Servlet. Để bạn tham khảo, chúng tôi cung cấp một danh sách các ví dụ để xử lý các trường biểu mẫu HTML phổ biến như dưới đây. Lưu ý rằng chúng tôi sử dụng câu lệnh System.out.println () trong servlet để giới thiệu đầu ra.System.out.println() statement in servlet to demo the output. 1. Đọc các giá trị của trường văn bản và trường mật khẩu
PrivilegeManager.enablePrivilege("UniversalBrowserRead"); PrivilegeManager.enablePrivilege("UniversalBrowserWrite");2 2. Đọc giá trị của trường Hộp kiểm
2. Đọc giá trị của trường Hộp kiểm
PrivilegeManager.enablePrivilege("UniversalBrowserRead"); PrivilegeManager.enablePrivilege("UniversalBrowserWrite");8 Mã HTML: PrivilegeManager.enablePrivilege("UniversalBrowserRead"); PrivilegeManager.enablePrivilege("UniversalBrowserWrite");6
import java.applet.*; import java.awt.event.*; import java.awt.*; import netscape.javascript.*; public class JSjava extends Applet implements ActionListener { Button b1,b2; TextField tf; JSObject win; public void init(){ setLayout(new FlowLayout()); tf = new TextField(10); b1 = new Button("to FORM"); b2 = new Button("from FORM"); b1.addActionListener(this); b2.addActionListener(this); add(tf);add(b1);add(b2); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == b1) { // send TO FORM JSObject win = (JSObject)JSObject.getWindow(this); win.eval("setHTMLInputText('"+tf.getText()+"');"); } if (ae.getSource() == b2) { // receive FROM FORM JSObject win = (JSObject)JSObject.getWindow(this); tf.setText((String)win.eval("getHTMLInputText();")); } } }1 Mã HTML: PrivilegeManager.enablePrivilege("UniversalBrowserRead"); PrivilegeManager.enablePrivilege("UniversalBrowserWrite");6
import java.applet.*; import java.awt.event.*; import java.awt.*; import netscape.javascript.*; public class JSjava extends Applet implements ActionListener { Button b1,b2; TextField tf; JSObject win; public void init(){ setLayout(new FlowLayout()); tf = new TextField(10); b1 = new Button("to FORM"); b2 = new Button("from FORM"); b1.addActionListener(this); b2.addActionListener(this); add(tf);add(b1);add(b2); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == b1) { // send TO FORM JSObject win = (JSObject)JSObject.getWindow(this); win.eval("setHTMLInputText('"+tf.getText()+"');"); } if (ae.getSource() == b2) { // receive FROM FORM JSObject win = (JSObject)JSObject.getWindow(this); tf.setText((String)win.eval("getHTMLInputText();")); } } }4 6. Đọc dữ liệu của trường tải lên tệpĐể tạo biểu mẫu để tải lên tệp, chúng tôi cần chỉ định mã hóa cho thẻ như sau:enctypeattribute for the tag as follow: import java.applet.*; import java.awt.event.*; import java.awt.*; import netscape.javascript.*; public class JSjava extends Applet implements ActionListener { Button b1,b2; TextField tf; JSObject win; public void init(){ setLayout(new FlowLayout()); tf = new TextField(10); b1 = new Button("to FORM"); b2 = new Button("from FORM"); b1.addActionListener(this); b2.addActionListener(this); add(tf);add(b1);add(b2); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == b1) { // send TO FORM JSObject win = (JSObject)JSObject.getWindow(this); win.eval("setHTMLInputText('"+tf.getText()+"');"); } if (ae.getSource() == b2) { // receive FROM FORM JSObject win = (JSObject)JSObject.getWindow(this); tf.setText((String)win.eval("getHTMLInputText();")); } } }5 Để xử lý tải lên tệp ở phía máy chủ với Java Servlet, chúng tôi đề xuất các hướng dẫn này:
Đối với các ví dụ trong hướng dẫn này, bạn có thể tải xuống dự án dựa trên Eclipse cũng như tệp chiến tranh có thể triển khai trong phần đính kèm. Hướng dẫn khác của Java Servlet:
Thông tin về các Tác giả:Nam Ha Minh được lập trình viên Java được chứng nhận (SCJP và SCWCD). Anh bắt đầu lập trình với Java vào thời Java 1.4 và đã yêu Java kể từ đó. Kết bạn với anh ấy trên Facebook và xem video Java của anh ấy là YouTube.Thêm bình luậnLàm thế nào truyền dữ liệu từ HTML sang Java?Java Servlet và JSP Hello World Hướng dẫn với Eclipse, Maven và Apache Tomcat Hình ảnh trường:. Mã Java trong servlet: chuỗi username = request.getParameter ("tên người dùng"); Chuỗi mật khẩu = request.getParameter ("mật khẩu"); .... Output:. Chúng ta có thể kết nối HTML với Java không?Trong Java, chúng ta có thể trích xuất nội dung HTML và có thể phân tích tài liệu HTML.we can extract the HTML content and can parse the HTML Document. |