Rumah > Java > javaTutorial > Bolehkah saya Memanggil Servlet daripada JSP pada Muatan Halaman Tanpa Borang HTML?

Bolehkah saya Memanggil Servlet daripada JSP pada Muatan Halaman Tanpa Borang HTML?

Susan Sarandon
Lepaskan: 2024-12-14 06:43:13
asal
518 orang telah melayarinya

Can I Call a Servlet from a JSP on Page Load Without an HTML Form?

Memanggil Servlet daripada Fail JSP pada Pemuatan Halaman tanpa Borang HTML

Soalan:

Adakah mungkin untuk menggunakan servlet dari fail JSP tanpa menggunakan borang HTML? Sebagai contoh, untuk memaparkan data pangkalan data dalam jadual HTML apabila halaman dimuatkan.

Jawapan:

Ya, adalah mungkin untuk memanggil servlet daripada fail JSP tanpa Borang HTML menggunakan kaedah doGet() servlet. Kaedah ini membolehkan anda mempraproses permintaan dan memajukannya kepada JSP. Anda kemudiannya boleh menentukan URL servlet dan bukannya JSP dalam pautan dan bar alamat penyemak imbas.

Pelaksanaan:

Pertimbangkan servlet berikut:

@WebServlet("/products")
public class ProductsServlet extends HttpServlet {

    @EJB
    private ProductService productService;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Product> products = productService.list();
        request.setAttribute("products", products);
        request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response);
    }

}
Salin selepas log masuk

Dan contoh JSP:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.name}</td>
            <td>${product.description}</td>
            <td>${product.price}</td>
        </tr>
    </c:forEach>
</table>
Salin selepas log masuk

Perhatikan bahawa Fail JSP diletakkan dalam folder /WEB-INF untuk menghalang akses terus oleh pengguna tanpa memanggil servlet.

Nota Tambahan:

  • @WebServlet tersedia daripada Servlet 3.0 dan ke atas. Jika menggunakan versi yang lebih awal, pendaftaran servlet manual dalam web.xml diperlukan.
  • Corak URL servlet boleh diakses terus (cth., http://localhost:8080/context/products).
  • Jika borang HTML terdapat dalam servlet, ia boleh menghantar ke URL yang sama menggunakan method="post". Tambahkan kaedah doPost() pada servlet untuk pemprosesan pasca.

Pautan Berkaitan:

  • [Servlets Wiki](https:// wiki.java.net/bin/view/Javalin/servlets)
  • [doGet dan doPost in Servlets](https://docs.oracle.com/javase/7/docs/api/javax/servlet/http/HttpServlet.html#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse))
  • [Mengelakkan Kod Java masuk JSP](https://www.ibm.com/developerworks/java/tutorials/j-jsp/j-jsp-avoidjava/)
  • [Servlet Mengembalikan Status HTTP 404](https://stackoverflow.com/questions/647016/java-servlet-returns-http-status-404-the-requested-resource-is-not-available-serv)

Atas ialah kandungan terperinci Bolehkah saya Memanggil Servlet daripada JSP pada Muatan Halaman Tanpa Borang HTML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan