서블릿에 어노테이션하는 방법 대신 쓰이던 방법
xml에 아래를 추가, 어노테이션 없애기
<servlet-mapping>
<url-pattern>/test</url-pattern>
<servlet-name>s01</servlet-name>
</servlet-mapping>
<servlet>
<servlet-name>s01</servlet-name>
<servlet-class>com.kh.controller.MyServlet</servlet-class>
</servlet>
-> 아직도 몰라서 정리
클라이언트가 was에게 요청한 경로(요청 경로:/a)에 맞는 a서블릿(/a)이 응답으로 sendRedirect(경로:/b)를 한다고 가정한다.
클라이언트는 이 응답에 맞는 경로(/b)로 다시 was에게 새로 요청(요청 경로:/b)한다.
-> ✨위아래 각 요청이 다르기에 request, response 객체도 새로 생성하는 것이다.
//서블릿의 생명주기(life cycle) @Override public void init() throws ServletException { System.out.println("init called ...");
public void destroy() { System.out.println("destroy.."); }
init()
- service()
- doGet()
|| doPost()
- destroy()
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("service called ..."); // 아래를 해야 doGet()이 호출된다!!! doGet(req, resp); }
@WebServlet("/test")
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet called...");
// 리퀘스트에서 인코딩
request.setCharacterEncoding("UTF-8");
// 리스폰스에서 인코딩
response.setContentType("text/html; charset=UTF-8");
response.getWriter().write("zzzz한글!~!~!~!~!");
}
@WebServlet("/test")
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet called...");
// 리퀘스트에서 인코딩
request.setCharacterEncoding("UTF-8");
// 리스폰스에서 인코딩
response.setContentType("text/html; charset=UTF-8");
response.getWriter().write("zzzz한글!~!~!~!~!");
RequestDispatcher x = request.getRequestDispatcher("/index.jsp");
x.forward(request, response);
}
<jsp:forward page="home.jsp"></jsp:forward>