드디어 마지막 회원정보 수정들어갑니다...

 

탈퇴하기 버튼 누르면 시작합니다........이벤트연결시키는데

중요사항!!! button 과 input이 같이있는데 이벤트 진행하면 input도 반응하기에

꼭!!!! button에 type을 설정해야한다......

 

 

드디어 마지막 회원정보 수정들어갑니다...로그인 정보는 session에 넣어두었던거 불러옴

 

 Impl과 Logic은 그동안 한거랑 비슷비슷

기존의 delete로 시작했으나 오늘은 회원관리 한단계 한가지 더 배움.......

보통 사용자는 회원탈퇴를 했으나 차후관리를 위해 db에 남겨두는 경우가 있는데 이렇게 진행하는 것으로 보임.... 실제 조회는 M_STATUS='Y'만 되는 조건을 두고

삭제요청이 온다면 /N/으로 변경하여 검색할수 없도록 조치하는 것임.......프로젝트에도 참고해야함^^

Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111

출처: https://haenny.tistory.com/22 [Haenny:티스토리]

<!-- 만약에 null 데이터가 전달되었으면 빈칸이 아닌 NULL로 인식하도록 설정 -->

 

jdbcType값을 붙여야하는데 양이 상당히 많아 하나하나 변경이 어려울 경우..

mybaits설정파일에서 재설정해주면 된다...

root // property name이 configL

 

<!-- 만약에 null 데이터가 전달되었으면 빈칸이 아닌 NULL로 인식하도록 설정 즉 db에 있어서 매핑문구에는 있으나 화면에 구성되어 있지않아 값을 받지 않는 경우, 에러내지말고 그냥 null로 쓰도록 해라....-->

요렇게 해주면된다는거.

model과 view기능을 합쳐놓은 것. 

이렇게 진행했던것을

 

변경하여 기재함.....

Model model도 삭제하면되고

return을 쓸때는 페이지 이동이 아닐때 쓰면 됨...

 

추가추가...

별도로 받아서 진행할때 객체로 전달.

session은 브라우저가 종료될때가지 정보 보관함...

loginUser정보를 이용하여 수정시 id값을 가져옴...

이쯤되면 매핑 문구 간단해짐/ 가져온 정보를 controller에서 다시 화면으로 보내줘야함..

주소에 ,로 같이 저장된 우편번호를 분류해야함.

mOne으로 선언엔 Member객체를 새로 만들고 거기서 주소를 따로 빼내어 콤마(,)구분자로 배열화 시키고

그걸 로 보내주기 위하여 작업한 내용임...

짜잔!!!이렇게 잘 나오게 됨...

차후 분류 작업을 할때 요긴하게 쓰일것임.^^

value에 controller에서 받은 값을 매치시켜주고 우편주소 배열이니깐  잘 넣어줘야함...

중요한것 같으나 이해안되서한번더 정리해보기로 하는 파일들

1.web.xml

2.servlet-context.xml

3.root-context.xml ..^^

.

.

1.web.xml

web.xml의 설정 내용에는 3가지 역할이 있는데

. DispatcherServlet 클라이언트의 요청을 처리함.

브라우저가 java Servlet에 접근하기위해 톰캣이나 URL정보를 알려주는 역할을 한다.

servlet의 name은 반드시 일치 해야하고  class 는 실제 클래스의 이름이라고 블로그글은 그랬으나 여기서는 아니고.....

매핑 : URL을 서블릿 이름에 연결하는 것으로

       url-pattern :  브라우저에서 요청  url 프로젝트(앱) 이름 뒤에 오는 부분으로 / 슬래시로 시작한다.

 

 

. ContextLoaderListener  : controller가 공유하는 bean들을 포함하는 spring Container생성한다. (컨덱스트단위설정)

   .service-context.xml : service관련                                                           /WEB-INF/service-context.xml

   .dao-contes.xml: Dao관련                                                                       /WEB-INF/Dao-context.xml

   .applicationContext.xml :   DataSource관련, properties등록, SessionFactroy, TransactionManager등

                                                                                                                /WEB-INF/applicationContext.xml

   .security-context.xml : Security관련, BCryptPasswordEncoder등      /WEB-INF/applicationContext.xml

   .cf)salesServlet-servlet.xml :  controller관련, ViewRelolver.,mvc:annotation-driven설정등

root-context.xml에 JDBCTemplate할때들어갔던 정보들이 있다.

 

                                                                                                       

.encodingFilter :꼭 거쳐야하는 것...

 

찾아 보다가 좋은 티스토리 선배님 글이 있어서 링크도 걸어 둔다...나중을 위해.https://tlatmsrud.tistory.com/35

 

[Spring] web.xml 이란? / 예제

1. 개요 실무 투입한지 거의 1년이 다 되어갈 무렵, web.xml 코드를 보던 중 문득 이런 생각이 들었다. '웹 애플리케이션의 첫 단추인 web.xml에 대해 누군가에게 설명할 수 있을까?'  1년간 일은 열심

tlatmsrud.tistory.com

 

2.servlet-context.xml

절대경로 짧아진다는데 완전조으다....어려운 경로지정....왜 안먹히냐구요..ㅠㅠ

이것도 좋은 설명이 있어서 같이 참고...https://needneo.tistory.com/204

 

[Spring] 뷰 리졸버(View Resolver) 개념 이해하기

스프링 백엔드에서 데이터를 처리하거나 가지고 왔다면, 이 데이터를 View의 영역으로 전달을 해야 한다. 이때 View를 어떤 것을 사용할지 자유롭게 설정을 할 수 있는데 이 설정 역할을 하는 것이

needneo.tistory.com

 

3.root-context.xml 

여기서 등록되어 있기에 service

가져다 쓸수 있는 것인가 보다...로 결론^^

추가로 프로젝트를 만들때 기본적으로 있었던 파일들에 대해 기록하기로 한다.

1.web.xml

2.servlet-context.xml

3.root-context.xml

 

나중에 찾아보기 울것같다.......새로운 파일로 다시...^^

로그인하기...

id, pwd받기.

매핑으로 확인하기.

불러오기.

로그인 정보 세션 저장

에러발생시 model로 처리함..... 에러페이지 및 예외처리 진행

로그인 성공시 화면에 표시하기.

로그아웃진행

 

로그인하기...

화면단 구성하고..로그인 버튼을 누르면 ? member/login.kh로 간다.

 

id, pwd받기.//매핑으로 확인하기.//불러오기.까지

로그인 정보 세션 저장

에러발생시 model로 처리함..... 에러페이지 및 예외처리 진행

두고두고 써먹는 errorPage

로그인 성공시 화면에 표시하기.

CONTROLLER에서 INPUT값을 받아와서 MEMBER 클래스의 변수와 일치시켜 가져왔다면

@ModelAttribute  틍해서는 한줄에 다 할수 있음....대신, input name명과 클래스 변수 명이 일치해야하고 일치하지 않으면 값을 반영하지 못함....

session도 속성값으로 멤버 객체를 넣어서 전달하여  로그인전후 여부 화면표시를 했는데...

c :if문 사용할때 주의사항 다시한번 체크하고... 

사용시 구문2로 배움...

          loginUser 객체가 빈값일때    // 빈값이 아닐때

1. empry loginUser                            //  not empry loginUser 

2.  sessionScope.loginUser eq null  // sessionScope.loginUser ne null

지금은 생각할게 많은 스프링이지만 익숙만 해지면 확실히 기재할것이 많이 줄어드는 것 같다.

 

로그아웃진행

로그아웃 하면 간단히 앞 화면으로 돌아간다...

HttpServletRequest request
,Model model 매개변수 처럼 가져와서 써야 한다는 것/////지지난주 배운 의존관계...ㅋㅋ

1.Invalidate : 영어의 의미로는 무효화 시키다 라는 뜻  // 화면전체를 재표시하라는 것임....

2.sessionScope : 세션에서 설정해주었던 Attribute값을 jsp에서 jstl로  간단히 사용할때...

앞서서 공부했던 sesstion 재탕하면...클라우드가 요청한 로그인 정보를 session은 계속 갖고 있고 브라우저 닫을때 까지 사용한다. 이때 SessionScope에서는 session영역에 저장되어 있는 데이터나 객체를 자유롭게 사용 가능

             sessionScope.loginUser//  sessionScope.loginUser.memberName이 그래서 쓰인것임.

////////////////////////////////////////////22.10.29

기존의 게시판 만드는 것을 복습했다.

왜케 다 새로운지 모르겠다... 게시판 올리는데 한글이 깨진다.....기록해 뒀더니 이런건 찾을 수 있어서 좋은데

예전엔 그냥 이미지파일로 올렸떠니 복붙이 안되서 수정한다...

참고로 WEB.XML파일이다....맨밑에다가 추가한다.

	<!--한글깨짐 필터 설정  -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

//////////////////////////////////////////////////////////////////////////////////////////// 오타나면 안되니깐......ㅋㅋ

한글안깨지게 하는 방법

한글을 깨지지 않게 하는 것은 기존에는 servlet에서 진행해으나

이제는 매핑하여 진행했다.

필터라는 개념으로 url로 접속하는 것은 이필터라는 것을 거치기 때문에

자동으로 한글은 utf-8 적용을 받는다.

예전엔 이런 방식으로 반복해서 기술했줬다면........

한번에 적용하여 이후로는 신경안써도 되니깐 편해졌다....

 

미리 변경해야 할것들이 있다. 이게 되어야 나중 인터페이스 SqlSession 진행 됨...

자바 버전과 스프링 버전 을 쓰고 있는 것으로 변경해야함.

 

2곳 버전 변경부터 1차 한다.

 

2차..파일 관련 설정...

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.kh</groupId>
<artifactId>junspring</artifactId>
<name>04_SpringMVC</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.1.18.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<!--1. ojdbc6.jar//2.mybatis //3.spring-mybatis //4.spring-jdbc//5.common-dbcp  -->
<!--spring을 할때 선 설치해야할 파일들  -->

<repositories><!--ojdbc6는 버전상 원격저장소에 파일 없어서 별도 기재한것임...여기서 받겠다는 것으로 기존의   https://mvnrepository.com 그냥하면 안됨 -->
<repository>
<id>OJDBC repo</id>
<url>http://www.datanucleus.org/downloads/maven2/</url>
</repository>
</repositories>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
<dependency>
    <groupId>oracle</groupId>      <!--  <groupId>com.oracle.database.jdbc</groupId> 원격저장소에 파일없음-->
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>  //버전 11.2.0.3으로 변경해야 함.
</dependency>

<!-- 2번 https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
<!-- 3번  https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>



<!-- 커넥션 풀 기능을 사용하기 위한 라이브러리 -->
<!-- 데이터베이스 커넥션 풀이란? (DBCP)
DB연결이 필요할 때마다 생성하여 접속하는것이 아니라
Connection Pool에 연결을 생성하여 놓고 재사용하는 방식 
-->
<!-- 5번임. https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
<!-- 4번. Spring jdbc 이건 기존걸 수정한것임-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>  <!--위에 스프링 버전이 바뀌면 차후 수정할 필요가 없어진다..  -->
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
 </exclusion>
</exclusions>
</dependency>

 

이러게 많은 애들이 설치되어 있다.

 

지금까지 한것이

1. Spring MVC 프로젝트 생성 2. pom.xml에 ojdbc6, mybatis, mybatis-spring, spring-jdbc, common-dbcp 추가  3. ojdbc6할때에 repositories - repository 추가 후 dependency 작성

오늘 날짜 출력하기...

서버주소에 /만 포함하면

web.xml 1차 가고  매핑에 따라 . servlet의 appServlet-context.xml rksek.

 

value값 /을 진행하여 결과 home를 받음

 

마지막 home.jsp 로 간다.

출력된다.

+ Recent posts