카테고리 없음

[Project] 게시판 *.do주소, 글쓰기 기능

321 2021. 2. 7. 17:19

글쓰기기능, 조회수를 증가기능을 설정한다.

 

앞으로 추가해야할 기능들을 생각해보면,

글쓰기, 글 수정, 글 삭제, 답글달기 등등 게시판에서 만들어야할 기능들이 추가될 일이 많을 것이다.

이때마다 서블릿을 만들고 @WebServlet("/기능.do")로 만들기 번거로우니 줄여서 쓰는 방법이 있다.

 

*.do로 변환하기

1. do기능을 모두 받을 수 있는 *do로 서블릿주소를 바꿔준다.

2. 캐릭터셋도 utf-8로 인코딩해준다 request.setCharacterEncoding("utf-8");

 

3. 변수들을 선언해준다. 변수의 내용들은 그림안에 있다. 

uri, comPath, com을 log 찍어봤을때 나오는 값들

가장 간단한 com 변수를 사용할 예정임 /*.do형태로 바꿔줘서 비교한다.

 

 

 

4. .do를 클릭하면 실행될 수 있도록 com.equals("/~~.do")로 찾아서 실행시키도록 if함수를 만든다.

 

 

5. 아래와같이 주소로 분기처리 할 수 있다.

 

 

글쓰기 기능 구현하기

 

1. 글쓰기 버튼 만들기

 

아래는 board.jsp화면에서 글쓰기 버튼을 만든 것이다. colspan을 사용해 행을 합치고 write.jsp화면으로 넘어가게만들어줬다.

 

 

2. 1에서 <글 작성하기> 버튼을 누르면 나오는 write.jsp페이지

<글쓰기>버튼을 누르면 write.do 서블릿이 실행되고 방식은post이다.

 

서블릿에서 post방식을 아래와같이 설정해주면 doGet으로 작동하기때문에 doPost에 작성하지 않아도 실행된다.

 

 

3. 서블릿 실행하기전에 DAO에서 기능 쿼리 실행한 내용 

board에 저장할 내용들 중에 입력받을 것은  btitle과 bcontent이기때문에 매개변수로 넣고 setString해서 write메서드를 작성한다.

 

 

public void write(String btitle, String bcontent) {
		String sql = "insert into webboard(bid, bname, btitle, bcontent, bhit, bgroup, bstep, bindent) "
								+ "values(bseq.nextVal, ?, ?, ?, 0, bseq.currVal, 0, 0)";
		
		try {
			conn = getConnection();
			ps=conn.prepareStatement(sql);
			ps.setString(1, "아이디");
			ps.setString(2, btitle);
			ps.setString(3, bcontent);
			rs=ps.executeQuery();
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(rs!=null) rs.close();
				if(ps!=null) ps.close();
				if(conn!=null) conn.close();
			}catch(Exception e) {
				e.printStackTrace();
			}
		}	
	}
	

 

 

4. 이제 서블릿에 기능추가한다.