>Java >java지도 시간 >HTML 양식 없이 페이지 로드 시 JSP에서 서블릿을 호출할 수 있습니까?

HTML 양식 없이 페이지 로드 시 JSP에서 서블릿을 호출할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-14 06:43:13511검색

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

HTML 양식 없이 페이지 로드 시 JSP 파일에서 서블릿 호출

질문:

HTML 양식을 사용하지 않고 JSP 파일의 서블릿을 사용합니까? 예를 들어, 페이지 로드 시 HTML 테이블에 데이터베이스 데이터를 표시합니다.

답변:

예, JSP 파일에서 서블릿을 호출할 수 있습니다. 서블릿의 doGet() 메소드를 사용하는 HTML 양식입니다. 이 방법을 사용하면 요청을 전처리하여 JSP로 전달할 수 있습니다. 그러면 링크와 브라우저의 주소 표시줄에 JSP 대신 서블릿의 URL을 지정할 수 있습니다.

구현:

다음 서블릿을 고려하세요.

@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);
    }

}

그리고 예 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>

서블릿을 호출하지 않고 사용자가 직접 액세스하는 것을 방지하기 위해 JSP 파일은 /WEB-INF 폴더 내에 위치합니다.

추가 참고 사항:

  • @WebServlet은 Servlet 3.0 이상부터 사용 가능합니다. 이전 버전을 사용하는 경우 web.xml에서 수동으로 서블릿을 등록해야 합니다.
  • 서블릿의 URL 패턴에 직접 액세스할 수 있습니다(예: http://localhost:8080/context/products).
  • 서블릿 내에 HTML 양식이 있는 경우 method="post"를 사용하여 동일한 URL에 게시할 수 있습니다. 후처리를 위해 서블릿에 doPost() 메서드를 추가합니다.

관련 링크:

  • [Servlets Wiki](https:// wiki.java.net/bin/view/Javalin/servlets)
  • [doGet 및 doPost in 서블릿](https://docs.oracle.com/javase/7/docs/api/javax/servlet/http/HttpServlet.html#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse))
  • [Java 코드 피하기 JSP](https://www.ibm.com/developerworks/java/tutorials/j-jsp/j-jsp-avoidjava/)
  • [서블릿이 HTTP 상태를 반환함 404](https://stackoverflow.com/questions/647016/java-servlet-returns-http-status-404-the-requested-resource-is-not-available-serv)

위 내용은 HTML 양식 없이 페이지 로드 시 JSP에서 서블릿을 호출할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.