본문 바로가기

(Before)BitSchool

2014/05/28 JSP - servlet, get방식, post방식

반응형

프레임웍(FrameWork)

- 특정 어플리케이션 개발을 위해 표준화된 설계 모델과 API를 통칭

- 사용자요구사항을 보다 신속하게 반영하고 기존 시스템을 효율적으로 유지 보수 하기 위한 노력의 결과물


Servlet

- 자바 기반의 웹 프로그래밍 기술로 자바 언어의 모든 기능을 사용할 수 있으며 Thread 기반으로 처리되어 진다.

- 프로그램 내에서 화면 코딩을 제어해야 하는 문제로 유지보수에 많은 문제점이 발견되어 이 문제점을 개선한 것이 JSP이다.


JSP

- 서블릿 기반의 서버 스크립트 언어

- 서블릿 장점을 수용하면서 단점을 보완시킨 언어

- JAVA EE(Enterprise Edition)의 프리젠테이션 레이어 핵심 기술


JSP소스와 servlet 복사 위치

JSP소스 파일은 톰캣안에 넣어놓아야한다.

C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps 이 폴더안에 새로운 폴더를 생성해주고 WEB-INI폴더와 classes폴더를 만들어주고 WEB-INI폴더안에  servlet-api 넣어준다.


servlet을 사용하려면 톰캣안에있는 C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib\servlet-api를  C:\Program Files\Java\jre8\lib\ext 안에 넣어줘야한다.

C:\Program Files\Java\jdk1.8.0_05\jre\lib\ext 여기에도 servlet-api 넣어준다.




JSP파일을 톰캣안이 아닌 다른곳에 놓으려면

C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf에서 server에 <Context>를 추가 해줘야 한다.




urlmapping - 웹상에서 불려질 고유한 주소를 주는 것. (닉네임)

<servlet>

<servlet-name>First</servlet-name>

<servlet-class>FirstServlet</servlet-class>

  </servlet>

  <servlet-mapping>

<servlet-name>First</servlet-name>

<url-pattern>/bit</url-pattern>

  </servlet-mapping> 




get방식

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
/* Servlet 생성
1. GeneralServlet 상속
2. HttpServlet 상속
    - 1. 직접호출
    --> 서블릿 등록
    2. html을 통해 호출하는 방법
*/
import javax.servlet.http.*;
import java.io.*;
 
public class FirstServlet extends HttpServlet {
 
    //http://127.0.0.1:9090/JSP/bit?id=aaa&pw=bbb  서블릿 주소에 id와 pw 파라미터를 넘겨준다.
 
 
    //1. get방식으로 request를 받아 들이는 서블릿
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
    {
            // 1. HttpServletRequest
            // --> 클라이언트로부터 전달받은 요청에 대한 정보들
            //--> 파라미터 정보, 보안속성, 접속자 정보
            // 2. HttpServletResponse
            // -->클라이언트쪽으로 되돌려주는 정보, 응답정보
            resp.setCharacterEncoding("euc-kr");
 
        
            PrintWriter out = resp.getWriter();
            out.println("  <html><body> ");
            out.println("<h2>서블릿테스트 </h2>");
            out.println("  </body></html> ");
    }
}





get방식으로 파라미터 받기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
/* Servlet 생성
1. GeneralServlet 상속
2. HttpServlet 상속
    - 1. 직접호출
    --> 서블릿 등록
    2. html을 통해 호출하는 방법
*/
import javax.servlet.http.*;
import java.io.*;
 
public class FirstServlet extends HttpServlet {
 
    //1. get방식으로 파라미터를 받는다.
    //http://127.0.0.1:9090/JSP/bit?id=aaa&pw=bbb  서블릿 주소에 id와 pw 파라미터를 넘겨준다.
 
 
    //1. get방식으로 request를 받아 들이는 서블릿
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
    {
            // 1. HttpServletRequest
            // --> 클라이언트로부터 전달받은 요청에 대한 정보들
            //--> 파라미터 정보, 보안속성, 접속자 정보
            // 2. HttpServletResponse
            // -->클라이언트쪽으로 되돌려주는 정보, 응답정보
 
 
            String id = req.getParameter("id");
            String pw = req.getParameter("pw");
 
            resp.setCharacterEncoding("euc-kr");
 
        
            PrintWriter out = resp.getWriter();
            out.println("  <html><body> ");
            out.println("<h2> "+id+" : "+pw+ "</h2>");
            out.println("  </body></html> ");
    }
}








HTML로 파라미터 넘기기  


get방식은 240Byte까지 전달되고 보안이 필요없이 URL에 노출로 보안성이 요구되는 경우엔 사용할수없다. http://127.0.0.1:9090/JSP/bit?id=aaa&pw=bbb 이렇게 비번과 아이디가 주소에 다 보이게 된다.

post방식은 보안이 된다. URL bit뒤에 아무것도 붙지않고, 데이터크기의 제한이 없고, 서버로 정보를 올리기 위해 설계됨.

get방식


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
    <form action="./bit"> <!--기본값으로 get이다. ./는 나의 위치-->
        <input type="text" name = "uid"/>
        <input type="text" name="upw"/>
        <input type="submit" name = "OK" value="OK!">
    </form>
 </body>
</html>









post방식

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
    <form method="post" action="./bit"> <!--post방식 ./는 나의 위치-->
        <input type="text" name = "data"/>  <!-- 변수를 바꿔줌 -->
        <input type="text" name="data"/>
        <input type="submit" name = "OK" value="OK!">
    </form>
 </body>
</html>



URL에 id값과 pw값이 써지지않는다.




JAVA 소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
/* Servlet 생성
1. GeneralServlet 상속
2. HttpServlet 상속
    - 1. 직접호출
    --> 서블릿 등록
    2. html을 통해 호출하는 방법
*/
import javax.servlet.http.*;
import java.io.*;
 
public class FirstServlet extends HttpServlet {
 
    //1. get방식으로 파라미터를 받는다.
    //http://127.0.0.1:9090/JSP/bit?id=aaa&pw=bbb  서블릿 주소에 id와 pw 파라미터를 넘겨준다.
 
 
    //1. get방식으로 request를 받아 들이는 서블릿
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
    {
            // 1. HttpServletRequest
            // --> 클라이언트로부터 전달받은 요청에 대한 정보들
            //--> 파라미터 정보, 보안속성, 접속자 정보
            // 2. HttpServletResponse
            // -->클라이언트쪽으로 되돌려주는 정보, 응답정보
 
 
            String id = req.getParameter("uid");
            String pw = req.getParameter("upw");
 
            resp.setCharacterEncoding("euc-kr");
 
        
            PrintWriter out = resp.getWriter();
            out.println("  <html><body> ");
            out.println("<h2> "+id+" : "+pw+ "</h2>");
            out.println("  </body></html> ");
    }
 
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException{
        
        
 
        String[] datas = req.getParameterValues("data");
 
        PrintWriter out = resp.getWriter();
            out.println("  <html><body> ");
            out.println("<h2> "+datas[0]+" : "+datas[1]+ "</h2>");
            out.println("  </body></html> ");
    }
}
 





반응형

'(Before)BitSchool' 카테고리의 다른 글

2014/05/30 JSP - session,cookie, javaBean  (0) 2014.05.30
2014/05/29 Servlet, JSP  (0) 2014.05.29
2014/05/27 JSP  (0) 2014.05.27
2014/05/26 javanetwork - 직렬화, UDP  (0) 2014.05.26
2014/05/23 java network - 쓰레드, Thread  (0) 2014.05.23