"이전게시판"에 해당되는 글 - 162건
Post
오늘 한 일
- Servlet 동작, Get,Post 실습
오늘 느낀 점
- git 블로그 찾아볼 것
내일 할 일 (계획)
- git 블로그 생성하기
- JSP 공부하기
'이전게시판 > TIL' 카테고리의 다른 글
2018.12.08_TIL (0) | 2018.12.08 |
---|---|
2018.12.07_TIL (0) | 2018.12.08 |
18.10.21_TIL (0) | 2018.10.21 |
18.10.20_TIL (0) | 2018.10.20 |
18.10.18_TIL (0) | 2018.10.18 |
18.10.17_TIL (0) | 2018.10.17 |
18.10.16_TIL (0) | 2018.10.16 |
TIL(Today I Learn) 시작 (0) | 2018.10.15 |
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 값으로 설정한다.
Context Path
- WSA에서 웹 어플리케이션을 구분하기 위한 Path.
- 이클립스에서 프로젝트를 생성하면, 자동으로 server.xml에 추가됨.
- http://localhost:8090/ex/hw
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
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
오늘 한 일
- JSP, Servlet 기초 예제 들음
- to-do-list add 버튼 클릭 시 아이템 추가
오늘 느낀 점
- 검색하다가 javascript에 클로저, 이벤트 위임이라는게 있다는걸 알았다. 내 홈페이지 수정 좀 해야할 듯..
- gitpage + jekyll 이나 hexo로 블로그 만들고 싶다
내일 할 일 (계획)
- git 블로그 생성하기
- JSP 공부하기
'이전게시판 > TIL' 카테고리의 다른 글
2018.12.08_TIL (0) | 2018.12.08 |
---|---|
2018.12.07_TIL (0) | 2018.12.08 |
18.10.21_TIL (0) | 2018.10.21 |
18.10.20_TIL (0) | 2018.10.20 |
18.10.19_TIL (0) | 2018.10.19 |
18.10.17_TIL (0) | 2018.10.17 |
18.10.16_TIL (0) | 2018.10.16 |
TIL(Today I Learn) 시작 (0) | 2018.10.15 |
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 파일 변환과정에서 크롬이 잘못해석하는 변환이 있는건가?싶다.
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 파일 실행
- 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 |
Post
오늘 한 일
- To-Do List 작업
- Java 기초 공부
오늘 느낀 점
- To-Do List 작업할 때 css, javascript 에 익숙하지 않다보니 시간이 걸린다.
- 한동안 이렇게 시간이 걸릴 듯.. 좌절하지 말고 조금씩 하자.
- to-do list 저장하려면 서버가 필요한데.. 개인서버 구축하고 싶다.
- 반응형은 나중에 찾아볼 것(일단 구현이 우선!)
내일 할 일 (계획)
- To-Do List 개발
- JSP
'이전게시판 > TIL' 카테고리의 다른 글
2018.12.08_TIL (0) | 2018.12.08 |
---|---|
2018.12.07_TIL (0) | 2018.12.08 |
18.10.21_TIL (0) | 2018.10.21 |
18.10.20_TIL (0) | 2018.10.20 |
18.10.19_TIL (0) | 2018.10.19 |
18.10.18_TIL (0) | 2018.10.18 |
18.10.16_TIL (0) | 2018.10.16 |
TIL(Today I Learn) 시작 (0) | 2018.10.15 |
Post
자바기초 정리
String
StringBuffer
String, StringBuffer, StringBuilder의 차이점
ArrayList
'이전게시판 > Java' 카테고리의 다른 글
VSCode Error 에러 빨간색 줄 삭제하기(Remove red line) (0) | 2024.04.17 |
---|---|
vscode 폰트 변경 안될 때 (0) | 2022.12.26 |
Post
오늘 한 일
- 내 홈페이지에 명언버튼 추가. 버튼 클릭 시 명언이 변경되도록 수정했다.
- Java 기초 공부
오늘 느낀 점
- 글자에 네온사인 효과를 적용하고 싶었지만, 모르는 문법이 많아서 Commit 하기 부담;;
- css translate에 대해서 찾아보자
- Web To-do List를 만들어보고 싶다.
- Java 설치 에러가 나서 너무 오래걸렸다.. 에러를 줄이는 방법=>설치 포스팅을 꼼꼼히 잘보자.
내일 할 일 (계획)
- To-Do 리스트 개발( 소스 참고보다 직접 필요한 것을 찾아가며 만들자 )
- Java 기초 보기 ( https://wikidocs.net/book/31 )
- 시간되면 JSP
'이전게시판 > TIL' 카테고리의 다른 글
2018.12.08_TIL (0) | 2018.12.08 |
---|---|
2018.12.07_TIL (0) | 2018.12.08 |
18.10.21_TIL (0) | 2018.10.21 |
18.10.20_TIL (0) | 2018.10.20 |
18.10.19_TIL (0) | 2018.10.19 |
18.10.18_TIL (0) | 2018.10.18 |
18.10.17_TIL (0) | 2018.10.17 |
TIL(Today I Learn) 시작 (0) | 2018.10.15 |
Post
'이전게시판 > TIL' 카테고리의 다른 글
2018.12.08_TIL (0) | 2018.12.08 |
---|---|
2018.12.07_TIL (0) | 2018.12.08 |
18.10.21_TIL (0) | 2018.10.21 |
18.10.20_TIL (0) | 2018.10.20 |
18.10.19_TIL (0) | 2018.10.19 |
18.10.18_TIL (0) | 2018.10.18 |
18.10.17_TIL (0) | 2018.10.17 |
18.10.16_TIL (0) | 2018.10.16 |
Post
Javascript 정리
html과 javascript의 차이
- html은 있는 그대로 보여주지만 javascript는 동적으로 페이지를 보여준다.
- 아래 예는 같은 1+1을 했지만 html은 글자로써 그대로 보여주는 반면
- javascript는 1+1의 결과값 2를 출력한다.
javascript event
- html에 on으로 시작하는 속성들이 있다.
- on으로 시작하는 속성은 javascript 이벤트를 대입해야한다.
- onclick="alert('OK')"
- onclick 속성은 마우스 클릭(이벤트)시 OK알람창(javascript)이 뜬다.
javascript consol
- 크롬 웹 페이지에서 오른쪽 클릭 - 검사-console 창 뜸
- 간단한 javascript code 를 console 창에서 테스트 할 수 있다.
데이터타입-문자열과 숫자
- 데이터 타입이 문자열인지 숫자인지에 따라 결과가 달라진다.
- 데이터 타입 숫자 : 1+1 = 2
- 데이터 타입 문자 : "1"+"1"="11"
프로그래밍이란?
- javascript는 프로그래밍 언어. html 아님.
- 프로그램이란 순서라는 의미가 있음. 만드는사람은 프로그래머.
- html은 시간의 순서에 따라 순서대로 작동x
- javascript는 시간의 순서에 따라 순서대로 작동.
조건문
- == : 값이 같은지 확인
- === : 데이터 값이 같은지 확인
- ex.
- 1 == "1" : true
- 1 === "1" : false
- true == 1 : true
- true === 1 : false
function
- 함수선언
- 사용법
객체
- 소스코드가 커지면 function 이름의 중복이 많이 나타난다.
- function이 중복되면 나중에 선언된 function만 남고, 먼저 선언된걸 지워버린다.
- 객체를 사용하면 객체와 관련있는 변수, 함수를 Grouping하기 때문에 function 이름 중복을 방지할 수 있다.
- 사용법
- Method 사용
func.MethodName1(value);
파일로 정리하기
- js객체 정의가 각 파일마다 정의되어있다면 소스가 복잡해진다.
- js파일을 한 파일에 넣고 정리할 수 있다.
- js파일 참조하기
jquery
- jquery 라이브러리 포함(CDN)
- jquery 다운로드 페이지 접속 (https://jquery.com/download/)
- 페이지에서 CDN 검색 , 구글 CDN 클릭
- jQuery을 찾아서 아래 script를 <head>태그 안에 넣음
- jquery는 javascript로 복잡하게 적은 소스를 간단하게 변경할 수 있는 좋은 라이브러리.
'이전게시판 > HTML CSS Javascript' 카테고리의 다른 글
크롤링 하려고 하는데 ModuleNotFoundError: No module named 'pandas'에서 막힘 (1) | 2022.10.11 |
---|---|
Bitnabi로 서버 접속, 댓글 달기, 채팅기능 추가 (0) | 2018.10.06 |