학생 정보 관리 웹


필요한 페이지

모든 학생 리스트를 보여주는 페이지

학생정보를 입력해서 학생을 데이터베이스에 추가할 수 있는 페이지

학생정보중 일부를 변경해서 데이터베이스 정보를 수정할 수 있는 페이지


필요 요청

- studentList.do : 학생리스트 보여주는 페이지를 요청

- deleteStudent.do : 파라미터로 넘어온 학생을 삭제해주는 요청 -> 요청 처리 후 studentList.do로 리다이렉트

- addStudentForm.do : 학생 추가 페이지를 요청

- addStudent.do : 학생 추가 작업을 처리 요청 -> 요청 처리 후 studentList.do로 리다이렉트

- modifyStudentForm.do : 학생 수정페이지를 요청

- modifyStudent.do : 학생 수정 작업을 처리 요청


필요 기능

- 학생 리스트 데이터를 얻어오는 기능

- 학생 데이터 한개를 지우는 기능

- 학생 데이터 한개를 추가하는 기능

- 학생 데이터 한개를 수정하는 기능


필요 데이터베이스 쿼리

- 학생 리스트 조회 쿼리

- 학생 레코드 추가 쿼리   insert into student values ~~~~

- 학생 레코드 삭제 쿼리

- 학생 레코드 수정 쿼리



1. web 프로젝트 생성 (web.xml 체크) // maven 설정

2. 디펜던시 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
cs


 * web.xml에 dispatcherServlet 등록과 루트 컨테이너를 위한 리스너등록, 

   한글처리를 위한 필터등록 <- 스프링 MVC한글처리하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    
    <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    
    <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>
cs


* 등록한 dispatch 서블릿이 사용할 스프링 컨테이너 설정파일 생성,

contextLoaderListener에 의해 생성될 루트컨테이너가 사용할 스프링 컨테이너 설정파일 생성


* 구조생성


* controller구현 클래스가 있는 controller패키지 컴포넌트 스캔

HandlerMapping, ViewResolver중에 필요한객체들 빈으로 등록

 Namespaces - context 체크

1
2
3
4
5
<context:component-scan base-package="controller"></context:component-scan>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>



* dataSource 빈 등록, sqlSessionFactory 빈 등록, IstudentDao 인터페이스를 MapperFactoryBean을 통해 매퍼 객체 빈 등록

service 구현클래스가 있는 service패키지 component-scan


 Namespaces - context 체크

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<context:component-scan base-package="service"></context:component-scan>
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost/데이터베이스이름"></property>
        <property name="username" value="아이디"></property>
        <property name="password" value="비밀번호"></property>
    </bean>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="classpath*:dao/mapper/**/*.xml"></property>
     
<property name="typeAliasesPackage" value="model"></property>


    </bean>
    <bean id="studentDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
        <property name="mapperInterface" value="dao.IStudentDao"></property>
    </bean>

cs





' IOT 기반 응용 SW과정 > Web Programing' 카테고리의 다른 글

Day67 네이버 API  (0) 2016.06.23
Day66 Spring-student // 스프링 인터셉터  (0) 2016.06.22
Day64  (0) 2016.06.20
Day63 Spring-member  (0) 2016.06.17
Day62 Spring MVC  (0) 2016.06.16

annotation방식으로 aop 설정하기


1. 디펜더시 세팅

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>4.1.6.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>4.1.6.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aop</artifactId>

<version>4.1.6.RELEASE</version>

</dependency>

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjrt</artifactId>

<version>1.8.6</version>

</dependency>

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

<version>1.8.6</version>

</dependency>

</dependencies> 


2. annotation방식에서도 일단 등장인물들을 빈으로 등록부터

namespace : context, aop체크

<context:component-scan base-package="*"/>

+ <aop:aspectj-autoproxy></aop:aspectj-autoproxy>



@Component

@Aspect  <<<<< (pointcut + advice)의 정보를 입력


public class MyAspect{         

@Pointcut("excution(public * test.* . abcd()")

public void myPt(){}


@Before("myPt()")

public void before(JoinPoint jp){

     System.out.println(jp.getSignature());//AOP정보 출력

System.out.println(jp.getTarget());//핵심관심사항객체 리턴

System.out.println("야생의 휘동몬을 조우하였다!!");

}


      @After("myPt()")

public void after(JoinPoint jp){

System.out.println("효과는 탁월하였다!!");

}

@AfterReturning(pointcut="myPt()", returning="msg")

public void after_returning(JoinPoint jp, String msg){

System.out.println(msg);

}

@AfterThrowing(pointcut="myPt()", throwing="th")

public void after_throwing(JoinPoint jp, Throwable th){

System.out.println(th.getMessage() + "  : 가라 몬스터볼!!");

}



@Component

public class Pikachu implements IPokemon{


@Override

public String fighting() throws Exception {

// TODO Auto-generated method stub

System.out.println("피카츄 백만볼트!!");

if(new Random().nextBoolean())

throw new Exception("피카츄 전광석화!!");

return "pika!!";

}

}



' IOT 기반 응용 SW과정 > Web Programing' 카테고리의 다른 글

Day62 Spring MVC  (0) 2016.06.16
Day61  (0) 2016.06.15
Day59 Spring-AOP  (0) 2016.06.13
Day58 AOP (Aspect Oriented Programming)  (0) 2016.06.10
Day57 MyBatis_Spring  (0) 2016.06.09

+ Recent posts