Tomcat(2023-03-24)

권단비·2023년 3월 24일
0

IT

목록 보기
106/139

톰캣 : 웹서버 = WAS

[톰캣 프로젝트(servelt container) 구동 중]
hello1 / hello2 / index.jsp
톰캣이 경로를 찾아서(프로젝트 이름을 읽어서) extends HttpServlet
채팅 소켓

1.서블릿 컨테이너를 만들면서 환경 web.xml을 읽어들인다. (개발자)
2.서블릿 파일을 메모리로 올린다.
3.jsp=servelt
*jsp파일도 서블릿파일로 변환된다.
.jsp → .java가 되는 것


[Servlet특징]

[계산]
package edu.global.ex;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// Servlet을 상속받아서 Servlet 파일이라 부른다.
/**
 * Servlet implementation class HelloWorld
 */
@WebServlet("/hw3") // http://localhost:8282/servelt_example/hw3
public class HelloWorld3 extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWorld3() {
        super();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
//		response.getWriter().append("Served at: ").append(request.getContextPath());
		response.getWriter().append("===============================");
		response.getWriter().append("<br><h1>This is a rsp game.</h1><br>");
		response.getWriter().append("===============================");

		System.out.println("메롱");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}
[결과값]
3월 24, 2023 10:20:34 오전 org.apache.catalina.core.StandardContext reload
정보: 이름이 [/servelt_example]인 컨텍스트를 다시 로드하는 작업이 시작되었습니다.
3월 24, 2023 10:20:34 오전 org.apache.catalina.core.StandardContext reload
정보: 이름이 [/servelt_example]인 컨텍스트를 다시 로드하는 것을 완료했습니다.
메롱


[WebContent - WEB-INF - web.xml]

web.xml = 환경 설정 파일 = 
누가 언제 읽어서 메모리에 올릴까 : 톰캣(웹서버,WAS)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>servelt_example</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
[계산]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
index 파일 입니다.
</body>
</html>
[결과값]
http://localhost:8282/servelt_example/
http://localhost:8282/servelt_example/index.jsp
⇒web.xml로 인해 주소창에 디폴트 페이지만 기재해도 열린다.
(파일 이름을 기재하지 않아도 됨)


[계산 : html파일]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action = "FormEx" method="get">
	이름 : <input type="text" name="name" size=10></br>
	ID : <input type="text" name="id" size=10></br>
	<input type="submit" value="전송">
	<input type="reset" value="리셋">
	</form>
</body>
</html>

[계산 : java파일]
package edu.global.ex;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// Servlet을 상속받아서 Servlet 파일이라 부른다.
/**
 * Servlet implementation class HelloWorld
 */
@WebServlet("/FormEx") // http://localhost:8282/servelt_example/formex
public class formex extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public formex() {
        super();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// html에서 method가 get방식이면 해당 메소드 실행
		System.out.println("doGet() ..");
		System.out.println(request.getRemoteAddr());
		System.out.println(request.getRemoteHost());

		request.setCharacterEncoding("UTF-8");

		//	이름 : <input type="text" name="name" size=10></br> name에 적혀있는 데이터와 동일하게 써야한다.
		String name = request.getParameter("name");
		String id = request.getParameter("id");

		System.out.println(name);
		System.out.println(id);

		response.setContentType("text/html; charset=EUC-KR"); // 한글 지원
		PrintWriter writer=response.getWriter();

		writer.print("<html><head></head><body>");
		writer.print("아이디:" + id + "<br/>");
		writer.print("이름:" + name + "<br/>");
		writer.print("</body></html>");
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// html에서 method가 post방식이면 해당 메소드 실행
		System.out.println("doPost() ..");
		System.out.println(request.getRemoteAddr());
		System.out.println(request.getRemoteHost());

		request.setCharacterEncoding("UTF-8");

		//	이름 : <input type="text" name="name" size=10></br> name에 적혀있는 데이터와 동일하게 써야한다.
		String name = request.getParameter("name");
		String id = request.getParameter("id");

		System.out.println(name);
		System.out.println(id);

		response.setContentType("text/html; charset=EUC-KR"); // 한글 지원
		PrintWriter writer=response.getWriter();

		writer.print("<html><head></head><body>");
		writer.print("아이디:" + id + "<br/>");
		writer.print("이름:" + name + "<br/>");
		writer.print("</body></html>");
	}
}
[결과값]
한글처리
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=EUC-KR");




문자열 0|0|0|0|0|0|3|5|6|5|1|2|0|
INDEX값 |0|1|2|3|4|5|6|7|8|9|10|11|12|

0개의 댓글