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"?>
  <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"?>
  <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 실습

오늘 느낀 점


  • 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 값으로 설정한다.
<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

오늘 한 일


  • 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 파일 변환과정에서 크롬이 잘못해석하는 변환이 있는건가?싶다.

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

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


java String 선언 시 두가지 방법이 존재
String str = new String();
String srt = "value";

첫번째 방법은 String 자료형이 heap에 할당됨.
두번째 방법은 String 값이 string constant pool이라는 영역에 할당된다. 만약 이미 선언되어있다면 그 값을 가져온다.
메모리를 아끼려면 2번째 방법(String 리터널) 방법으로 사용하는게 좋을 듯..

StringBuffer 


문자열을 추가하거나 변경할 때 주로 사용한다.
String과 다른 점은 String은 문자열 연산 시 객체 생성을 하지만 StringBuffer는 한번만 객체 생성이 된다.
또 String 보다 메모리 사용량도 많고 속도도 느다고 한다.
(일단 같은 문자열을 length() 함수로 출력했을 때 메모리는 같았다.)


String, StringBuffer, StringBuilder의 차이점


String은 메모리공간이 변하지 않는다. 그래서 문자열을 붙이면, 그 문자열을 참조한다. 그래서 문자열 연산이 많을 경우 성능이 좋지 않다.
StringBuffer, StringBuilder는 문자열 연산이 있을 때 크기를 변경해 문자열을 변경한다. 그래서 연산이 많을 때 사용하면 좋다.
둘의 차이점은 StringBuffer는 동기화를 지원하지만 StringBuilder는 멀티스레드 환경에서 사용하면 위험하다.

문자열 연산 시 StringBuffer가 더 효과있는지 확인하기 위해 테스트해보았다.
테스트 결과 문자열 연산 시 StringBuffer가 String보다 5배 더 빨랐다.

package Example;
import java.text.SimpleDateFormat;
public class HelloWorld {
       public static void main(String args[])
       {
              String str = new String("Hello Java");
              String nowTime = getCurrentTime("YYYY.MM.DD. HH:mm:ssSSS");
              for(int i = 0; i < 10000; ++i)
              {
                     System.out.println(str+" Hello Java");
              }
              String nowTime2 = getCurrentTime("YYYY.MM.DD. HH:mm:ssSSS");
              
                           
              StringBuffer strBuf = new StringBuffer("Hello Java");
              String nowTime3 = getCurrentTime("YYYY.MM.DD. HH:mm:ssSSS");
                           
              for(int i = 0; i < 10000; ++i)
              {
                     System.out.println("strBuf"+"Hello Java");
              }
              String nowTime4 = getCurrentTime("YYYY.MM.DD. HH:mm:ssSSS");
              
              System.out.println("1:" + nowTime);
              System.out.println("2:" + nowTime2);
              System.out.println("3:" + nowTime3);
              System.out.println("4:" + nowTime4);
       }
       
       public static String getCurrentTime(String timeFormat)
       {
              return new SimpleDateFormat(timeFormat).format(System.currentTimeMillis());
       }
}

ArrayList


배열은 크기가 고정이지만 List는 가변이다.
원래는 Generics(<>)를 사용하지 않아 item들이 Object로 인식되어 잘못된 형변환을 하는 경우가 있었다.
현재는 자료형을 명확히 적어주기 때문에 형변환에 의한 오류가 없어졌다.

package Example;
import java.util.ArrayList;
public class HelloWorld {
       public static void main(String args[])
       {
              ArrayList<Integer> arrList = new ArrayList();
              arrList.add(2);
              arrList.add(1);
              arrList.add(4);
              arrList.add(3);
              System.out.println(arrList);
              System.out.println(arrList.get(2));             // 2번째 요소 선택(4)
              System.out.println(arrList.size());             // 크기 출력(4)
              arrList.remove(2);                                     // 2번째 요소 삭제
              System.out.println(arrList);                    // 다시 출력
                           
       }
       
}

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 시작


'이전게시판 > 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
▲ top