Develop/JavaScript JQuery JSP

0808 JSP Servlet

포페PostFace 2022. 8. 10. 17:31


서블릿이란
자바 클래스 형태의 웹 어플리케이션

Servlet 객체 만들기
java 위치에 Servlet 객체 생성-init,destroy 체크
-WEB-INF/lib에 servlet-api.jar 추가

프로젝트 run 주소 뒤에 URL mapping 주소 추가

Servlet 객체의 특징 :
원래 Java파일로는 Console창에만 출력이 가능했지만.
Servlet 객체는 웹브라우저에도 출력할 수 있다.
HttpServlet을 상속받았기 때문에.

@WebServlet("/Hoho") //URL mapping
// Hoho 요청하면 HaHa 서블릿이 실행된다. HaHa 객체가 생성.
public class HaHa extends HttpServlet 


doGet의 역할

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	System.out.println("doGet");
	response.getWriter().append("Served at: ").append(request.getContextPath());
}


웹 브라우저와의 연결다리를 생성한다.

서블릿의 생명주기 (lifecycle)
Hoho 요청하면 HaHa 서블릿 클래스 객체 생성=>생성자 호출
init()
service() : doGet() or doPost
destroy() : 프로그램 수정 or 서버 종료

get 요청
a 태그 통한 요청
location.href를 통한 요청
form get을 통한 요청
주소에 직접적으로 요청을 적어서 보냄

post 요청
form post를 통한 요청

@~: 어노테이션(Annotation) 
부가적인 정보를 표현하고 싶을때 사용한다.
@override
@WebServlet등


submit 을 클릭하면 login.do를 요청->
login.do 요청 처리는 LoginServlet이 처리한다.->
요청할 때 입력한 값이 request 객체에 담긴다.

요청에 해당하는 응답의 
response 에는 응답 정보가 담긴다.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	System.out.println("doPost");
	//doGet(request, response);
	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=UTF-8");
	String id= request.getParameter("id");
	String passwd= request.getParameter("passwd");
	System.out.println(id+"/"+passwd);
	PrintWriter pw=response.getWriter();
	pw.println("아이디 : "+id+"<br>");
	pw.println("비밀번호 : "+passwd+"<br>");
}



web.xml에서 URL Mapping 설정하기

<servlet>
  <servlet-name>aa</servlet-name>
  <servlet-class>myPkg.InputServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>aa</servlet-name>
  <url-pattern>/sub</url-pattern>
</servlet-mapping>



<servlet-name>은 같은 이름으로만 설정해주면 된다.


forward 액션태그, response.sendRedirect 와 같이
거쳐가게 만들기

RequestDispatcher dispatcher=request.getRequestDispatcher("next.jsp");
dispatcher.forward(request, response);

next.jsp로 바로 이동한다.



forward 액션태그, response.sendRedirect의 차이점
forward 액션태그 : 
request객체를 공유함
거쳐가는 페이지의 주소로 나온다.==최종페이지와 같지 않다.

response.sendRedirect :
request객체를 공유하지 않는다.
최종페이지와 주소가 같다.

RequestDispatcher
forward 액션태그와 상당히 비슷하다.

'Develop > JavaScript JQuery JSP' 카테고리의 다른 글

0810 JSP Servlet MVC구조  (0) 2022.08.10
0809 JSP Servlet  (0) 2022.08.10
0805 XML,EL,JSTL  (0) 2022.08.10
0721 게시판 만들기  (0) 2022.07.22
0720 JSP JDBC로 만든 칼럼 추가 삭제  (0) 2022.07.22