6월 13일 내용정리
1.쿼리스트링 이란?
웹프로그램에서 현재페이지의 정보를 바로 다음 페이지에서 전혀 알수 없다.왜? 서버 통신시 서버에서 요청 받은 결과를 제공하고 통신을 끊어버리기 때문 왜?통신의 효율성을 위해서 계속 연결하고 있음 효율이 떨어짐
그래서 페이지가 이동되어 버리면 이전 페이지의 값들을 잃게됨.
페이지 사이에 정보 교환이 필요한 경우가 있는데 이를 위하여 웹 프로그래밍에서 제공하는 것이 쿼리 스트링 이다.
2.쿼리스트링 특징
(1)get방식 요청
(2)url주소뒤에 입력데이터를 함께 제공
(3)쿼리스트링 형태
url주소?이름=값&이름=값
(4)사용자가 html페이지의 입력 양식에 입력된 값은 쿼리스트링에 실려서 서버에 전송
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>서블릿 쿼리스트링</title>
//아래 자바 스크립트 파일 연결 src=자바스크립트파일 상대경로주소
<script type="text/javascript" src=Study_01.js></script>
</head>
<body>
<form method="get" action="Study_00" name="frm">
아이디: <input type="text" name="id"><br>
나이: <input type="text" name="age"><br>
<input type="submit" value="전송" onclick="return check()">
</form>
</body>
</html>
3.getParameter()
파라미터 값을 항상 문자열 String 형태로만 전달
숫자 값을 가져올때는 Integer.parseInt()를 이용하여 Integer 로 바꿔준다.
package study_0613;
@WebServlet("/Study_00")
public class Study_00 extends HttpServlet{
public Study_00() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String id =request.getParameter("id");
int age =Integer.parseInt(request.getParameter("age"));
PrintWriter out=response.getWriter();
out.print("<html><body>");
out.print("당신이 입력한 정보입니다.<br>");
out.print(id);
out.print("나이<br>");
out.print(age);
//자바스크립트로 이전 페이지로 이동하는 링크를 만들어줌
out.println("<br><a href='javascript:history.go(-1)'>다시</a>");
out.print("</html></body>");
out.close();
}
}
4.JSP로 시작하는 웹 프로그래밍
인터넷을 사용하는 사용자에게 정보를 제공하기 위해서 html태그를 사용하여 웹브라우져 내에 정보를 표시 하는데 jsp에서는 이러한 html태그를 사용할 수 있어 웹 애플리케이션의 프리젠테이션 역할을 한다.
JSP는 JSP에서만 사용 가능한 다양한 태그(예,스크립트)를 이용하여 쉽게 코딩을 할수 있게 도와줌
아래 코드를 보면 <% 자바 코드 %> 구분자 안에 있는 자바코드를
웹컨테이너(WAS)는 JSP로 인식하여 이를 해석한 후 html 형태로 변환
<!--jsp로 코딩을 하면 웹컨테이너(WAS에 있음)가 서블릿형태로 만들어줌
즉,jsp는 서블릿을 쉽게 만들어 주는 기능이다.-->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>myCount</title>
</head>
<body>
<%
int count=0;
out.print("count:");
out.print(++count);
%>
</body>
</html>
5.JSP와 html관계
웹서버에게 JSP페이지를 요청--JSP요청-->서버의 JSP파일--html로통역-->클라이언트 브라우져 출력
6.JSP와 서버의 통신

7.JSP가 서블릿에 비해 처리속도가 느리지 않는 이유
한번 JSP를 서블릿으로 변환한 class파일이 있다면, 다시 새로운 정보를 요청하지 않는이상 그전에 변환한 class파일을 쓴다.

8.jsp기본 태그
<% %> 스크립트릿: 자바코드를 기술함
<%!%> 선언: 변수와 메서드를 선언함.
<%=%> 표현식:계산식이나 함수를 호출한 결과를 문자열 형태로 출력함.
<%-- --%> jsp주석: 클라이언트의 소스보기에 나타나지 않음 내부적인 주석으로 쓰고 싶을때
<!-- --> html주석: 클라이언트의 소스보기에 나타나지 않음
내부적인 주석으로 쓰고 싶을때
<% @ %>:jsp 페이지의 속성을 지정함
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%! int global_cnt=0; //선언문안에 전역변수, static변수 이다. %>
<%
int local_cnt=0; //지역변수
out.print("<br> local_cnt:");
out.print(++local_cnt);
out.print("<br> global_cnt:");
out.print(++global_cnt);
%>
<%-- 출력 표현식으로 쓰기
<br>local_cnt:<%=++local_cnt%>
<br>global_cnt:<%=++global_cnt%>
--%>
</body>
</html>