(Servlet)시작.

지식저장공간·2022년 10월 4일
0

Java

목록 보기
3/18
post-thumbnail

Servlet : 웹 어플리케이션으로서 웹서비스를 제공하기 위한 자바 클래스이다.

HTML파일에서 백엔드로 데이터를 전송 및 HTML에서 보내는 요청을 Servlet에서 받아 줄 수 있다. 즉, Servlet은 MVC패턴에서 Controller의 역할을 한다.

import javax.servlet.http.HttpServlet

Servlet을 사용하기 위해 Class 클래스명 extends HttpServlet
즉, HttpServlet Class의 상속을 받아 클래스를 작성해야한다.

HttpServletRequest

요청 : View단에서 Controller로 요청하기 위한 메소드 View에서 데이터, 정보등을 작성하고, Controller로 보내는 역할

HttpServletResponse

응답 : Controller에서 View페이지에 데이터처리 결과를 반환한다.

@override
doPost(HttpServletRequest, HttpServletResponse)
doGet(HttpServletRequest, HttpServletResponse)

View에서 데이터 전송 method에 따른 데이터 처리 메소드이다.

method='post' : 데이터 입력 정보가 Header에 담기지 않고, body에 담겨 데이터를 전송한다. 때문에, 사용자 입력정보가 Header에 나타나지 않아, 보안유지에 좋다.
하지만 Content-Type을 인식하지 못하기 때문에, request.setCharacterEncoding("UTF-8") 메소드를 사용하여 입력방식을 세팅한다.

method='get' : 데이터 입력 정보가 Header에 담겨 데이터를 전송한다.
데이터들이 Header에 담기기 때문에 데이터가 노출되고, 보안에 미흡한점이 있다.
데이터가 Header에 담기기 때문에 body는 빈상태로 전송되고 Content-Type을 바로 인식하는 장점이 있다.

Request.getParameter("html.name") : String
Request.getParameterValues("html.name") : String Array

HTML태그내에 지정한 name안 value의 값이 담겨 Servlet 클래스로 전송되어진다.
작성한 Servlet클래스에서 "name"을 key로 인지하여 담긴 value의 값을 가져올 수 있다.

webapp\WEB-INF\web.xml : Servlet Mapping
<servlet>
<servlet-name>Servlet명</servlet-name> : 서블릿명을 동일하게 작성.
<servlet-class>package.class</servlet-class> : Servlet class
</servlet>

<servlet-mapping>
<servlet-name>Servlet명</servlet-name> : 서블릿명을 동일하게 작성.
<url-pattern>/URL</url-pattern> : ★action과 비교하여 상대적 url을 작성해야한다.
</servlet-mapping>

localhost:8080/어플리케이션명
<form action="/어플리케이션명">
<url-pattern>/어플리케이션명<url-pattern>
html파일 위치, url을 상대적으로 작성하고, 일치시켜 Mapping한다.

<form>태그를 이용하여 action에 " / "가 포함되어있어 절대적URL로 이동,
데이터를 전송하면 해당 Servlet클래스에 데이터를 전송한다.

profile
발전하는 개발자가 꿈입니다. 지식을 쌓고 지식을 활용해 목표 달성을 추구합니다.

0개의 댓글