본문 바로가기

programming/Gukbi

국비 교육 59일차 - application, include

728x90
반응형

본격적으로 프로젝트를 만드는 주간이 되었다. 근데 수업은 계속한다.. 힘들어 죽겠다

 

일단 jsp에서 사용하는 내장객체를 배우고 있다. 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--
	application : ServletContext => 서버정보 관리
	서버정보 읽기 
		getServerInfo()
		getMinorVersion()
		getMajorVersion()
	로그 읽기
		log() => 로그파일 
	환경 설정 읽기
		web.xml
	자원 정보 읽기
		***getRealPath()
	
 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>서버명</h3>
	<%= application.getServerInfo() %><br>
	<h3>Major Version</h3>
	<%= application.getMajorVersion() %><br>
	<h3>Minor Version</h3>
	<%= application.getMinorVersion() %><br>
	<h3>실제 경로</h3>
	<%=application.getRealPath("/jsp/application.jsp") %>
</body>
</html>
<%@ 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>
<%
	String driver=application.getInitParameter("driver");
	String url=application.getInitParameter("url");
	String username=application.getInitParameter("username");
	String pwd=application.getInitParameter("password");
	application.log("driver:"+driver);
	application.log("url:"+url);
	application.log("username:"+username);
	application.log("password:"+pwd);
	application.log("IP:"+request.getRemoteAddr());
	application.log("Method:"+request.getMethod());
	application.log("URI:"+request.getRequestURI());
%>
</body>
</html>

application 내장 객체를 배웠다. getInitParameter를 통해서 값을 읽어오는 방법

 

<%@ 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>
	<center>
	 <form method=post action="input_ok.jsp"
	 	enctype="multipart/form-data"><!-- 파일업로드시에만 사용이 가능 -->
	 파일첨부:<input type=file name=upload size=20>
	 <input type=submit value="파일올리기">
	 </form>
	</center>
</body>
</html>

 

post방식으로 값을 보내주는 방법

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="com.oreilly.servlet.*,com.oreilly.servlet.multipart.*"%>
<%
	request.setCharacterEncoding("UTF-8");
	String s=application.getRealPath("/jsp3"); // 톰캣이 읽어가는 실제 경로명
	String path=s;
	String enctype="UTF-8";
	int size=1024*1024*100; //100MB
	MultipartRequest mr=
		new MultipartRequest(request,path,size,enctype,
				new DefaultFileRenamePolicy());
	// new DefaultFileRenamePolicy() - 파일명이 겹치는걸 방지함
	String name=mr.getOriginalFileName("upload");
	response.sendRedirect("output.jsp?file="+name);
%>

inert_ok에서 post방식으로 값을 실제로 읽어주고 있다. 여기서 이제 파일을 받아와서 처리를 해준다. 

여기서 받아온 파일을 output.jsp로 다시 보내준다. 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--
	out => println() | <%= %>
	application => getInitParameter, getRealPath()
	pageContext => include, forward
--%>
<%
	request.setCharacterEncoding("UTF-8");
	String fn=request.getParameter("file");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<img src="<%=fn%>">
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--
      JSP에서 주로 사용하는 내장(기본) 객체
      = request : getParameter() , getParameterValues()
                  setCharacterEncoding()
      = response : setHeader()=>다운로드 , sendRedirect()
      ***= application : web.xml에 등록된 데이터 읽기 : getInitParameter()
                      실제 경로명 : getRealPath()
      = out : println()
      = pageContext : include,forward
            <jsp:include> <jsp:forward>
      = session VS cookie
      
      사용자가 보낸 데이터 활용
      = 받은 jsp에서만 사용 : request => 화면 변경시 초기화
      = 데이터를 모든 JSP에서 사용  => session 
      
 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 주로 이런 내장 객체를 사용한다고 생각하고 사용하면 될것 같다. 

728x90
반응형