Daily coding
Servlet : 서버와 연결하기 2 ( Java Servlet 파일 만들기 ) 본문
< Java Servlet 기본구조 >
//여기는 서버 영역!
public class HelloServlet extends HttpServlet{
// servlet 을 만들기 위해서는 HttpServlet 클래스를 상속하여
// doGet과 doPost 메소드를 오버라이딩한다
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// get방식일때는 이곳으로
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// post방식일때는 이곳으로
}
}
: Server 에서 클라이언트의 요청을 해석하는 기능인 Servlet은 Java를 통해 만들 수 있다.
웹 프로젝트의 Java Resource에서 HttpServlet 클래스를 상속하여 생성한다
Servlet :
- java코드로 구성됨 (java코드안에 html코드로 구성)
JSP
- html코드 안에 java코드로 구성됨
- servlet은 자바코드이기 때문에 에러 코드를 발견하기 용이
- java안에 html 코드를 작성하기 때문에 복잡하고 한계가있음
* 주요 함수의 역할
* HttpServletRequest
: JSP에서 request.getParameter( "name" ) 함수의 전신이라고 할 수 있다.
- getParameter( "name") : 요청한 데이터를 받아서 String으로 바꾸어주는 역할을 한다
- "name"에는 클라이언트 쪽에서 지정한 name 속성으로 데이터를 받을 수 있다
* HttpServletResponse
: 응답을 보내기 위한 객체
- HttpServletResponse
- getWriter () : html 코드를 작성하여 담아가는 함수
* PrintWriter pw = resp.getWriter();
// 이런식으로 html코드를 작성함
* get /post방식
- get : 넘어가는 데이터가 링크에 보이도록 하는 방식,
가벼움(255바이트까지만 가능)
- post : 넘어가는 데이터가 보안이 적용되어 감추어지는 방식
(로그인 등에 사용)
- get / post는 client에게 더 중요하고,
서버에서는 똑같이 코드를 만들어 보내면 되기 때문에
html코드를 만드는 메소드를 만들어 사용하도록 한다.
// Java Servlet
// HTML 코드 작성 부분
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter(); // html코드를 여기서 작성함
pw.println("<html>");
pw.println("<head>");
pw.println("<title>제목</title>");
pw.println("<body>");
pw.println("<h1>Hello Servlet</h1>");
pw.println("<p>Hello Servlet. This text is from Servlet</p>");
pw.println("<p>"+ name +"</p>");
pw.println("</body>");
pw.println("</head>");
pw.println("</html>");
pw.close();
// 위의 코드는 Java 안에 html 코드 써서 화면에 뿌림
* 따로 메소드를 만들어 doGet / doPost 에서 호출하는 경우도 있음
// get / post는 client에게 더 중요하고, 서버에서는 똑같이 코드를 만들어 보내면 되기 때문에
// html코드를 만드는 메소드를 만들어 사용하도록 한다.
public void createHTML(String methodType, HttpServletRequest req, HttpServletResponse resp) throws IOException {
String name = req.getParameter("name");
System.out.println("name: " + name);
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter(); // html코드를 여기서 작성함
pw.println("<html>");
pw.println("<head>");
pw.println("<title>제목</title>");
pw.println("<body>");
pw.println("<h1>Hello Servlet</h1>");
pw.println("<p>Hello Servlet. This text is from Servlet</p>");
pw.println("<p>methodType : "+ methodType+"</p>");
pw.println("<p>"+ name +"</p>");
pw.println("</body>");
pw.println("</head>");
pw.println("</html>");
pw.close();
}
'Front-end > 비동기통신' 카테고리의 다른 글
Servlet : Java에서 데이터 보내는방식 1 ( sendRedirect ) (1) | 2020.01.17 |
---|---|
Servlet : 에러 만들기 및 xml <init- parameter> (0) | 2020.01.16 |
Servlet : 서버와 연결하기 1 ( web.xml 이란?) (0) | 2020.01.16 |
Servlet : Server와 Client, Sevlet의 개념 (0) | 2020.01.16 |
JSON : 데이터 불러오기 / 데이터 처리하기 (0) | 2020.01.16 |