웹개발 교육/Spring

[70일] spring (10) - mymelon media 상세보기

ewok 2022. 11. 4. 15:06

 

list.jsp

35행 수정

 

MediaCont.java

	@RequestMapping("/media/read.do")
	public ModelAndView read(int mediano) {
		ModelAndView mav = new ModelAndView();
		MediaDTO dto = dao.read(mediano);
		if(dto!=null) {
			String filename = dto.getFilename();    //파일명 가져오기
			filename.toLowerCase();                 //파일명 전부 소문자로 바꾸기
			if(filename.endsWith(".mp3")) {         //마지막 문자열이 .mp3인지?
				mav.setViewName("media/readMP3");
			} else if(filename.endsWith("mp4")) {   //마지막 문자열이 .mp4인지?
				mav.setViewName("media/readMP4");
			}//if end
		}//if end
		mav.addObject("dto", dto);
		return mav;
	}//read() end

 

MediaDAO.java

	public MediaDTO read(int mediano) {
		MediaDTO dto = null;
		try {
			sql = new StringBuilder();
			sql.append(" SELECT mediano, title, poster, filename, filesize, mview, rdate, mediagroupno ");
			sql.append(" FROM media ");
			sql.append(" WHERE mediano = " + mediano);
			sql.append(" ORDER BY mediano DESC ");
			
			RowMapper<MediaDTO> rowMapper = new RowMapper<MediaDTO>() {
			
				@Override
				public MediaDTO mapRow(ResultSet rs, int rowNum) throws SQLException {
					MediaDTO dto = new MediaDTO();
					dto.setMediano(rs.getInt("mediano"));
					dto.setTitle(rs.getString("title"));
					dto.setPoster(rs.getString("poster"));
					dto.setFilename(rs.getString("filename"));
					dto.setFilesize(rs.getLong("filesize"));
					dto.setMview(rs.getString("mview"));
					dto.setRdate(rs.getString("rdate"));
					dto.setMediagroupno(rs.getInt("mediagroupno"));
					return dto;
				}//mapRow() end
			};//rowMapper end
			
			dto = jt.queryForObject(sql.toString(), rowMapper);
			
		} catch (Exception e) {
			System.out.println("상세보기 : " + e);
		}//end
		return dto;
	}//read() end

 

 

readMP3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>readMP3.jsp</title>
	<style>
		*{font-family: gulim; font-size: 24px;}
	</style>
	<link href="../css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
	<div class="title">MP3 듣기</div>
	<div class="content">
		<p><strong>${dto.title}</strong></p>
		<img src="../storage/${dto.poster}" width="400"><br>
		<audio src="../storage/${dto.filename}" controls></audio>
	</div>
	
	<div class="bottom">
		<input type="button" value="음원목록" onclick="location.href='list.do?mediagroupno=${mediagroupno}'">
		<input type="button" value="HOME" onclick="location.href='/home.do'">
	</div>
		
</body>
</html>

 

readMP4.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>readMP4.jsp</title>
	<style>
		*{font-family: gulim; font-size: 24px;}
	</style>
	<link href="../css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
	<div class="title">MP4 보기</div>
	<div class="content">
		<p><strong>${dto.title}</strong></p>
		<img src="../storage/${dto.poster}" width="400"><br>
		<video src="../storage/${dto.filename}" controls></video>
	</div>
	
	<div class="bottom">
		<input type="button" value="음원목록" onclick="location.href='list.do?mediagroupno=${mediagroupno}'">
		<input type="button" value="HOME" onclick="location.href='/home.do'">
	</div>
		
</body>
</html>