#
웹 템플릿 적용
- temp폴더 안에 템플릿 폴더 내의 파일 및 폴더 전체 복사-붙여넣기
- index.html을 main.jsp에 붙여넣기
- assets , vendor 폴더를 webapp 하위로 이동시키기
- vendor 를 ../vendor로 replace all 하기
- assets 도 ../assets로 replace all 하기
tiles.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="main" template="/WEB-INF/main/main.jsp">
<put-attribute name="header" value="/WEB-INF/main/header.jsp"/>
<put-attribute name="content" value="/WEB-INF/main/content.jsp"/>
<put-attribute name="footer" value="/WEB-INF/main/footer.jsp"/>
</definition>
<definition name="*/*" extends="main">
<put-attribute name="content" value="/WEB-INF/{1}/{2}.jsp"/>
</definition>
<definition name="*/*/*" extends="main">
<put-attribute name="content" value="/WEB-INF/{1}/{2}/{3}.jsp"/>
</definition>
<definition name="login" template="/WEB-INF/member/login.jsp">
</definition>
<!-- <definition name="login" template="/WEB-INF/member/login.jsp">
</definition>
<definition name="join" template="/WEB-INF/member/join.jsp">
</definition> -->
</tiles-definitions>
pom.xml
- 타일즈 버전 변경
<!-- tiles -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>3.0.8</version>
</dependency>
application-context.xml
- 사용자 정의 클래스 : 메모리 할당 요청
<context:component-scan base-package="com.sist.*"/>
- viewResolver
<!-- ViewResolver -->
<bean id="tilesViewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver"
p:requestContextAttribute="requestContext"
p:viewClass="org.springframework.web.servlet.view.tiles3.TilesView"
p:order="0"
/>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"
p:definitions="/WEB-INF/tiles.xml"
/>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/"
p:suffix=".jsp"
p:order="1"
/>
MainController
@Controller
- main.do와 main.jsp 매핑하기
@RequestMapping("main/main.do")
public String main_main()
{
return "main";
}
webapp- index.jsp
- main.do로 redirect해서 최초 화면 설정하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
response.sendRedirect("main/main.do");
%>
main.jsp 용도별로 분리하기
- taglib 추가하기 :
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
- header부분 header.jsp로 이동시키고, tiles insert하기 :
<tiles:insertAttribute name="header"/>
- footer부분 footer.jsp로 이동시키고, tiles insert하기 :
<tiles:insertAttribute name="footer"/>
- Content부분 Content.jsp로 이동시키고, tiles insert하기 :
<tiles:insertAttribute name="Content"/>
header.jsp , footer.jsp , content.jsp
- 5버전으로 변경 :
<meta charset="UTF-8">
content도 분리하기
food, recipe
db 테이블 제작
CREATE TABLE food_category(
no NUMBER,
title VARCHAR2(500) CONSTRAINT fc_title_nn NOT NULL,
poster VARCHAR2(1000) CONSTRAINT fc_poster_nn NOT NULL,
subject VARCHAR2(500) CONSTRAINT fc_subject_nn NOT NULL,
link VARCHAR2(100),
CONSTRAINT fc_no_nn PRIMARY KEY(no)
);
CREATE TABLE food_detail(
no NUMBER,
cateno NUMBER,
poster VARCHAR2(1000) CONSTRAINT fd_poster_nn NOT NULL,
title VARCHAR2(200) CONSTRAINT fd_title_nn NOT NULL,
score VARCHAR2(5) CONSTRAINT fd_score_nn NOT NULL,
addr VARCHAR2(200) CONSTRAINT fd_addr_nn NOT NULL,
tel VARCHAR2(15) CONSTRAINT fd_tel_nn NOT NULL,
type VARCHAR2(200) CONSTRAINT fd_type_nn NOT NULL,
price VARCHAR2(100),
menu VARCHAR2(500),
good NUMBER,
soso NUMBER,
bad NUMBER,
CONSTRAINT fd_no_pk PRIMARY KEY(no),
CONSTRAINT fd_cateno_fk FOREIGN KEY(cateno)
REFERENCES food_category(no)
);
FoodManager
- jsoup 파싱하기
-
&
와\
은 필터링해서 값 넣기
FoodCategoryVO
FoodDAO
- 연결
- foodCategoryInsert
MainClass
- foodCategoryAllData 실행해서 오라클에 값 집어넣기
FoodMapper
application-datasource.xml
FoodController
list.jsp
상세보기
FoodVO
com.sist.data - FoodDAO
- foodDetailInsert
- INSERT 쿼리 문장 장석
FoodManager
FoodDAO
- foodCategoryData
FoodManager
- jsoup 파싱해서 값 채우기
MainClass
- foodDetailData 실행해서 오라클에 값 넣기
food-list.jsp
- offset
- animate : 올라갈때, 0.4초(400/1000초) 걸리도촉 하는 이벤트
상세 페이지 출력
foodMapper
- REGEXP_LIKE
foodDAO
SRC - FOOD - list.jsp
- 사용자 요청 :
<a href="../food/food_category.do?no=${vo.no }">
FoodController
food_detail.jsp
-
스크립트에서 model로 넘겨진 변수 사용하는 방법 :
-
https://developers.google.com/chart/interactive/docs/gallery/piechart
식당 관련 레시피 출력하기
FoodController
- food_detail에서 foodLikeRecipeData결과를 받음
foodMapper
- REGEXP_LIKE
food_detail.jsp
<img src="cloud${vo.no }.png"/>
네이버 api 활용하기
- 태그명과 클래스명이 일치해야 한다.
Tip
XML 파싱
- JAXB : XML코드를 자바로 변환(언마샬) / 자바를 XML로 변환 하는 방식(마샬) => binding
- JAXP : DOM파싱 , SAX파싱
<rss version="2.0"> // Class Rss
<channel> // Class Channel
<title>aaa</title>
<description>bbb</description>
<item> // Class Item()
<title>명예훼손 없이 <b>리뷰</b>쓰기</title>
<link>http://openapi.naver.com/l?AAABWLyw6CMBREv+ayNJe2UrrogvJwg8aYKGvACiSUalNR/t6azGLO5Mzrrd0moVSQJZDl/6I4KIxGpx9y9P4JNANShXSzHXZLu2q3660Jw2bt0k1+aF1rgFYXfZ+c7j3QorYDkCT4JxuIEEyRUYGcxpGXMeMs3VPBOUEWGXntynUW03k7ohBYfG+mOdRqbPL6E84/apnqgaEAAAA=</link>
<description>명예훼손 없이</description>
<bloggername>건짱의 Best Drawing World2</bloggername>
<bloggerlink>http://blog.naver.com/yoonbitgaram</bloggerlink>
<postdate>20161208</postdate>
</item>
...
</channel>
</rss>
ApiExamSearchBlog.java
Rss
NaverManager
R
데이터 읽기
- csv = read.csv()
- read.table()
- readLines
-
data<-readLines("c:/upload/naver.txt",encoding="utf-8")
- 명사만 추출 : 세종(국어사전)
- sapply = 2차원 배열 => 1차원 배열 = unlist
- 단어의 언급횟수 (table) : 원하는 갯수 출력 head()
- 그래프, wordcloud
- 명사추출 : data1 <-sapply(data,extractNoun,USE.NAMES=F)
-
1차원 배열로 변경 : data2<-unlist(data1)
- data3<-Filter(function(x){nChar(x)>=2,data2})
- tools - install Package
- 자바와 알 연동시키려면?
- C:\Program Files\R\R-3.6.1\library\Rserve\libs\x64 - rserve복사해서
- bin 폴더에 붙여넣어야 함
- 그다음 cmd에서
- c:\Program Files\R>cd C:\Program Files\R\R-3.6.1\bin
- C:\Program Files\R\R-3.6.1\bin>R.exe CMD Rserve.exe