web.xml에서 매핑하지 않고 Servlet을 호출 할 수 있습니까? [복제]
Dec 12 2020
만약 내가 조치를 A와 서블릿 , 우리는 사용해야 매핑 권장 XML에 있습니다. 따라서 다음과 같이 보일 것입니다.
HTML 색인 :
<!DOCTYPE html>
</head><body>
<form action="go" method="POST">
Enter name: <input type="text" name="name">
<button>Submit form :)</button>
</form>
</body></html>
XML 매핑 :
<web-app..........
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>ServletOne</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/go</url-pattern>
</servlet-mapping>
</web-app>
서블릿 클래스
public class ServletOne extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String s = req.getParameter("name");
PrintWriter pw = resp.getWriter();
pw.println("Welcome " + s);
}
}
그리고 잘 작동합니다. 그러나 내 질문은 매핑을 만들고 싶지 않다면 어떻게 될까요? 서블릿 클래스를 직접 호출하고 싶습니다. XML 파일을 제거하고 다음 행을 모두 수행했습니다.
<form action="ServletOne" method="POST">
<form action="ServletOne.class" method="POST">
<form action="ServletOne.java" method="POST">
그리고 .. 그들 중 누구도 작동하지 않습니다. 실제로 매핑하지 않고 서블릿을 직접 호출 할 수 있습니까? 그렇다면 어떻게? 때로는 테스트 목적으로 모든 서블릿을 매핑하는 데 시간을 낭비 할 필요가 없습니다.
답변
1 LiveandLetLive Dec 12 2020 at 05:07
예를 들어 주석을 사용할 수 있습니다.
@WebServlet("/go")
public class ServletOne extends HttpServlet {
//...
}
실제로 Servlet 3.0 이상에서는 대부분의 개발자가 이것을 XML 구성보다 선호합니다.
서블릿 사양에서는 /
. 그것에 대해 자세히 알아 보려면 이것을 확인하십시오 .