SpringMVCMybatis project 이클립스설치->marketplace spring sts
프로젝트 생성 : Spring project MVC
src/main/webapp/web-inf/web.xml 수정 *.do, 인코딩 관련
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.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>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
pom.xml 수정 DB드라이버 추가 Build path 사용하지않고 추가
<repositories>
<repository>
<id>codelds</id>
<url>https://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
</repositories>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.2</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/webapp/web-inf/spring/appservlet/servlet-context.xml 수정
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing
infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<!-- <context:annotation-config/> -->
<context:component-scan base-package=************************ />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving
up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources
in the /WEB-INF/views directory -->
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<!-- JNDI기반의 설정 설정 예시 -->
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/myoracle"
resource-ref="true" />
<!-- <beans:bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<beans:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<beans:property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
<beans:property name="username" value="hr"/> <beans:property name="password"
value="hr"/> </beans:bean> -->
<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="mapperLocations" value="classpath*:mappers/*Mapper.xml" />
<beans:property name="configLocation" value="classpath:sqlMapConfigure.xml" />
</beans:bean>
<!--공유되지 않고 thread에 안전, requestScope, method scope -->
<beans:bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<beans:constructor-arg index="0" ref="sqlSessionFactory" />
</beans:bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<beans:bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource" />
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="within(com.kodb.web.*)" id="serviceInsertMethod" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceInsertMethod" />
</aop:config>
<!-- <beans:bean name="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="10000000" />
</beans:bean> -->
</beans:beans>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> 서버 설정 server/context.xml JNDI 사용시 서버설정<!--[endif]-->
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
username="hr" password="hr" maxActive="20" maxIdle="10"
maxWait="-1"/>
src/main/resources/sqlMapConfigure.xml 에 TypeAiases 지정
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="model.MemberVO" alias="membervo" />
</typeAliases>
</configuration>
src/main/resources/mappers/memberMapper.xml 생성
<mapper namespace="mymember">
<select id="selectAll" resultType="membervo">
select MNO, EMAIL, PWD, MNAME,
CRE_DATE, MOD_DATE
from members
order by 1
</select>
<select id="selectByNo" parameterType="int" resultType="membervo">
select
MNO, EMAIL, PWD, MNAME, CRE_DATE, MOD_DATE
from members
where MNO = #{mno}
</select>
<update id="updateByNo" parameterType="membervo">
update members
set EMAIL=#{email},
PWD=#{pwd},
MNAME=#{mname},
MOD_DATE = sysdate
where MNO = #{mno}
</update>
<delete id="deleteByNo" parameterType="membervo">
delete from members
where MNO = #{mno}
</delete>
<insert id="insertMember" parameterType="membervo">
insert into
members(MNO, EMAIL, PWD, MNAME, CRE_DATE, MOD_DATE)
values(seq_mno.nextval, #{email}, #{pwd},#{mname},sysdate, sysdate)
<!-- #{cre_date:DATE} -->
</insert>
</mapper>
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/model에 VO, DAO(인터페이스사용), Service(인터페이스사용)생성
VO 구현 default생성자+생성자+getter/setter+toString(확인용)
private int mno;
private String email;
private String pwd;
private String mname;
private Date cre_date;
private Date mod_date;
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/model/MemberDAO.java 생성 (인터페이스)
public interface MemberDAO {
public ArrayList<MemberVO> selectAll(String condition, String keyword);
public MemberVO selectByNo(int mno);
public MemberVO selectByEmail(String email);
public int insertMember(MemberVO member);
public int updateMember(MemberVO member);
public int deleteMember(int mno);
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/model/MemberDAOImpl.java 생성
<!--[if !supportEmptyParas]--> <!--[endif]-->
@Component
public class MemberDAOImpl implements MemberDAO {
@Autowired
SqlSession sqlSession;
<!--[if !supportEmptyParas]--> <!--[endif]-->
public ArrayList<MemberVO> selectAll(String condition, String keyword) {
<!--[if !supportEmptyParas]--> <!--[endif]-->
List list = sqlSession.selectList("mymember.selectAll");
return (ArrayList<MemberVO>) list;
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
@Override
public MemberVO selectByNo(int mno) {
return sqlSession.selectOne("mymember.selectByNo", mno);
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
@Override
public int insertMember(MemberVO member) {
return sqlSession.insert("mymember.insertMember", member);
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
@Override
public int updateMember(MemberVO member) {
return sqlSession.update("mymember.updateByNo", member);
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
@Override
public int deleteMember(int mno) {
return sqlSession.delete("mymember.deleteByNo", mno);
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/model/MemberService.java 생성(인터페이스)
public interface MemberService {
public ArrayList<MemberVO> selectAll(String condition, String keyword);
public MemberVO selectByNo(int mno);
public MemberVO selectByEmail(String email);
public int insertMember(MemberVO member);
public int updateMember(MemberVO member);
public int deleteMember(int mno);
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/model/MemberServiceImpl.java 생성
@Service
public class MemberServiceImpl implements MemberService{
@Autowired
MemberDAO memberDAO;
@Override
public ArrayList<MemberVO> selectAll(String condition, String keyword) {
return memberDAO.selectAll(condition, keyword);}
@Override
public MemberVO selectByNo(int mno) {
return memberDAO.selectByNo(mno);}
@Override
public MemberVO selectByEmail(String email) {
return memberDAO.selectByEmail(email);}
@Override
public int insertMember(MemberVO member) {
return memberDAO.insertMember(member);}
@Override
public int updateMember(MemberVO member) {
return memberDAO.updateMember(member);}
@Override
public int deleteMember(int mno) {
return memberDAO.deleteMember(mno);}
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/controller에 MemberController.java 생성
@Controller
public class MemberController {
@Autowired
MemberService memberService;
@RequestMapping("/member/list.do")
public ModelAndView memberlist() {
ModelAndView mv = new ModelAndView();
<!--[if !supportEmptyParas]--> <!--[endif]-->
ArrayList<MemberVO> members = memberService.selectAll(null, null);
mv.addObject("memberlist", members);
mv.setViewName("member/memberlist");
return mv;
}
@RequestMapping(value = "/member/add.do", method = RequestMethod.GET)
public String addMember() {
return "member/memberInsertForm";
}
@RequestMapping(value = "/member/add.do", method = RequestMethod.POST)
public String addMemberPost(MemberVO member) {
int ret = memberService.insertMember(member);
System.out.println(ret + "건 입력됨");
System.out.println(member);
return "redirect:list.do";
}
@RequestMapping(value = "/member/update.do", method = RequestMethod.GET)
public ModelAndView updateMember(int mno) {
MemberVO member = memberService.selectByNo(mno);
ModelAndView mv = new ModelAndView();
mv.addObject("member", member);
mv.setViewName("member/updateForm");
return mv;
}
@RequestMapping(value = "/member/update.do", method = RequestMethod.POST)
public String updateMemberPost(int mno, String email,String pwd, String mname) {
MemberVO member = new MemberVO(mno, email, pwd, mname, null, null);
int ret = memberService.updateMember(member);
System.out.println(ret+"건 수정");
System.out.println(member);
return "redirect:list.do";
}
@RequestMapping("/member/delete.do")
public String deleteMember(int mno) {
ModelAndView mv = new ModelAndView();
int ret = memberService.deleteMember(mno);
System.out.println(ret + "건 수정");
return "redirect:list.do";
}
@ExceptionHandler(Exception.class) //에러발생시 화면전환 + console출력
public String handleException(Exception e){
System.out.println("Eception오류:"+e);
e.getStackTrace();
return "/myerror";
}
}
src/main/webapp/web-inf/views 밑에 auth(login관련)+메인화면+출력화면 jsp파일들 생성
/member/memberlist.jsp
<%@page import="model.MemberVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<jsp:useBean id="memberlist" class="java.util.ArrayList"
type="ArrayList<MemberVO>" scope="request" />
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="../header.jsp"%><br>
<h1>우리반 목록</h1>
<a href='add.do'>신규입력</a><br><br><br>
<%-- <c:if test="${sessionScope.member==null}">
<c:redirect url="../auth/login.do"></c:redirect>
</c:if> --%>
<c:set var="a" value=""></c:set>
<c:set var="b" value=""></c:set>
<c:if test="${condition=='mname'}">
<c:set var="a" value="selected"/>
</c:if>
<c:if test="${condition=='email'}">
<c:set var="b" value="selected"/>
</c:if>
<form action="list.do" method="get">
<select name="condition">
<option value="mname" ${a}>이름
<option value="email" ${b}>이메일
</select>
<input type="text" name="keyword" value="${keyword }">
<input type="submit" value="조회">
</form>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<table border='1'>
<tr>
<th>번호</th>
<th>이름</th>
<th>이메일</th>
<th>암호</th>
<th>가입일</th>
<th>변경일</th>
<th>삭제</th>
</tr>
<c:forEach var="m" items="${memberlist}">
<tr>
<td><a href="update.do?mno=${m.mno }">${m.mno }</a></td>
<td>${m.mname }</td>
<td>${m.email }</td>
<td>${m.pwd }</td>
<td>${m.cre_date }</td>
<td>${m.mod_date }</td>
<td><a href="delete.do?mno=${m.mno }">삭제</a>
</th>
</tr>
</c:forEach>
</table>
<%@include file="../bottom.jsp"%><br>
</body>
</html>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
/member/memberInsertForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!--[if !supportEmptyParas]--> <!--[endif]-->
</head>
<body>
<h1>신규등록</h1>
<br>
<br>
<form action="add.do" method="post">
이름 : <input type="text" name="mname"><br> 이메일 : <input
type="text" name="email"><br> 비밀번호 : <input
type="password" name="pwd"><br> <input type="submit"
value="추가"> <input type="reset" value="취소" onclick='func();'>
<!--[if !supportEmptyParas]--> <!--[endif]-->
</form>
</body>
</html>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
/member/updateForm.jsp
<%@page import="model.MemberVO"%>
<%@page import="model.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<%-- <%
MemberVO mem = (MemberVO)request.getAttribute("member");
%>
--%>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<h1>회원정보 수정</h1>
<form action="update.do" method="post">
번호:<input type="text" name="mno" value="${member['mno'] }"><br>
이름:<input type="text" name="mname" value="${member.mname }"><br>
이메일:<input type="text" name="email" value="${member.email }"><br>
비밀번호:<input type="text" name="pwd" value="${member.pwd }"><br>
생성일:<input type="text" name="cre_date" value="${member.cre_date }"><br>
수정일:<input type="text" name="mod_date" value="${member.mod_date }"><br>
<input type="submit" value="수정">
<input type="reset" value="취소" >
</form>
<!--[if !supportEmptyParas]--> <!--[endif]-->
</body>
</html>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
에러 발생시 호출되는 페이지
/error.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
오류발생~~~~
</body>
</html>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
UpLoad기능추가
pom.xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/webapp/upload 폴더 생성
/member/memberInsertForm.jsp
<form action="add.do" method="post" enctype="multipart/form-data">
이름 : <input type="text" name="mname"><br>
이메일 : <input type="text" name="email"><br>
비밀번호 : <input type="password" name="pwd"><br>
사진 : <input type="file" name="file">
<input type="submit" value="추가">
<input type="reset" value="취소" onclick='func();'>
</form>
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/model/MemberVO 추가 +Getter/Setter
private String fileSrc;
private CommonsMultipartFile file;
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/java/controller/MemberController.javac
if(!member.getFile().isEmpty()){
String path = request.getSession().getServletContext().getRealPath("/upload");
String file = member.getFile().getOriginalFilename();
String fpath = path+"\\"+file;
FileOutputStream fo = null;
System.out.println(fpath);
//나중에 DB에 파일이름 저장하기위함
member.setFileSrc(file);
try {
fo = new FileOutputStream(fpath);
fo.write(member.getFile().getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fo!=null)fo.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
<!--[if !supportEmptyParas]--> <!--[endif]-->
src/main/webapp/web-inf/spring/appservlet/servlet-context.xml 수정
<!--[if !supportEmptyParas]--> <!--[endif]-->
<beans:bean name="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="10000000" />
</beans:bean>
'Computer > Spring Maven MyBatis' 카테고리의 다른 글
eGovFrame bound mismatch the generic method sort(list <t> ) of type collections is not applicable (0) | 2015.11.20 |
---|---|
MyBatis <> 사용 & 기간검색 (0) | 2015.05.30 |
Spring 게시판 페이지 (0) | 2014.08.18 |
Spring GET방식 한글 깨짐 (0) | 2014.08.18 |
Spring 파일 다운로드 (0) | 2014.08.18 |