"이전게시판/JSP"에 해당되는 글 - 7건
Post
JDBC로 OLACLE 접속
Oracle Database 11g Express Edition 설치
SQL Plus
- cmd 창을 열어서 sqlplus system/pass 를 치면 실행된다.
- pass는 Oracle 설치 시 설정했던 비밀번호 이다.
- 로그인 : sqlplus <id>/<pass>
- 일반 계정 생성 : create user <id> identified by <pass>;
- 권한 부여 : grant connect, resource to <id>
- 로그아웃 : exit
오라클 SQL Developer(GUI)
- SQL GUI 툴
- https://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
- Windows 64-bit with JDK 8 included
- 최초 설치 시 JDK 폴더 위치 설정
- C:\Program Files\Java\jdk-11\bin
- 최초 설정 실패 시 sqldeveloper.conf 파일에 SetJavaHome <Pach> 해줄 것.
- 근데 자꾸 msvcr120.dll을 찾을 수 없다고 나온다.
JDBC 사용하기
- Java프로그램에서 sql문을 사용할 수 있는 Java API
- DB 프로그램에서 JDBC Driver를 제공해서, 다른 DB를 사용할 때 그냥 연결만 해주면 된다.
- Oracle 드라이버 사용을 위해 ojdbc6_g.jar 파일 복사. Copy Path에 넣는다.
- ojdbc6_g.jar Path : C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
- Copy Path : C:\Program Files\Java\jdk-11\lib\ext\
- Eclipse Menu-Window-Preferenes-Java-Build Path-Classpath Variable
JDBC DB연결 예제
<%@page import="java.sql.DriverManager" %>
<%@page import="java.sql.ResultSet" %>
<%@page import="java.sql.Statement" %>
<%@page import="java.sql.Connection" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%!
Connection connection;
Statement statement;
ResultSet resultSet;
String driver = "oracle.jdbc.driver.OracleDriver"; // 드라이버 정보
String url = "jdbc:oracle:thin:@localhost:1521:xe"; // 어디에 접근할 것인지
String uid = "scott"; // login id
String upw = "tiger"; // login user pass
String query = "select * from member";
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv = "Content-Type" content="text/html" charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
out.println("???");
// db관련 에러가 날 수 있기 때문에 항상 예외 처리를 함
try{
Class.forName(driver);
connection = DriverManager.getConnection(url, uid, upw); // db에 로그인
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
out.println("query 날리기~~ ");
while(resultSet.next())
{
out.println("없다?~ ");
String id = resultSet.getString("id");
String pw = resultSet.getString("pw");
String name = resultSet.getString("name");
String phone = resultSet.getString("phone");
out.println("아이디:"+id+", 비밀번호:"+pw+"이름:"+name+",전화번호:"+phone+"<br />");
}
}catch(Exception e) {
out.println(e);
}finally{
// 마치면 접속 종료
try{
if(null != resultSet) resultSet.close();
if(null != statement) statement.close();
if(null != connection) connection.close();
}
catch(Exception e){}
}
%>
</body>
</html>
oracle.jdbc.driver.OracleDriver 에러 해결
- JDBC lib가 없어서 발생.
- ProjectProperties - Java Build Path - Libraries - Add External JARs..
- ojdbc6_g.jar 파일 선택.
'이전게시판 > JSP' 카테고리의 다른 글
JSP 쿠키, Session, 예외 페이지, 자바빈 (0) | 2018.10.21 |
---|---|
JSP 태그, request, response, 지시자, 액션태그 (0) | 2018.10.20 |
Servlet 값 초기화, 리스너 (0) | 2018.10.20 |
Servlet Get,Post 동작 (0) | 2018.10.19 |
Servlet 설정, 예제 (0) | 2018.10.18 |
JSP 설치, 설정, 실행 (0) | 2018.10.18 |
Post
JSP 쿠키, Session, 예외 페이지, 자바빈
JSP 쿠키
- client <-> server 은 request, respone 후 연결을 끊는다.(http의 특징)
- 연결이 끊겼을 때 어떤 정보를 유지하기 위해서 쿠키 사용.
- 예를들어 로그인 후 다른 페이지로 이동하면, 로그인 정보를 가지고 있어야 한다. 이 때 쿠키를 사용.
- 서버에서 쿠키를 생성한 후 클라이언트가 쿠키 정보를 저장.
- 쿠키는 보안상의 문제가 있기 때문에(text파일로 id, pass 저장) 점점 사용하지 않음.
JSP 쿠키 함수
- setMaxAge() : 쿠키 저장시간 설정(초단위)
- setPath() : 쿠키 유효 디렉터리 설정(잘 쓰이지 않는다고 함)
- setValue() : 쿠키 값 설정
- setVersion() : 쿠키 버전 설정
JSP 쿠키 생성
- Cookie cookie = new Cookie("CookieName", CookieValue");
- Cookie class로 쿠키 생성
- Cookie class의 첫번째 인자는 쿠키 이름, 두번째 인자는 쿠키 값이다.
- 쿠키 유지 시간 설정
- cookie.setMaxAge(60*60); // 1시간
- 응답객체에 쿠키 저장
- response.addCookie(cookie);
JSPExample.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% Cookie cookie = new Cookie("name", "value"); cookie.setMaxAge(60*60); // 1 hour response.addCookie(cookie); %> <a herf="CookieEx.jsp">cookie get</a> </body> </html> | cs |
JSP 쿠키 정보 Client 출력
- Cookie[] cookies = request.getCookies();
- request 객체로 Cookie 정보를 가져온다.
- cookies[i].getName(), cookies[i].getValue() 로 Cookies 이름, 값을 알 수 있다.
CookieEx.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% Cookie[] cookies = request.getCookies(); for(int i =0; i <cookies.length; ++i) { String str = cookies[i].getName(); if(str.equals("name")) { out.println("cookies["+i+"]name:"+ cookies[i].getName()+"<br />"); out.println("cookies["+i+"]value:"+ cookies[i].getValue()+"<br />"); } } %> <a href="CookieDel.jsp">쿠키확인</a> </body> </html> | cs |
JSP 쿠키 삭제
- request 객체에서 Cookies 정보를 가져온다.
- 삭제할 쿠키를 이름으로 찾은 후 쿠키 저장시간을 0으로 초기화해서 쿠키를 지운다.
- cookies[i].setMaxAge(0)
- 이 전 페이지로 돌아가면 쿠키 정보를 더 이상 출력하지 않는다.
CookieDel.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% Cookie[] cookies = request.getCookies(); for(int i = 0; i < cookies.length; ++i) { String str = cookies[i].getName(); if(str.equals("name")) { out.println("name:"+cookies[i].getName()+"<br />"); cookies[i].setMaxAge(0); response.addCookie(cookies[i]); } } %> </body> </html> | cs |
JSP 쿠키 로그인 예제
- id, pass 를 입력받아서 로그인이 성공하면 Admin.jsp 페이지로 이동한다.
- 만약 로그아웃하려면 Cookie 시간을 0으로 설정하면 된다.
login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="SignIn.jsp" method="post">
아이디:<input type="text" name="id" size="10"><br />
비밀번호 : <input type="password" name="pw" size="10"><br />
<input type="submit" value="로그인">
</form>
</body>
</html>
Admin.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
String id, pw;
%>
<%
id = request.getParameter("id");
pw = request.getParameter("pw");
if(id.equals("admin") && pw.equals("1234"))
{
Cookie cookie = new Cookie("id", id);
cookie.setMaxAge(60);
response.addCookie(cookie);
response.sendRedirect("Admin.jsp");
}
else
{
response.sendRedirect("login.html");
}
%>
</body>
</html>
JSP Session
- Cookies와 달리 Session은 Server에 저장된다.
- Cookies는 1.2mb까지 저장할 수 있지만 Session은 제한이 없다.
- Session은 Client 요청이 들어올 때 자동 생성.
- Cookies는 요즘 사용못하게 막는 경우가 있어 Session이 많이 사용된다.
Session 메소드
- setAttribute() : 세션에 데이터 저장.
- getAttribute() : 세션에서 데이터 얻음.
- getAttributeNames() : 세션의 모든 데이터의 이름을 얻음.
- getId() : 자동 생성된 세션의 유니크한 아이디를 얻음.
- isNew() : 세션이 최초 생성되었는지, 이전에 생성된건지 구분
- getMaxInactiveInterval() : Session의 유효시간을 얻음. 가장 최근 요청 시점을 기준으로 카운트.
- D:\apache-tomcat-8.5.34\conf\web.xml web.xml에 Session 유효시간이 적혀있음.
- 30분이 설정되어있음.
<session-config>
<session-timeout>30</session-timeout>
</session-config>
- removeAttribute() : 세션에서 특정 데이터 제거.
- Invalidate() : 세션의 모든 데이터를 삭제.
login.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <form action="SignIn.jsp" method="post"> 아이디:<input type="text" name="id" size="10"><br /> 비밀번호 : <input type="password" name="pw" size="10"><br /> <input type="submit" value="로그인"> </form> </body> </html> | cs |
SignIn.jsp
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=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% String id, pw; %> <% id = request.getParameter("id"); pw = request.getParameter("pw"); if(id.equals("admin") && pw.equals("1234")) { session.setAttribute("id", id); response.sendRedirect("Admin.jsp"); } else { response.sendRedirect("login.html"); } %> </body> </html> | cs |
Admin.jsp
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 | <%@page import="java.util.Enumeration"%> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% Enumeration<String> enumeration = session.getAttributeNames(); while(enumeration.hasMoreElements()) { String sName = enumeration.nextElement().toString(); String sValue = (String)session.getAttribute(sName); if(sValue.equals("admin")) { out.println(sValue+"님 안녕하세요"+"<br/>"); } } %> </body> </html> | cs |
JSP 예외 페이지
- 기본 예외 페이지는 tomcat 페이지이므로 친숙한 디자인의 예외 페이지가 필요하다.
age지시자를 이용한 예외처리
- 현재 Page에서 error 발생 시 errorPage.jsp 로 이동하라.
- <%@ page errorPage="errorPage.jsp" %>
- erroPage.jsp 에러페이지에서 page지시자를 통해 에러페이지라는 것을 명시.
- Defaul가 false이므로 반드시 명시.
- <%@ page isErrorPage="true"%>
- 에러 Status 값을 준다.
- 200은 정상적인 페이지라는 뜻. 에러 표시 페이지는 정상이므로 200으로 setting.
- <% response.setStatus(200); %>
- 에러 메시지 출력
- <%= exception.getMessage() %>
ExceptionEx.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page errorPage="Error.jsp" %>> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% int i = 40/0; %> </body> </html> | cs |
Error.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page isErrorPage="true" %> <% response.setStatus(200); %> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> Error가 발생했습니다<br> <%= exception.getMessage() %> </body> </html> | cs |
web.xml 파일을 이용한 예외 처리
- web.xml 파일로 예외처리를 할 수 있다.
- web.xml 파일 위치
- Project\WebContent\WEB-INF\web.xml
- <error-page> 안에 에러페이지 정보를 기술한다.
- <error-page> 안에 errorcode, 이동할 예외처리 페이지를 적는다
1 2 3 4 | <error-page> <error-code>500</error-code> <location>/error500.jsp</location> </error-page> | cs |
JSP 자바 빈
- JAVA언어의 속성, 메소드로 이루어진 클래스.
- JSP페이지 안에서 액션태크를 사용해 빈을 사용.
- 자바 빈이란 jsp에서 Java 객체를 가져와 쓸 수 있도록 해주는 것.
자바 빈 액션 태그
- 빈을 사용한다는 선언
- scope value
- page일 때 : 생성된 페이지 내에서만 사용.
- request일 때 : 요청된 페이지 내에서 사용.
- session일 때 : 웹브라우저의 생명주기와 동일하게 사용 가능.
- application일 때 : 웹 어플리케이션 생명주기와 동일하게 사용 가능.
- <jsp:useBean id = "자바빈 name" class="pakage.classname" scope="area" />
- 객체 값 설정
- player 객체에 id속성 값을 1로 설정.
<jsp:setProperty name="player" property="id" value="1"/>
- 객체 값 가져오기
<jsp:getProperty name="player" property="id"/><br />
BeanEx,.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=EUC-KR" pageEncoding="EUC-KR"%> <jsp:useBean id="player" class="w.Player" scope="page" /> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <jsp:setProperty name="player" property="id" value="1"/> <jsp:setProperty name="player" property="name" value="gosu" /> <jsp:setProperty name="player" property="level" value="20" /> id:<jsp:getProperty name="player" property="id"/><br /> name:<jsp:getProperty name="player" property="name"/><br /> level:<jsp:getProperty name="player" property="level"/><br /> </body> </html> | cs |
Player.java
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 | package w; public class Player { private int id; private String name; private int level; public Player() { } public void setId(int _id) { id = _id; } public int getId() { return id; } public void setName(String _name) { name = _name; } public String getName() { return name; } public void setlevel(int _level) { level = _level; } public int getlevel() { return level; } } | cs |
'이전게시판 > JSP' 카테고리의 다른 글
JDBC로 OLACLE 접속 (0) | 2018.10.22 |
---|---|
JSP 태그, request, response, 지시자, 액션태그 (0) | 2018.10.20 |
Servlet 값 초기화, 리스너 (0) | 2018.10.20 |
Servlet Get,Post 동작 (0) | 2018.10.19 |
Servlet 설정, 예제 (0) | 2018.10.18 |
JSP 설치, 설정, 실행 (0) | 2018.10.18 |
Post
JSP 태그, request, response, 지시자, 액션태그
JSP 태그
- JSP는 html코드에 java를 사용하여 다이나믹 웹을 만들 수 있다.
- html에서 java를 사용하기 위해 jsp 태그를 사용한다.
- jsp 태그
- 지시자 : <%@ @> 페이지 속성
- 주석 : <%-- --%>
- 선언 : <%! %> 변수, 메소드 선언
- 표현식 : <%= %> : 결과값 출력
- 스크립트릿 : <% %> java 코드
- 액션태크 : <jsp:action> </jsp:action> : 자바빈 연결
JSP 동작 원리
- client가 web에 jsp 요청 시 jsp 컨테이너가 jsp파일을 servlet파일(.java)로 변환
- 그리고 servlet파일(.java)은 컴파일 된 후 클래스 파일(.class)로 변환되고 html 파일로 응답함.
- jsp가 요청을 받을 시 servlet, class 파일로 변환되고 메모리에 올려지고, 요청 응답을 한다.
- 다시 요청을 받을 시 메모리에 이미 올려져있으므로, 메모리에 올려진 데이터를 재활용해서 응답 한다.
JSP 내부 객체
- 개발자가 객체를 생성하지 않고 바로 사용할 수 있는 객체.
- JSP컨테이너에 의해 Servlet으로 변화될 때 자동으로 객체가 생성 됨.
- 내부객체 종류
- 입출력 객체 : request, response, out
- 서블릿 객체 : page, config
- 세션 객체 : session
- 예외 객체 : exception
JSP 스크립트릿, 선언, 표현식
- <% java 코드 기술 %>
- jsp페이지에서 java 언어를 사용하기 위한 요소
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=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% int i = 0; for(i = 0; i < 10; ++i) { out.println(i+":"+"HelloWorld"+"<br/>"); } %> </body> </html> | cs |
- <% java 선언 기술 %>
- jsp페이지에서 변수 또는 메소드를 선언할 때 사용함.
- 변수는 '<%' 사용시 에러 안나는데 함수는 에러남.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <%! int a = 10; int b = 20; %> <%! public int sum(int a, int b) { return a+b; } %> <% out.println(a+"+"+b+"="+sum(a, b)+"<br/>"); %> </body> </html> | cs |
- <%= java 코드 기술 %>
- 변수의 값 또는 메소드 호출 결과값을 출력하기 위해 사용됨.
- 결과값은 String 타입이며 ;를 사용할 수 없다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <%! int a = 10; int b = 20; %> <%=a %></br> <%=b %></br> </body> </html> | cs |
JSP 지시자
- JSP 페이지의 전체적인 속성을 지정할 때 사용.
- <%@ 속성 %>
- page : JSP페이지 속성. import 할 때도 쓴다.
1 2 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> | cs |
- include : 다른 page의 내용을 삽입함.
- JspEx.jsp, IncludeEx.jsp 파일을 만들고 JspEx.jsp 소스에 include 지시자를 사용한다.
- 출력결과 JspEx.jsp 페이지 IncludeEx.jsp 페이지 라고 나오는 것을 확인할 수 있다.
JspEx.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <%@ page import="java.util.Arrays" %> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> JspEx.jsp 페이지 <%@ include file="IncludeEx.jsp" %> </body> </html> | cs |
IncludeEx.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> IncludeEx.jsp 페이지 </body> </html> | cs |
taglib 지시자
- 사용자가 만든 tag들을 태그 라이브러리라고 함.
- 유명한 라이브러리로 JSTL이 있음.
JSP 주석
- <%-- 주석 -->
- JSP 주석은 페이지 소스 보기로 보이지 않음.
- JSP 안에서 java 주석을 사용해도 됨.
request 객체
- web client가 server로 정보를 요청하는 것을 request라고 함.
- 요청정보는 request 객체가 관리함.
- 메소드
- getServerName() : 서버 이름 얻어옴
- getServerPort() : 서버 포트 번호 얻어옴
- getContextPath() : 웹어플리케이션의 컨텍스트 패스를 얻음.
- getMethod() : get, post 방식 구분
- getSession() : session 객체 얻음.
- getProtocol() : protocol 객체 얻음.
- getRequestURL() : 요청 URL을 얻음.
- getRequestURI() : 요청 URI를 얻음.
- getQueryString() : 쿼리스트링을 얻음.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <% out.println("ServerName:"+request.getServerName()+"<br/>"); out.println("ServerPort:"+request.getServerPort()+"<br/>"); out.println("ContextPath:"+request.getContextPath()+"<br/>"); out.println("Get or Post?:"+request.getMethod()+"<br/>"); out.println("URL:"+request.getRequestURL()+"<br/>"); out.println("URI:"+request.getRequestURI()+"<br/>"); out.println("QueryString:"+request.getQueryString()+"<br/>"); %> </body> </html> | cs |
Parameter메소드
- JSP 코드로 요청받은 정보의 값을 얻어온다.
- 메소드
- getParameterNames() : Parameter 이름 구함
- getParameter(String name) : Parameter 이름으로 값을 찾음.
- getParameterValues(String name) : 배열같이 여러개의 값을 가지고 있을 때 이름을 구함.
form.html
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 | <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <form action="JspEx.jsp" method="post"> 이름:<input type="text" name="name" size="10"><br/> 아이디:<input type="text" name="id" size="10"><br/> 비밀번호:<input type="password" name="pw" size="10"><br/> 취미:<input type="checkbox" name="hobby" value="read">독서 <input type="checkbox" nam="hobbpy" value="cook">요리 <input type="checkbox" nam="hobbpy" value="run">조깅 <input type="checkbox" nam="hobbpy" value="swim">수영 <input type="checkbox" nam="hobbpy" value="sleep">취침<br/> <input type="radio" name="major" value="kor">국어 <input type="radio" name="major" value="checked">영어 <input type="radio" name="major" value="mat">수학 <input type="radio" name="major" value="des">디자인<br/> <select name="protocol"> <option value="http">http</option> <option value="ftp" selected="selected">ftp</option> <option value="smtp">smtp</option> <option value="pop">pop</option> </select><br/> <input type="submit" value="전송"> <input type="reset" value="초기화"> </form> </body> </html> | cs |
JspEx.jsp
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 | <%@page import ="java.util.Arrays" %> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta http-equivb="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <%! String name, id, pw, major, protocol; String[] hobbys; %> <% request.setCharacterEncoding("EUC-KR"); name = request.getParameter("name"); id = request.getParameter("id"); pw = request.getParameter("pw"); major = request.getParameter("major"); protocol = request.getParameter("protocol"); hobbys = request.getParameterValues("hobby"); %> 이름:<%= name %><br/> id:<%=id %><br/> pw:<%=pw %><br/> major=<%=major %><br /> protocol=<%=protocol %><br /> </body> </html> | cs |
response 객체의 이해
- 요청의 응답 정보를 가지고 있는 객체.
- 메소드
- getCharacterEncoding() : 응답할 때 문자의 인코딩 형태를 구함.
- addCookie(Cokkie) : 쿠키 지정.
- SendRedirect(URL) : 지정한 URL로 이동.
- 아래 예제는 id가 admin일 경우 admin. 페이지로 이동하고 일반 유저일 경우 user 페이지로 이동하게 해놨다.
form.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <form action="JspEx.jsp"> id를 입력해주세요 <input type="text" name="id" size="10"> <input type="submit" value="전송"> </form> </body> </html> | cs |
JspEx.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta http-equivb="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <% String str = request.getParameter("id"); if(str.equals("admin")) { response.sendRedirect("admin.jsp?id="+str); } else { response.sendRedirect("user.jsp?id="+str); } %> </body> </html> | cs |
JSP 액션태그
- JSP 파일에서 어떤 동작을 하도록 지시하는 태그.
- forward, include, param 태그 등.. 이 있다.
forward 태그
- 다른 페이지로 이동할 때 사용
- 다른 페이지로 이동해도 이동한 페이지 url로 변경되지 않음.
- <jsp:forward page="sub.jsp"/>
1 2 3 4 5 6 7 8 9 10 11 12 13 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta http-equivb="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <h1>jspEx.jsp 페이지</h1> <jsp:forward page="user.jsp"/> </body> </html> | cs |
include 태그
- 현재 페이지에 다른 페이지를 삽입함.
- <jsp:include page="otherpagename.jsp"/>
1 2 3 4 5 6 7 8 9 10 11 12 13 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta http-equivb="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <h1>jspEx.jsp 페이지</h1> <jsp:include page="user.jsp"/> </body> </html> | cs |
param 태그
- 데이터를 전달하는 태그.
- 이름과 값으로 이루어져 있다.
- forward, include 태그와 같이 사용하면 페이지를 넘길 때 Param을 넘겨줄 수 있다.
- <jsp:param name="id" value="id" />
JspEx.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta http-equivb="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <jsp:forward page="user.jsp"> <jsp:param name="id" value="id" /> <jsp:param name="pw" value="!@#!@#" /> </jsp:forward> </body> </html> | cs |
user.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <%! String id, pw; %> <% id = request.getParameter("id"); pw = request.getParameter("pw"); %> 유저정보 id : <%=id %> pass : <%=pw%> </body> </html> | cs |
'이전게시판 > JSP' 카테고리의 다른 글
JDBC로 OLACLE 접속 (0) | 2018.10.22 |
---|---|
JSP 쿠키, Session, 예외 페이지, 자바빈 (0) | 2018.10.21 |
Servlet 값 초기화, 리스너 (0) | 2018.10.20 |
Servlet Get,Post 동작 (0) | 2018.10.19 |
Servlet 설정, 예제 (0) | 2018.10.18 |
JSP 설치, 설정, 실행 (0) | 2018.10.18 |
Post
Servlet 값 초기화, 리스너
ServletConfig
- 특정 Servlet이 생성될 때 초기에 필요한 데이터가 있음.
- WebContent/WEB-INI/web.xml에 기술하고 Servlet 파일에서는 Servlet.Config 클래스를 이용해서 접근.
- 아래 예제에서 InitParam 주소를 IP로 mapping 하고 있다.
- 또 Parameter id, pw에 값을 초기화할 수도 있다.
WebContent\web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>LifeCycle</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>InitParam</servlet-name>
<servlet-class>com.java.w.InitParam</servlet-class>
<init-param>
<param-name>id</param-name>
<param-value>id</param-value>
</init-param>
<init-param>
<param-name>pw</param-name>
<param-value>12345</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>InitParam</servlet-name>
<url-pattern>/IP</url-pattern>
</servlet-mapping>
</web-app>
InitParam.java
package com.java.w; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class InitParam */ @WebServlet("/InitP") public class InitParam extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public InitParam() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); String id = getInitParameter("id"); String pw = getInitParameter("pw"); System.out.println("id ="+id); System.out.println("pw ="+pw); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
Servlet에서 Parameter를 직접 초기화 할 수도 있다.
- @WebServlet("/InitP") 되어있는 소스코드를 아래와 같이 수정한다.
- @WebServlet(urlPatterns= {"/InitP"}, initParams={@WebInitParam(name="id", value="id"), @WebInitParam(name="pw", value="1234")})
Servlet 데이터 공유
- 여러 Servlet에서 특정 데이터를 공유할 수 있다.
- web.cml파일에 context parameter 을 넣는다.
- 여러 Servlet이 사용하므로 코드 상단에 추가해야한다.
- ServletContext 메소드를 이용해서 데이터를 불러온다.
web.xml
<context-param>
<param-name>id</param-name>
<param-value>abc</param-value>
</context-param>
<context-param>
<param-name>pw</param-name>
<param-value>123</param-value>
</context-param>
jsp
String id = getServletContext().getInitParameter("id");
String pw = getServletContext().getInitParameter("pw");
System.out.println("id="+id);
System.out.println("pw="+pw);
웹 어플리케이션 감시
웹어플리케이션을 감시하는 Listener를 만들수 있다.
ServletContextListener을 상속하면 감시 클래스가 된다.
웹 어플리케이션 시작, 종료 시 호출된다.(호출함수:contextInitialized, contextDestroyed)
WebContent\web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>LifeCycle</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>
com.java.w.ServetlL
</listener-class>
</listener>
</web-app>
package com.java.w; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class ServetlL implements ServletContextListener{ @Override public void contextDestroyed(ServletContextEvent sce) { // TODO Auto-generated method stub System.out.println("contextDestroyed"); } @Override public void contextInitialized(ServletContextEvent sce) { // TODO Auto-generated method stub System.out.println("contextInitialized"); } }
Servlet Listener
- web.xml 에서 Lisner를 선언하지 않고 Servelt 소스코드에서(class 이름 위에)@WebListener 라고 명시해도 Listener 클래스가 된다
'이전게시판 > JSP' 카테고리의 다른 글
JDBC로 OLACLE 접속 (0) | 2018.10.22 |
---|---|
JSP 쿠키, Session, 예외 페이지, 자바빈 (0) | 2018.10.21 |
JSP 태그, request, response, 지시자, 액션태그 (0) | 2018.10.20 |
Servlet Get,Post 동작 (0) | 2018.10.19 |
Servlet 설정, 예제 (0) | 2018.10.18 |
JSP 설치, 설정, 실행 (0) | 2018.10.18 |
Post
Servlet Get,Post 동작
Get, Post방식
- Client가 요청할 때 Get, Post 방식이 있다.
- Get방식은 URL 값으로 정보가 전송되어 보안에 약함
- Post방식은 header를 이용해 정보가 전송되어 보안에 강함.
Get방식
- html내 form 태그의 method 속성이 get일 경우 호출됨.
- HttpServletRequest 요청 처리 객체
- HttpServletResponse 응답 처리 객체
- response.setContentType("text/html") text/html로 응답을 보내겠다는 의미
- html문법을 쓸 수 없기 때문에 PrintWriter class로 html 문법 사용 가능
Post방식
- jsp파일에 method가 post인 form을 생성한다.
- form action은 이동할 url 값으로 설정한다.
<form action="hw" method="post">
<input type="submit" value="post">
</form>
Context Path
- WSA에서 웹 어플리케이션을 구분하기 위한 Path.
- 이클립스에서 프로젝트를 생성하면, 자동으로 server.xml에 추가됨.
- http://localhost:8090/ex/hw
<Context docBase="ex" path="/ex" reloadable="true" source="org.eclipse.jst.jee.server:ex"/></Host>
Servlet 작동순서
- 클라이언트에서 servlet 요청이 들어오면 서버에서는 servlet 컨테이너를 만들고 요청이 있을 때마다 스레드 생성.
- 보통 web Server는 요청이 많을수록 객체를 생성해서 느려진다.
- Servlet은 JVM 위에 MultiThread로 처리할 수 있어서 부하가 적다.
- Servlet 객체 생성(최초)->Init() 호출(최초)->service(), doGet(), doPost() 호출(요청시)->destroy() 호출(마지막 한번, 서버 재가동 등..)
- Init()호출 전 선처리 @PostConstruct 가 호출됨.
- destory()호출 후 후처리 @PreDestroy가 호출됨.
form 태그
- 서버쪽으로 정보를 전달할 때 사용.
- ex) <form action = "Form" method="post">
- action : 요청하는 컴포넌트 이름(join.jsp , info.gtml)
- post : 요청을 처리하는 방식(get, post)
- Get : local:8090/컨텍스트/path/MemberJoin?id="abcd"&name="ww"
- Post : local:8090/컨텍스트/path/MemberJoin
- 아래는 jsp, servlet 예제
jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="FormEx" method="post">
이름:<input type="text" name="name" size="10"><br/>
아이디:<input type="text" name="id" size="10"><br/>
비밀번호:<input type="password" name="pw" size="10"><br/>
취미:<input type="checkbox" name="hobby" value="read">독서
<input type="checkbox" nam="hobbpy" value="cook">요리
<input type="checkbox" nam="hobbpy" value="run">조깅
<input type="checkbox" nam="hobbpy" value="swim">수영
<input type="checkbox" nam="hobbpy" value="sleep">취침<br/>
<input type="radio" name="major" value="kor">국어
<input type="radio" name="major" value="checked">영어
<input type="radio" name="major" value="mat">수학
<input type="radio" name="major" value="des">디자인<br/>
<select name="protocol">
<option value="http">http</option>
<option value="ftp" selected="selected">ftp</option>
<option value="smtp">smtp</option>
<option value="pop">pop</option>
</select><br/>
<input type="submit" value="전송">
<input type="reset" value="초기화">
</form>
</body>
</html>
servlet
package com.java.w; import java.io.IOException; import java.io.PrintWriter; import java.util.Arrays; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class FormEx */ @WebServlet("/FormEx") public class FormEx extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public FormEx() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); System.out.println("doPost"); String id = request.getParameter("id"); String pw = request.getParameter("pw"); String[] hobbys = request.getParameterValues("hobby"); String major = request.getParameter("major"); String protocol = request.getParameter("protocol"); response.setContentType("text/html; charset=EUC-KR"); PrintWriter writer = response.getWriter(); writer.println(""); writer.println("아이디:"+id+"
"); writer.println("비밀번호:"+pw+"
"); writer.println("취미:"+Arrays.toString(hobbys)+"
"); writer.println("전공:"+major+"
"); writer.println("프로토콜:"+protocol); writer.println(""); writer.close(); } }
한글처리
- Tomcat 서버의 기본 문자 처리 방식은 IOS-8859-1 방식.
- 별도의 인코딩을 하지 않으면 한글이 깨져보임
- server.xml 수정
- <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8090" protocol="HTTP/1.1" redirectPort="8443"/>
- servlet 인코딩 세팅 추가
- request.setCharacterEncoding("UTF-8");
'이전게시판 > JSP' 카테고리의 다른 글
JDBC로 OLACLE 접속 (0) | 2018.10.22 |
---|---|
JSP 쿠키, Session, 예외 페이지, 자바빈 (0) | 2018.10.21 |
JSP 태그, request, response, 지시자, 액션태그 (0) | 2018.10.20 |
Servlet 값 초기화, 리스너 (0) | 2018.10.20 |
Servlet 설정, 예제 (0) | 2018.10.18 |
JSP 설치, 설정, 실행 (0) | 2018.10.18 |
Post
Servlet 설정, 예제
Servlet 이란
- JSP는 Html 위에서 JSP 문법을 사용하는 서버Side 파일.
- JSP와 다르게 순수 Java코드만 사용.
- 모델1은 JSP가 Model, View, Controller 기능을 전부 수행하지만
- 모델2는 JSP가 View, Servlet이 Controller 기능을 각 각 따로수행하는 것으로 이해했다.
- 모델2에서 JavaBeans가 Model이라고 한다.
Servlet 파일 생성
- 프로젝트 생성 후 Java Resources 폴더 오른쪽클릭-New-Servlet 클릭
- JavaPackage, Class Name을 작성(각각 com.TestProject, HelloServlet 이라고 적음)
- 그리고 Next를 눌러서 URL mappings 에 이름을 변경한다.
- usr mappings 값은 java 소스코드에 접근하기 위한 urlName 이다.
- ex ) http://localhost:8090/<ProejctName>/<urlName>
Servlet 파일 작성
- Java에서 html 태그를 쓰기위해서 PrintWriter 객체를 사용.
- doGet함수에서 다음과 같이 소스를 작성한다.
- 서버를 실행시켜 http://localhost:8090/<ProejctName>/<urlName> 도메인으로 접속하면 'Hello World'가 보인다.
- but 아래 예제를 실행하면 크롬에서는 태그 자체가 보인다.
- response.getWriter().append("Served at: ").append(request.getContextPath());
- 위 소스를 지우면 또 잘 보이고, html 문서 새로 만들어서 동일하게 출력하게 만들었는데도 잘된다.
- java 파일 변환과정에서 크롬이 잘못해석하는 변환이 있는건가?싶다.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
PrintWriter out = response.getWriter();
out.print(" <br>");
out.print("<html>");
out.print("<head>");
out.print("</head>");
out.print("<body>");
out.print("<p>Hello World</p>");
out.print("</body>");
out.print("</html>");
}
Servlet class 파일 확인
- java 파일을 class 파일로 변환한 것을 확인해본다.
- 자신의 javaProjectPath\build\classes\com\ProjectName\ 폴더안에 class 파일이 있는것을 확인할 수 있다.
'이전게시판 > JSP' 카테고리의 다른 글
JDBC로 OLACLE 접속 (0) | 2018.10.22 |
---|---|
JSP 쿠키, Session, 예외 페이지, 자바빈 (0) | 2018.10.21 |
JSP 태그, request, response, 지시자, 액션태그 (0) | 2018.10.20 |
Servlet 값 초기화, 리스너 (0) | 2018.10.20 |
Servlet Get,Post 동작 (0) | 2018.10.19 |
JSP 설치, 설정, 실행 (0) | 2018.10.18 |
Post
JSP 설치, 설정, 실행
웹컨테이너란?
- 웹서버에서 서블릿클래스, JSP파일을 실행시킬 수 있는 환경을 뜻한다.
- 개발자는 jsp로 작업을 하고, 웹 컨테이너는 기계가 이해할 수 있도록 java, class, obj 파일을 만드는 역활을 한다.
웹컨테이너 환경을 제공해 주는 프로그램?
- ApacheTomcat
- Apache는 http웹 서버이다.
- Tomcat은 Web Application Service 이다. 웹 서버 기능도 할 수 있다.
- 하지만 Apache는 정적인 데이터를 처리하고, Tomcat은 동적 데이터 처리해야 한다.
- 목적에 따라 둘을 달리 쓰는 것이다.
Apache Tomcat 설치
- 다운로드 링크 : https://tomcat.apache.org/
- 나는 8.5.28 기준으로 설치하였다.
- Zip 파일 클릭해서 다운로드 받는다.
웹컨테이너 설정
- Server Tab이 있어야 한다. 없으면 메뉴에서 Window-Show View-Server를 찾아서 클릭한다.
- Server Tab이 생기고 'No server are available. Click this... ' 라는 메시지가 보인다. 클릭하고 알맞은 versions 을 선택한다.
- Apache Tomcat이 있는 폴더를 선택.
- Server Tab에 'Tomcat v8.5 Server at localhost' 텍스트를 더블클릭하면 설정창이 뜬다.
- Server Locations 항목에서 'User Tomcat installation' 선택
- Server Option 항목에서 'Publish module context to separate XML files' 선택(실제 tomcat 있는 폴더와 동기화 한다는 뜻)
- Ports 항목에서 HTTP/1.1 Port Number를 8090으로 변경(8080은 DB 사용시 사용할 것)
- 저장한 다음 Server Tab에 있는 디버그 아이콘 중에 Publish to the server 아이콘을 클릭. 서버와 동기화 완료.
- 디버그 아이콘을 클릭하면 서버가 실행된다.(Start the Server)
- 서버 실행을 확인방법은 http://localhost:8090/ 이 주소로 접속해서 tomcat 관련 페이지가 보이면 실행되는 것이다.
프로젝트 생성, JSP 파일 생성
- 프로젝트 화면에서 오른쪽 클릭-New-Other-Dynamic Web Project 선택
- 마지막 생성화면에서 'Generate web.xml deployment descriptor' 체크.
- 프로젝트 생성 후 프로젝트 오른쪽 클릭-New-JSP File 클릭.
- JSP파일은 WebContent 폴더 안에 생성되어야 한다.
- 그러면 익숙한 html이 보인다. JSP는 html 위에서 jsp문법을 추가한 것.
JSP 파일 실행
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<p>Hello JSP World!</p>
</body>
</html>
- Project 오른쪽 마우스 클릭 후 Run As - Run on Server 클릭하면 서버가 다시 올라간다.
- 서버 접속은 local:8090/ProjectName/jsp file name이다.
- 페이지 소스코드 보기로 보면 jsp 문법은 보이지 않고, html만 보인다.
.java, .class 파일 확인
- 맨처음 Apache 폴더에서 work\Catalina\localhost\<ProjectName>\org\apache\jsp 폴더에 들어가면
- 우리가 만들었던 jsp 파일을 이용해 웹컨테이너가 java, class 파일을 만든것을 확인할 수 있다.
- ex) D:\apache-tomcat-8.5.34\work\Catalina\localhost\testProject\org\apache\jsp
'이전게시판 > JSP' 카테고리의 다른 글
JDBC로 OLACLE 접속 (0) | 2018.10.22 |
---|---|
JSP 쿠키, Session, 예외 페이지, 자바빈 (0) | 2018.10.21 |
JSP 태그, request, response, 지시자, 액션태그 (0) | 2018.10.20 |
Servlet 값 초기화, 리스너 (0) | 2018.10.20 |
Servlet Get,Post 동작 (0) | 2018.10.19 |
Servlet 설정, 예제 (0) | 2018.10.18 |