Rylah's Study & Daily Life

06. JSP Page Operator, Control Flow, UTF-8 본문

Web Study/JSP

06. JSP Page Operator, Control Flow, UTF-8

Rylah 2022. 3. 16. 01:26

1. JSP 페이지의 연산자

  • JSP는 자바 식별자 규칙을 따르는데, 식별자(identifier)란 클래스명, 메소드명, 멤버 변수명, 자동 변수명을 말한다.
  • 자바 식별자는 길이에는 제한이 없고 첫 글자는 반드시 영문자, _, $로 시작해야 된다.
  • 자바 및 JSP는 byte, short, int, long, float, double, char, boolean 등의 기본 데이터 타입을 제공한다.
  • 기본 데이터 타입을 갖는 변수들은 해당 변수의 값으로 어떠한 데이터 값을 갖느낟.
  • JSP에서는 자바와 마찬가지로 산술연산자, 관계연산자, 논리연산자, 비트 연산자, shift 연산자, 증감 연산자 조건 연산자, 대입 연산자를 사용할 수있다.
타입 크기(byte) 자료 범위 기본 값
byte 1 byte  -128 ~ 127 0
short 2 byte  -32,768 ~ 32,767 0
int 4 byte  -2,147,243,648 ~ 2,147,243,647 0
long 8 byte  -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 0
float 4 byte  -3.40292347E+38 ~ 3.40292347E+38 0
double 8 byte  -1.79769313486231570E+308 ~ 1.79769313486231570E+308 0
char 2 byte '\u0000' ~ 'uFFFF' 0
boolean 1 bit true or false false

 

환경 변수명 환경 변수 값
() left -> right
++, -- , +, -, ~, !, (cast) right -> left
*, /, % left -> right
+, - left -> right
<<, >>, >>>> left -> right
<, >, <=, >=, instanceof left -> right
==, != left -> right
& left -> right
^ left -> right
| left -> right
&& left -> right
|| left -> right
?: right -> left
=, +=, -=, *=, /=, %= right -> left

 

2. JSP 페이지의 제어문

  • if문 : if문은 조건비교 분기문의 하나로, 주어진 조건을 비교해서 그 결과에 따라 여러 대안 중에서 하나를 선택할 때 사용, if문에 들어갈 수 있는 타입은 리턴 타입 또는 결과값이 boolean 타입인 경우에 가능
  • switch문 : switch문은 다중 조건 분기일 때 if문을 대체할 수 있다. if는 다중 조건인 경우 복잡해진다. 이 때 switch를 사용하는 것이 낫다.
  • for문 : 조건에 의한 일정한 문장을 반복 수행하는 문장이다.
  • while문 : 반복횟수를 알 수 없는 경우에 주로 사용한다.

3. Tomcat 기반에서 한글 처리

  • 서버에서 웹 브라우저에 응답하는 페이지의 화면 출력시 한글 처리
1
<%@ page contentType="text/html; charset=UTF-8"%>
cs
  • 웹 브라우저에서 서버로 넘어오는 파라미터 값에 한글이 있는 경우(Post 방식) 한글 처리
1
<% request.setCharacterEncoding("UTF-8");%>
cs

 

  • 웹 브라우저에서 서버로 넘어오는 파라미터 값에 한글이 있는 경우(Get 방식) 한글 처리
  • <% request.setCharacterEncoding("UTF-8");%> 코드를 기입
  • 추가로 실제로 서비스 하는 환경인 톰캣\conf 폴더에 있는 server.xml 파일과 이클립스 Project Explorer 뷰의 Servers Tomcat 항목에 server.xml에 한글 인코딩을 추가

 

 

1. 알고리즘?

 - 주어진 문제를 해결하기 위한 일련의 과정이나 절차

 

2. JSP에서 사용할 수 있는 제어문들인 조건비교 분기문 및 조건비교 반복문의 종류를 나열하시오

제어문 종류
조건문 if, if ~ else, if ~ else if ~ else
반복문 for, while, do while

 

3. 다음은 아이디와 패스워드를 입력하여 아이디가 "abcd"이고 비밀번호가 "z1234"라면 로그인에 성공하였습니다.를 표시하고 그렇지 않으면 로그인에 실패하였습니다.를 표시하는 프로그램을 작성해보시오

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Problem06_03 Form</title>
</head>
<body>
    <h2>아이디와 패스워드를 입력하세요</h2>
    <form method="post" action="problem06_03do.jsp">
    ID : <input type="text" name="id"> <br>
    PW : <input type="password" name="passwd"> <br>
    <input type="submit" value="입력 완료">
    </form>    
</body>
</html>
cs
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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Problem06_03 Do!</title>
</head>
<body>
    <%request.setCharacterEncoding("UTF-8"); %>
    <%
    String id = request.getParameter("id");
    String pw = request.getParameter("passwd");
    
    boolean isPass = false;
    
    if (id.equals("abcd"&& pw.equals("z1234"))
        isPass = true;
    else
        isPass = false;
    
    if (isPass)
        out.println("로그인에 성공하였습니다.");
    else
        out.println("로그인에 실패하였습니다.");
    %>
</body>
</html>
cs

 

 

4. 다음과 같은 결과가 표시되도록 problem06_04Form.jsp 페이지와 probelm06_04Do.jsp를 작성하시오

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Problem06_04 Form</title>
</head>
<body>
<h2>반복 수행할 숫자를 입력하세요.</h2>
<form method="post" action="problem06_04Do.jsp">
반복할 숫자 입력 : <input type="text" name="number"> <br> 
<input type="submit" value="입력 완료">
</form>
 
 
</body>
</html>
cs
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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Problem06_04 Do!</title>
</head>
<body>
<h2>입력한 숫자만큼 반복 수행</h2>
<%
request.setCharacterEncoding("UTF-8");
%>
 
<%
int getNums = Integer.parseInt(request.getParameter("number"));
if (getNums <= 0)
    out.println("생성할 값이 없습니다.");
else {
%>
<table border="1">
    <tr>
        <th>글번호</th>
        <th>글제목</th>
        <th>글내용</th>
    </tr>
 
<%
    for (int i = getNums; i > 0; i--)
    {
%>
<tr>
    <td><%=i%></td>
    <td><%="제목 " + i %></td>
    <td><%="내용 " + i %></td>
</tr>
<%    
    }
}
%>
</table>
</body>
</html>
cs

 

'Web Study > JSP' 카테고리의 다른 글

08. JSP Page Action Tag  (0) 2022.03.19
07. JSP Page Implicit Object  (0) 2022.03.19
05. JSP Page Script  (0) 2022.03.16
04. JSP Page Directive  (0) 2022.03.15
JSP 예제 에러 Timestamp (Tomcat 버전 문제)  (0) 2022.03.15