내가 구현한 기능소개(메인페이지) - KimByoungKoo/NewLightProject GitHub Wiki

📌메인페이지

✔️ 글 작성 최신순 리스트 띄우기

  • User가 작성한 글 최신순으로 리스트 띄우기

💻Code

MainFrontController.java
public class MainFrontController extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doProcess(req, resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doProcess(req, resp);
	}
	
	private void doProcess(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
		String target = req.getRequestURI().substring(req.getContextPath().length());
		System.out.println(target); 
		
		switch(target) {
		case "/main/mainpageListOk.mi" :
			System.out.println("mainpage 들어왔다!!");
			new MainpageListOkController().execute(req, resp);
			break;
		}
		
	}
}
MainpageListOkController.java
public class MainpageListOkController implements Execute{
	
	@Override
	public void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
		MainVO mainVO = new MainVO();
		MainDAO mainDAO = new MainDAO();
		
		List<MainVO> main = null;
		
		main = mainDAO.selectList();
		System.out.println(main);
		
		req.setAttribute("main", main);
		
		req.getRequestDispatcher("/app/main/mainpage_newlight.jsp").forward(req, resp);
	}
}
MainDAO
public class MainDAO {
	
	public SqlSession sqlSession;
	
	public MainDAO() {
		sqlSession = MyBatisConfig.getSqlSessionFactory().openSession(true);
	}
	
//	메인페이지 리스트 띄어주기
	public List<MainVO> selectList() {
		return sqlSession.selectList("main.selectList");
	}
	
}
MainMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="main">

	<!-- 메인페이지에 작성 최신순으로 리스트 띄어주기 -->
	<select id="selectList" resultType="MainVO">
			select count(cc.comment_number ) comment_count, j.* from (
			select count(l.member_number) like_count, m.member_nickname, m.member_pfp , c.* from creations c join
			`member` m 
			on c.member_number = m.member_number
			left outer join likes l 
			on c.creation_number = l.creation_number
			group by c.creation_number
			) j left outer join creations_comment cc 
			on j.creation_number = cc.creation_number 
			group by j.creation_number
			order by j.creation_number desc
	</select>
	
	
</mapper>

📷View

메인페이지 최신순 리스트
메인페이지 최신순01 메인페이지 최신순02
⚠️ **GitHub.com Fallback** ⚠️