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

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

Barbara Streisand
풀어 주다: 2024-12-09 11:54:11
원래의
713명이 탐색했습니다.

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

페이지 로드 시 JSP 파일에서 서블릿 호출

질문:

서블릿을 사용할 수 있나요? HTML을 사용하지 않고 JSP 파일에서 호출됩니다. 양식?

답변:

물론입니다. 이를 달성하려면 서블릿의 doGet() 메소드를 활용하여 요청을 사전 처리한 후 JSP로 전달합니다. 이는 브라우저의 주소 표시줄이나 링크에 JSP URL을 지정하지 않고도 달성할 수 있습니다. 대신 서블릿 URL을 지정하세요.

예:

다음 코드 조각을 고려하세요.

Servlet (ProductsServlet.java):

@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 (products.jsp):

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

...

<table border="1">
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.name}</td>
            <td>${product.description}</td>
            <td>${product.price}</td>
        </tr>
    </c:forEach>
</table>
로그인 후 복사

이 예에서 doGet() 메소드는 ProductsServlet은 제품 목록을 검색하고 이를 요청 속성으로 설정합니다. 그런 다음 요청은 products.jsp 페이지로 전달되어 목록을 반복하고 테이블에 제품을 표시합니다.

참고:

JSP 파일이 무단 직접 액세스를 방지하기 위해 /WEB-INF 폴더 내에 배치됩니다. Servlet 3.0(또는 그 이상)은 서블릿 등록을 위해 @WebServlet 주석을 지원합니다. 그러나 업그레이드할 수 없거나 호환성 문제로 web.xml을 사용해야 하는 경우 web.xml에서 서블릿을 수동으로 등록하세요.

추가 리소스:

  • [서블릿 위키 페이지](https://wiki.java.net/HowToWiki/Servlets)
  • [doGet 및 서블릿의 doPost](https://docs.oracle.com/javaee/5/tutorial/servlets/basicservlets004.html)
  • [JSP에서 Java 코드를 피하는 방법](https://stackoverflow. com/a/9701987/6776571)
  • [서블릿은 "HTTP 상태 404를 반환합니다. 요청한 리소스(/servlet)를 사용할 수 없습니다."](https://stackoverflow.com/a/4288938/6776571)

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿