스프링 시큐리티를 사용한다.ajax로 요청하는 어떤 url(별칭A)로의 접근을 시큐리티가 로그인 한 사용자만 접근하도록 제한하고 있다.한 페이지에서 장시간 사용하지 않아 세션이 만료되어 로그아웃 되었다.하지만 페이지는 로그인한 페이지 그대로 보여 A로 접근하는 ajax를 실행했지만 실패한다.. 이런 이유로다음과 같은 상황에서 ajax를 실행하면 로그인 화면으로 리다이렉트 하도록 한다. 필터클래스를 구현한 bean을 등록하고, security:http엘리먼트 하위에 custom-filter엘리먼트를 등록한다. ..... ..... Colored by Color Scriptercs 필터 클래스의 구현체인 AjaxSessionTimeoutFilter클래스를 만든다.public class AjaxSessionT..
Stream을 사용하면 배열, 컬렉션 클래스 또는 파일에 저장된 데이터들을 같은 방식으로 접근하고 다룰 수 있다. ex) 컬렉션 클래스와 배열을 스트림으로 선언 ArrayList list = new ArrayList(); list.add("전북"); list.add("익산시"); list.add("신동"); list.add("영등동"); list.add("부송동"); Stream stream = list.stream(); //컬렉션 클래스를 스트림으로 선언하는법 //2번째 요소까지만 출력 stream.limit(2).forEach(System.out::println); int[] arr = {1,2,3}; IntStream iStream = Arrays.stream(arr); //배열을 스트림으로 선언하..
현재 지정된 단축 명령 확인#aliascs alias 등록 방법명령행에서 바로 등록(재 접속시 더이상 사용할 수 없다.)#alias remove='rm -rf'cs 현재 사용자만 사용하도록 등록vi ~/.bash_profile #파일이 열리면..아래 명령을 적절한 위치에 등록 alias remove='rm -rf' #저장하고 나와서 source ~/.bashrccs로그아웃 후 재접속을 해야 등록한 alias사용가능 모든 사용자가 사용하도록 등록위의 ~/.bash_profile파일 대신에 /etc/profile파일에 명령어 등록역시 재접속을 해야 사용가능
transition은 간단하게 설명하면 엘리먼트가 변하는 특정한 style속성에 애니메이션 효과를 주는 변형 속성이다. transition은 비교적 최신 기술에 속하기 때문에 버전이 낮은 브라우저에서는 동작하지 않는다. 익스플로러 10이상 크롬 파이어폭스 5이상 사파리 4이상 오페라 에서만 동작한다. transition은 부드러운 애니메이션 모션을 적용할 때 사용하는 것이다. transition 변형 속성 속성 설명 transition 모든 transition속성을 한번에 적용한다. transition-delay 이벤트가 발생한 뒤 몇초 뒤에 재생할지를 지정 transtion-duration 몇 초 동안 재생 할지를 지정 transition-property 어떤 style속성을 변형할지 지정 transi..
이클립스를 처음 설치하고 jsp파일을 열기 위해서 소스파일 tree에서 jsp파일을 열려고 할 때 열 수가 없을 것이다.이 때에는 java web developer tools라는 플러그인을 설치해야 한다. (jsp파일을 열 수 있는지 없는지는 window - preferences - Editors - File Associations 에서 확인 가능하다.) help - install new software 를 클릭하고 창이 뜨면 아래와 같은 URL을 넣고, 설치 목록이 뜨면 Web, XML, Java EE and OSGi Enterprise항목 하위에 있는 java web developer tools를 설치한다. 이를 설치 하다가 이런 오류가 발생하는 사람이 있을 것이다. 아래는 오류 구문의 일부이다.==..
JSP는 자체적으로 지원하는 JSTL이나 jsp:로 시작하는 액션태그로 표현할 수 없는 기능을 사용하고 싶은 경우 다른 태그를 만들어서 사용할 수 있다. 이와 같이 목적에 맞게 작성한 태그를 '커스텀태그'라고 한다. 이미 알고 있는 JSTL같은 태그들도 커스텀태그에 속한다. tag파일이라는 것을 이용해서 커스텀 태그를 만들 수 있는데 이 파일에는 다음과 같은 디렉티브() 태그를 사용 가능하다. - tag파일에서 사용할 수 있는 디렉티브 목록tag태그파일의 정보를 명시한다.taglib사용할 태그라이브러리를 지정한다.include태그파일에 특정파일을 포함시킬 때 사용한다.attribute태그파일이 커스텀태그로 사용될 때 입력 받을 속성을 명시한다.variableEL변수로 사용될 변수에 대한 정보를 지정한다...
이 글은 이클립스 '루나'버전을 대상으로 작성하였습니다. 이클립스를 설치하기 위해서는 먼저 Eclipse Marketplace에서 'STS'를 검색 후 아래와 같은 항목에 대하여 install하면 된다.설치시에 창이 나오면 전부 yes 또는 apply, accept를 선택한다.마지막에 재시작할건지 물어보는 창이 뜨는데 재시작 버튼을 클릭한다. (이클립스가 재시작 되면 이제 프로젝트 생성하는 종류에 spring이 보일 것이다.) File - New - Other - Spring이 있는지 확인만 한다. 프로젝트를 만들지는 말자. 에러가 뜨니까..어떤 에러가 발생하냐면 "J2EE Component Mapping Update" J2EE 구성을 업데이트 해야한다면서 에러가 발생한다. 에러를 없애기 위해서 inst..
웹뷰는 안드로이드 애플리케이션 안에서 웹브라우저를 띄울 수 있는 방법을 제공한다. xml레이아웃에서 엘리먼트로 정의한다. 웹뷰를 정의하여 사용할 때는 androidManifest.xml파일에 인터넷 접속 권한을 등록해야 한다. 웹뷰의 설정정보는 액티비티에서 getSettings()메서드를 이용해서 여러가지 설정을 할 수 있다. 그리고 이 getSettings()로 가져온 WebSettings 타입에는 setJavascriptEnabled(boolean b)라는 메서드가 존재하는데 자바스크립트를 허용 할 것인가를 지정하는 것으로 대부분의 웹사이트가 자바스크립트를 사용하니 이것은 항상 true로 설정해야 한다. 다음은 간단한 웹뷰 예제 코드이다. 에딧텍스트에서 주소를 입력하고 버튼을 터치하면 웹뷰영역에서 웹..
몇몇 기기 구성은 프로그램 실행 중에 변경될 수 있다. (예: 화면 방향 전환, 키보드 가용성 및 언어 변경)이러한 변경이 일어나는 경우 안드로이드는 액티비티를 다시 실행시키게 된다. 쉡게 말하면 수명주기 중에서 destroy가 호출되고 다시 실행되면서 onCreate를 다시 호출하는 것이다. 이 같은 상황을 '특정 구성에 대한 변경'이라 칭하고 정리하겠다. 안드로이드는 특정 구성 변경에 대해 직접 처리 할 수 있는 선택지로 configchanges라는 activity의 속성을 제공한다. 그러나 configchanges의 사용은 시스템이 리소스의 재구성을 도와주지 않기 때문에 특정 구성 변경으로 인한 재시작을 반드시 피해야 하는 경우가 아니라면 사용하지 않는 것이 좋다. configchanges는 and..
selector라는 엘리먼트를 사용하면 뷰를 선택했을 때와 안했을 때의 색상을 다르게 줄 수 있다. 마치 웹프로그래밍 시에 css에서 hover와 같은 효과라고 볼 수 있다. 우선 selector엘리먼트를 정의 할 xml 파일을 하나 만들어야 되니res/drawable 디렉토리에서 마우스 오른쪽을 클릭해서 resource파일 추가로 해서 만든다. selector_ex.xml 위가 selector의 기본 구조이며, 안에 item엘리먼트가 존재하는데 여기에서 어떤 상태에 따라서 색상을 줄 수 있는가를 지정할 수 있다. 상태의 목록android:state_enable : 사용 가능 상태android:state_selected : 선택 상태android:state_pressed : 클릭 상태 (눌려있는 경우)a..
git 프로그램이 설치되어 있음을 전제로 한다. 저장소로 사용하려는 디렉토리에 마우스 우클릭 후 git bash를 실행한다. git의 환경설정에서 username과 email을 등록한다.(github가입했을 때의 유저명과 이메일) $ git config --global user.name "유저명" $ git config --global user.email "이메일" 현재 폴더에 대해서 저장소로 등록해둔다.$ git init github에 올릴 임의의 파일을 등록해둔 저장소 폴더에 생성하거나 붙여 넣는다. 그리고 git에 추가하는 명령을 입력한다.(여기서는 파일을 index.java파일을 올린다고 해둔다.)$ git add "대상파일/폴더이름" $ git add index.java $ git add . 위..
사용자가 화면을 터치하거나 키(홈키, 음량 등)를 누르면 이벤트가 발생하고 다음 메서드가 호출된다. boolean onTouchEvent(MotionEvent event); boolean onKeyDown(int keyCode, KeyEvent event); boolean onKeyUp(int keyCode, KeyEvent event); 위와 같은 메서드들은 모두 Activity클래스에 정의되어 있다. 우리가 직접만드는 클래스는 모두 Activity의 서브클래스로 부터 상속받아 코딩하기 때문에 이 이벤트들을 오버라이딩 할 수 있다. 그리고 기존에 존재하는 뷰들에 대하여 이벤트를 사용하기 위해서 다음과 같은 리스너 인터페이스를 구현해서 이벤트를 발생 시킬 수 있다. View.OnTouchListener ..
알림 대화상자는 마치 자바스크립트의 confirm함수와 같은 기능을 담당하여, 일방적으로 메세지를 보여주고, 예, 아니오, 같은 응답을 처리할 수 있다. 다음은 대화 상자를 띄워서 예를 누르면 액티비티를 종료하는 애플리케이션 코드이다. 레이아웃 xml 코드 액티비티 java 코드 public class DialogActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dialog); } public void onClickCreateDialog(View v) { ..