Servlet/JSP 기초

bitna's study note·2022년 6월 14일

Servlet/JSP

목록 보기
6/21
post-thumbnail

6월 14일 내용정리

쌤이 서블릿 기본만 하고 바로 JSP로 넘어가서 JSP공부중...

1.jsp기본 태그
<% @ include file="연결파일" %>
공통적으로 사용되는 내용을 저장한 파일을 포함 시킬때 쓰임.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>메인페이지</title>
</head>
<body>

<a href="0614_05.jsp"><h1>메인페이지</h1></a>
<!-- 필요한 위치에 필요한 파일 위치하기 -->
<%@ include file="0614_03.jsp"%> 

</body>
</html>

2.JSP내장 객체
JSP에서 객체를 생성하는 과정 없이 바로 사용할 수 있는 객체
서블릿 파일로 변환될때 JSP컨테이너가 객체를 자동으로 생성
예)<% out.print("내용") %>
->JSP문서의 스크립트릿 내부에서 out객체를 선언 없이 사용

내장 객체는 _jspService()메서드 안에서 객체화 됨

3.request 내장객체
클라이언트의 요청을 받아서 어떤 응답을 제공해주는 기능을 제공
웹 서비스를 위한 클라이언트와 웹 서버 사이의 요청에 관련된 정보는 request객체에 저장되어 관리

4.request 내장객체중 parameter 관련 메서드
parameter란?클라이언트가 폼에 데이터를 입력한 후 서버에 요청할때 전송되는 폼에 입력된 정보 형태

getParameter(name속성명):괄호안에 지정한 이름의 파라미터를 구한다.
getParameterNames(name속성명):모든 파라미터의 이름을 구한다.
getParameterValues(name속성명):파라미터 값이 여러개일 경우, 파라미터의 모든 값을 String[]로 구한다.

<%@ 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>
<h1>설문조사결과</h1>
이름:<b><%= request.getParameter("userName")%></b><br>
성별:<b><%= request.getParameter("gender")%></b><br>
당신이 좋아하는 계절은 
<%
String Season[]=request.getParameterValues("Season");
for(String mySeason:Season){
%>
<b><%=mySeason%></b>
<%}%>
입니다.<br>
<h3><a href='javascript:history.go(-1)'>다시</a></h3>

</body>
</html>

5.response 내장 객체
실행결과를 브라우저로 되돌려줄때 사용하는 내장객체

6.reponse 내장객체
실행결과를 브라우져로 되돌려 줄때 사용하는 내장 객체

7.jap 페이지 이동
(1)리다이렉트 방식
reponse 객체의 sendRedirect()메소드를 사용하여 웹 서버가 브라우저에게 지정한 페이지로 이동하도록 지시함.
이때 브라우저의 URL을 변경하여 페이지를 이동하는 방식으로 request와 reponse 객체가 유지 되지 않는다.
그래서 다음 페이지로 넘어가면 이전페이지의 정보가 사라지므로 쿼리문으로 원하는 정보를 체이지 이동때 같이 보내기도 한다.

response.sendRedirect("지정 URL?id="+id(같이보낼정보));


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login check</title>
</head>
<body>
<%
String Id="aaa";
String Pw="111";

String id=request.getParameter("userId");
String pw=request.getParameter("userPw");

if(Id.equals(id)&&Pw.equals(pw) ){
	//폼태그가 없으므로 쿼리스트링을 완전하게 만들어서보내줌
	response.sendRedirect("0614_12.jsp?id="+id); 
}else{
	response.sendRedirect("0614_10.jsp");
}
%>
</body>
</html>

(2)포워드 방식
포워드 방식은 서버 상에서 페이지 이동으로 URL을 변경이 없음,
forward()메소드는 데이터 전송시 기존의 request 와 reponse는 유지되어 이동
request객체가 그대로 유지되기 때문에 setAttribute()메소드로 request객체에 Attribute 값으로 저장하여 전송
request.setAttribute("age",20);

이동한 페이지에서 Attribute 값을 얻어 와서 사용할려면 getAttribute()메소드의 매개변수로 Attribute이름을 지정
int myAge=Integer.parseInt(request.getParameter("age"));

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward test</title>
</head>
<body>
<%
int myAge=Integer.parseInt(request.getParameter("age"));
if(myAge <= 19){
%>
<script type="text/javascript">
alert("19세 미만 입장 불가")
history.go(-1)
</script>
<%
}else{
	request.setAttribute("name", "김자바"); //id는 name인데 값은 김자바,속성을 추가
	RequestDispatcher dispatcher= request.getRequestDispatcher("0614_15.jsp");
	dispatcher.forward(request, response); //request,response에 속성을 객체에 저장해서 넘겨줌
}
%>

</body>
</html>	

8.application 내장 객체
application 내장 객체는 하나의 웹 어플리케이션을 관리하고 웹어플리케이션 안에서의 자원 공유
하나의 웹어플리케이션=하나의 웹 프로젝트
application객체도 정보(자원)을 Attribute에 저장
application객체에 저장된 내용은 하나의 프로젝트 내의 모든 jsp페이지에서 공통적으로 사용

9.내장객체의 영역
해당 객체가 얼마 동안이나 살아있는가를 지정해 주는 것을 영역이라고 함.
(1)page:하나의 jsp페이지를 처리할 때 사용되는 영역
(2)request:하나의 요청을 처리할때 사용되는 영역
(3)session:하나의 브라우져와 관련된 영역
(4)application:하나의 웹 어플리케이션과 관련된 영역

10.jsp내장 객체에서 정보를 주고 받기위한 메소드
setAttribute(name,value)
getAttribute(name)
getAttributeNames()
removeAttribute(name)

name:String, value:Object, return:Object
value와 return은 Object타입이므로 사용시 형변환 햐줘야함

11.액션태그
jsp페이지 사이를 제어하여 서버나 클라이언트에게 어떤행동을 하도록 명령하는 태그

*기본형식
<jsp:...속성="값>내용</jsp:...>

12.<jsp:forward page="연결URL"/>
현재 jsp페이지에서 URL로 지정한 특정 페이지로 넘어갈때 사용하는 태그
13.<jsp:param>
<jsp:forward>액션 태그로 이동하는 페이지에 정보를 추가할때 시용하는 태그

14.URLEncoder
대소문자, 숫자, 밑줄을 제외한 URL에 있는 문자를 코드화하는 것

15.URLDecoder
URLEncoder(URL에 있는 문자를 코드화하는 것)을 역으로 텍스트화 한것

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글