반응형
*JSP(Java Server Page)
-
///// Servlet과 같은 일을 하지만 훨씬 편함
-
Servlet의 단점을 개선한 Server Side Script(SSS)
-
=>개발자와 디자이너간의 업무 구분이 안된다.
-
디자이너와 개발자간의 업무구분이 어느정도는 가능해진다.//(Servlet2같은 느낌으로 비슷)
-
Java EE(Java Enterprise Edition)에 제공하는 Servlet의 개선판.
-
Java SE(Java Standard Edition)에서 제공하는 기능(클래스,인터페이스)를 사용할 수 있다.
-
느리다(장점) 안정적-Thread 지원
-
Server Side Script=>JSP-java,ASP-VB,PHP-C기반 //기반이 다 다르다.
-
//웹의 성능은 동접자 수로 판별 하는데
-
ASP는 속도가 빠른대신 동접자가 많아질수록 떨어지고/ PHP는 속도중간,유지력도 중간/ Servler/JSP는 비교적 느려도 그 속도가 유지된다.
-
ASP : 소형 웹사이트(Thread처리x=>그만큼의 프로세스가 생성되어 순차적 처리) //150명정도면 소형
-
php : 중형 서버 (구조가 별로..)
-
Java : 대형/중형
-
다 좋은 언어고 언제 쓸거냐~를 따지려는 것.
-
//HTML에서는 Compile을 하지 않는데,,class>HTML>코드로 계단식 업무가 된다.
-
Compile을 개발자가 하지 않는다. (편의성)
-
Servlet에서 제공하는 요청처리객체, 응답처리 객체, 관계유지 객체를 그대로 사용한다.
-
=>HttpServletRequest : 접속자의 입력값 받기/접속자의 정보 받기/페이지 이동
-
=>HttpServletResponse : 응답방식설정/출력스트림/페이지 이동
-
=>HttpSession / Cookie : 접속자의 HDD에 저장
-
(인터벌 : 요청이 끝나고 다음요청이 들어올때 까지의 시간)-기본 30분
-
HTML tag 사이에 JSP tag's 을 넣어서 정의 사용.
-
HTML(Hyper Text Markup Language) - 팀버너즈리가 만듦
-
JSPtag's, 내장객체, 액션태그, 표준액션(tag library), EL(Exculation Language)
-
필수 몰라도 되지만 알면 편함
<%@ 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 name="코잘잘 이재찬";
%>
안녕 JSP<br/>
내 이름은 <strong><%=name %></strong> 입니다.<br/>
스릉흔드 JSP
</body>
</html>
*JSP tag's
-
///내가 코딩할수 있는게 분명함.
-
사용할 java Code를 정의하는 tag
-
JSP tag's 내의 내용이 Java Code로 생성된다.
태그명 |
태그 |
사용 |
directive
(지시자) |
<%@ page %> |
페이지 지시자
JSP페이지의 환경설정용 |
<%@ inclue %> |
인클루드 지시자
여러 JSP를 한번에 보여줄 때
(HTML tag로는 iframe tag가 있다.) | |
declaration
(선언) |
<%! %> |
JSP에서
method 정의
instance 변수 정의 |
Scriptlet |
<% %> |
JSP에서 method내 자바코드 작성
->변수선언,연산,제어문,,,등
※ _jspService method 내 코드로 생성 |
expression
(표현식) |
<%= %> |
JSP 내의 값들을 Web browser로 출력 할 때
※ _jspService method 내 코드 생성 |
Comment
(주석) |
<%-- --%> |
(mark up언어는 <!-- -->였음)
JSP태그들의 코드생성을 막아 전체적인 실행을 막을 때 |
-
Servlet이 훨신 동작이 짧아 빠르다. 데이터를 전송할때 주로 사용하게 되고, JSP로 페이지이동은 Forward로 하게된다.(값 넘김 위해)
-
요청>Tomcat의 .class찾아>JVM에서 Instance>init()>doGet/doPost Servlet으로 Tomcat에 HTML페이지 생성>응답
-
JSP
-
요청>.jsp>.java>(compile)>.class>JVM에서 Instance>_jspInit()>_jspService()로 Tomcat에 HTML페이지 생성>응답
-
으로 비교적 동작이 많음.
-
Dynamic Web Project : 다양한 웹환경에서 만들 수 있게 해줌
*구조
<%@ page %>
//어디에 들어가든 상관없다+속성여러개를 넣을 수 있으며, 여러개를 사용할 수도 있다
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<%! %> //declaration
<% %> //Scriptlet
<%= %> //Expression
</body>
</html>
//.jsp는 컴파일 하지 않는다.
==>
class ?? extends HttpJspBase{//부모가 HttpServlet
public void _jspInit(){
}
public void _jspService(HttpServletRequest, HttpServletResponce){
//요청과 응답 처리
}
public void _jspDestory(){
}
}
//.java
C:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\jsp_prj\org\apache\jsp\day0308
-
이 자바파일을 수정하면...아무리 바꿔도 소용없음ㅋㅋ 돌면서 생성되는거기 때문에
-
에러를 두군데서 확인해야 한다!! java파일도 jsp파일도~
<body>
<% int i=0; %>
<% i=8; %>
<%= i %> |
======> |
_jspServise(){
int i=0;
i=8;
out.println(i);
}//멀쩡히 잘 됨!
//코드가 한쪽으로 생성되기 때문에 Error X
//지역변수는 초기화 꼭 |
-
Preferences>Web>JSP Files>Encoding>UTF-8
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="scriptlet 연습"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/css/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
td:hover{font-size:10px; background-color:#FF0055}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$(".t").click(function() {
alert($(this).children().val());
});
var d=new Date();
var time="";
time+=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "
+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
$("#c_time").text(time);
});//ready
</script>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%
//scriptlet은 _jspService method내에 코드가 생성된다.
int i=3; //지역변수 : 자동초기화가 되지 않는다.(초기화 하지 않으면 Error)
//에러의 줄이 일치하지 않으면 자바 파일을 열어 확인해 고쳐준다.
%>
<%= i %>
<% for(int j=1; j<7; j++){ %>
<h<%= j %>>오늘은 불금입니다.</h<%= j %>>
<% }//end for %>
<%
String[] names={"노진경","김정윤","박영민","김희철","박소영","이지수"};
%>
<table border="1">
<tr>
<th width="100">이름</th>
</tr>
<%for(int j=0; j<names.length; j++){ %>
<tr>
<td><%=names[j] %></td>
</tr>
<%}//end for %>
</table>
<!-- 1~100까지 합만 출력 -->
<%
int total=0;
for(int cnt=1; cnt<=100; cnt++ ){
total=total+cnt;
}//end for
%>
<div>
1에서 100까지의 합은 <%=total%>입니다.
</div>
<div>
<!-- 구구단 3단 출력 -->
<table border="1">
<tr>
<th>구구단 3단</th>
</tr>
<% for(int j=1; j<10; j++){ %>
<tr>
<td>3*<%=j %>=<%=3*j %></td>
</tr>
<%}//end for %>
</table>
<table border="1">
<tr>
<th colspan="9">구구단 3단</th>
</tr>
<tr>
<% for(int j=1; j<10; j++){ %>
<td>3*<%=j %>=<%=3*j %></td>
<%}//end for %>
</tr>
</table>
<!-- 2~9구구단 클릭/호버 -->
<table border="1">
<tr>
<th colspan="9">구구단</th>
</tr>
<% for(int j=1; j<10; j++){ %>
<tr>
<%for(int z=2; z<10; z++){ %>
<td id="gugu" value=<%=z*j %>><%=z %>*<%=j %></td>
<%-- <%z*j %> --%>
<%}//end for %>
</tr>
<%}//end for %>
</table>
</div>
<!-- 강사님 부분 -->
<!-- 구구단 출력 전체-->
<div>
<table border="1">
<% for(int k=1; k<10; k++) {%>
<tr>
<% for(int l=2; l<10; l++) {%>
<%-- <td width=40; align="center" id="dan" onclick="alert('<%=l*m%>')"> --%>
<td width=40; align="center" class="t">
<%= k %> * <%= l %>
<input type="hidden" name="sum" value="<%=k*l%>">
</td>
<% }//end for %>
</tr>
<% }//end for %>
</table>
</div>
<!-- 년-월-일 요일 시:분 을 서버의 시간으로 얻어와서 문자열로 처리해주세요. 버튼을 클릭하면 해당일자가 3총동안 서서히 사라지도록 만들어 주세요. -->
<%
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd EEEE HH:mm:ss");
String date =sdf.format(new Date());
%>
<div><!-- sss:asp+jsp+,,, -->
서버시간 : <span id="s_time"><%=date %></span>
접속자시간 : <span id="c_time"></span>
<input type="button" id="btn" class="btn"/>
<!-- date는 클라이언트의 시간으로 되어있어 서버의 시간으로 설정해야 한다. -->
</div>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</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>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
반응형
'국비지원학원 > JSP' 카테고리의 다른 글
98일차-JSP_JSTL_forTokens (0) | 2019.04.03 |
---|---|
97일차-JSP_JSTL(Jsp Standard Tag Library) (0) | 2019.04.03 |
96일차-JSP_액션태그 (0) | 2019.03.31 |
95일차-JSP_내장 객체 (0) | 2019.03.31 |
94일차-JSP tag's (0) | 2019.03.27 |