본문 바로가기
🎵JSP

[JSP]설문조사form - include

by 김말자 2023. 2. 9.
728x90
728x90
BIG

설문조사를 인클루드를 써서 넣어줌

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%@ page import="java.util.Enumeration"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	//request에 담겨있는 것 출력 
	//request에 담겨있는 Attribute 이름 다 가져오기.
	Enumeration<String> names = request.getAttributeNames();
	while (names.hasMoreElements()) {//담긴 요소가 있나?
		String name = names.nextElement();//요소를 꺼내서 name에 저장
		out.print(name + " : " + request.getAttribute(name) + "<br>");
	}
	//getParameter의 반환값은 String
	//getAttribute는 반환값이 Object 이므로 String으로 형변환 하여 사용.
	String name = (String) request.getAttribute("name");//고길동
	String gender = (String) request.getAttribute("gender");//F
	String season = (String) request.getAttribute("season");//봄,가을
	String color = (String) request.getAttribute("color");
	String phone = (String) request.getAttribute("phone");
	String age = (String) request.getAttribute("age");
	%>
	<form action="insertResearch.jsp" method="post">
		<table border='1' cellpadding='5px'>
			<tr>
				<td>이름</td>
				<td><input type="text" name="name" size="20" value="<%=name%>"></td>
			</tr>


			<tr>
				<td>성별</td>
				<%
				String ch1 = "";
				String ch2 = "";
				if (gender.equals("M")) {
					ch1 = "checked";
				} else {
					ch2 = "checked";
				}
				%>
				<td><input type="radio" name="gender" value="male" <%=ch1%>>남자
					<input type="radio" name="gender" value="female" <%=ch2%>>여자</td>
			</tr>
			<tr>
				<%
				if (season == null) {
					out.print("없습니다");
				} else {
				%>

				<%
				String b = "";
				String y = "";
				String g = "";
				String g1 = "";

				if (season.indexOf("봄") != -1) {
					b = "checked";
				}
				if (season.indexOf("여름") != -1) {
					y = "checked";
				}
				if (season.indexOf("가을") != -1) {
					g = "checked";
				}
				if (season.indexOf("겨울") != -1) {
					g1 = "checked";
				}
				%>
				<td>좋아하는 계절</td>
				<td><input type="checkbox" name="season" value="1" <%=b%>>봄
					<input type="checkbox" name="season" value="2" <%=y%>>여름 <input
					type="checkbox" name="season" value="3" <%=g%>>가을 <input
					type="checkbox" name="season" value="4" <%=g1%>>겨울</td>

				<%
				}
				%>
			</tr>
			<tr>
				<td>연락처</td>
				<td><input type=text name=phone value=<%=phone %>></td>
			</tr>
			<tr>
				<td>연령</td>
				<%
				String age10 = "";
				String age20 = "";
				String age30 = "";
				String age40 = "";
				String age50 = "";
				String age60 = "";
				
				if(age.indexOf("10대이하")!=-1){
					age10="checked";
				}else if(age.indexOf("20대")!=-1){
					age20="checked";
				}else if(age.indexOf("30대")!=-1){
					age30="checked";
				}else if(age.indexOf("40대")!=-1){
					age40="checked";
				}else if(age.indexOf("50대")!=-1){
					age50="checked";
				}else if(age.indexOf("60대이상")!=-1){
					age60="checked";
				}
				
				
				%>
				<td><input type=radio name=age value="10대이하" <%=age10 %>>10대이하 <input
					type=radio name=age value="20대"<%=age20 %>>20대 <input type=radio
					name=age value="30대"<%=age30 %>>30대 <input type=radio name=age
					value="40대"<%=age40 %>>40대 <input type=radio name=age value="50대"<%=age50 %>>50대
					<input type=radio name=age value="60대이상"<%=age60 %>>60대이상</td>
			</tr>
			<%
			if (color == null) {
				out.print("좋아하는 색깔은 없습니다");
			} else {
				String re = "";
				String or = "";
				String ye = "";
				String gr = "";
				String bl = "";
				String na = "";
				String pu = "";
				String bla = "";
				String pi = "";
				String ev = "";
				String br = "";

				if (color.indexOf("red")!=-1) {
					re = "checked";
				}

				if (color.indexOf("orange")!=-1) {
					or = "checked";
				}

				if (color.indexOf("yellow")!=-1) {
					ye = "checked";
				}

				if (color.indexOf("green")!=-1) {
					gr = "checked";
				}

				if (color.indexOf("blue")!=-1) {
					bl = "checked";
				}

				if (color.indexOf("navy")!=-1) {
					na = "checked";
				}

				if (color.indexOf("purple")!=-1) {
					pu = "checked";
				}
				if (color.indexOf("black")!=-1) {
					bla = "checked";
				}

				if (color.indexOf("pink")!=-1) {
					pi = "checked";
				}
				if (color.indexOf("ever-green")!=-1) {
					ev = "checked";
				}

				if (color.indexOf("brown")!=-1) {
					br = "checked";
				}
			
			%>
			<tr>
				<td>좋아하는 색상</td>
				<td><input type="checkbox" name=color value="red" <%=re%>>빨강
					<input type="checkbox" name=color value="orange" <%=or%>>주황
					<input type="checkbox" name=color value="yellow" <%=ye%>>노랑
					<input type="checkbox" name=color value="green" <%=gr%>>초록
					<input type="checkbox" name=color value="blue" <%=bl%>>파랑 <input
					type="checkbox" name=color value="navy" <%=na%>>남색 <input
					type="checkbox" name=color value="puple" <%=pu%>>보라 <input
					type="checkbox" name=color value="black" <%=bla%>>검정 <input
					type="checkbox" name=color value="pink" <%=pi%>>핑크 <input
					type="checkbox" name=color value="ever-green" <%=ev%>>풀색 <input
					type="checkbox" name=color value="brown" <%=br%>>똥색</td>
			<%} %>
			</tr>
			<tr align="center">
				<td colspan='2'><input type="submit" value="전송"> <input
					type="reset" value="취소"></td>

				
			</tr>
		</table>
	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
			<tr>
				<td>연락처</td>
				<td><input type=text name=phone></td>
			</tr>
			<tr>
				<td>연령</td>
				<td><input type=radio name=age value="10대이하">10대이하 <input
					type=radio name=age value="20대" checked>20대 <input
					type=radio name=age value="30대">30대 <input type=radio
					name=age value="40대">40대 <input type=radio name=age
					value="50대">50대 <input type=radio name=age value="60대이상">60대이상
				</td>
			</tr>
			<tr>
				<td>좋아하는 색상</td>
				<td><input type="checkbox" name=color value="red">빨강 <input
					type="checkbox" name=color value="orange">주황 <input
					type="checkbox" name=color value="yellow">노랑 <input
					type="checkbox" name=color value="green">초록 <input
					type="checkbox" name=color value="blue">파랑 <input
					type="checkbox" name=color value="navy">남색 <input
					type="checkbox" name=color value="puple">보라 <input
					type="checkbox" name=color value="black">검정 <input
					type="checkbox" name=color value="pink">핑크 <input
					type="checkbox" name=color value="ever-green">풀색 <input
					type="checkbox" name=color value="brown">똥색</td>
			</tr>

VO

package research;

public class ResearchVO {
private int rno;
private String name;
private String age;
private String color;
private String gender;
private String mobile;
private String season;
public int getRno() {
	return rno;
}
public void setRno(int rno) {
	this.rno = rno;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getAge() {
	return age;
}
public void setAge(String age) {
	this.age = age;
}
public String getColor() {
	return color;
}
public void setColor(String color) {
	this.color = color;
}
public String getGender() {
	return gender;
}
public void setGender(String gender) {
	this.gender = gender;
}
public String getMobile() {
	return mobile;
}
public void setMobile(String mobile) {
	this.mobile = mobile;
}
public String getSeason() {
	return season;
}
public void setSeason(String season) {
	this.season = season;
}
public ResearchVO() {
	super();
	// TODO Auto-generated constructor stub
}
public ResearchVO(int rno, String name, String age, String color, String gender, String mobile, String season) {
	super();
	this.rno = rno;
	this.name = name;
	this.age = age;
	this.color = color;
	this.gender = gender;
	this.mobile = mobile;
	this.season = season;
}
@Override
public String toString() {
	return "ResearchVO [rno=" + rno + ", name=" + name + ", age=" + age + ", color=" + color + ", gender=" + gender
			+ ", mobile=" + mobile + ", season=" + season + "]";
}





}

DAO

package research;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class ResearchDAO {
   static {
         try {
            Class.forName("oracle.jdbc.OracleDriver");
         }catch(ClassNotFoundException e) {
            e.printStackTrace(); System.exit(0);
         }
      }
      //싱글톤
      public static ResearchDAO dao=null;
      private ResearchDAO() {}
      public static ResearchDAO getInstance() {
         if(dao==null) {
            dao=new ResearchDAO();
         }
         return dao;
      }
      //공통모듈
      private Connection getConnection() {
         Connection conn=null;
         String url="jdbc:oracle:thin:@localhost:1521:xe";
         try {
            conn=DriverManager.getConnection(url,"JAVADB","1234");
         } catch (SQLException e) {
            e.printStackTrace();System.exit(0);
         }
      return conn;
      }
      //닫기
      private void close(PreparedStatement pstmt,Connection conn) {

            try {
               if(pstmt!=null)
               pstmt.close();
               if(conn!=null)
                  conn.close();
            } catch (SQLException e) {
               e.printStackTrace();
            }
      }
      private void close(ResultSet rs,PreparedStatement pstmt,Connection conn) {

         try {
            if(rs!=null)
               rs.close();
            if(pstmt!=null)
            pstmt.close();
            if(conn!=null)
               conn.close();
         } catch (SQLException e) {
            e.printStackTrace();
         }
      }
   
   //---------------- 공통모듈 end
      public boolean insertResearch(String name,String age, String color, String gender, String phone, String season) {
         boolean r = false;
         Connection conn = null;
         PreparedStatement pstmt = null;
         conn = this.getConnection();
         
         System.out.println(color);
         String sql = "insert into research values (rno_seq.nextval,?,?,?,?,?,?)";
         try {
         pstmt = conn.prepareStatement(sql);
         pstmt.setString(1, name);
         pstmt.setString(2, age);
         pstmt.setString(3, color);
         pstmt.setString(4, gender);
         pstmt.setString(5, phone);
         pstmt.setString(6, season);
         int result = pstmt.executeUpdate();
         if(result==1)r=true;
      } catch (SQLException e) {
         e.printStackTrace();
      } finally {
         this.close(pstmt, conn);
      }
         return r;
      }
      
      
      
      
      
      

}

인서트하기

<%@page import="java.lang.ProcessBuilder.Redirect"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="research.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//db로 넘길때 한글깨짐을 방지하기 위해
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String gender=request.getParameter("gender");
String phone=request.getParameter("phone");
String[] seasons=request.getParameterValues("season");
String age=request.getParameter("age");
String[] color=request.getParameterValues("color");
if(gender.equals("male")) gender = "M";
else gender = "F";
String season ="";
if(seasons!=null){
for(String s:seasons){
	int fav=Integer.parseInt(s);
	switch(fav){
	case 1 :season+="봄,";break;
	case 2 :season+="여름,";break;
	case 3 :season+="가을,";break;
	case 4 :season+="겨울,";break;
	
	}
}
season=season.substring(0,season.length()-1);
}
String colors ="";
if(color!=null){
	StringBuilder sb = new StringBuilder();
	for (String s : color) {
		sb = sb.append(s + ",");
	}
	colors = sb.toString();
	colors = colors.substring(0, colors.length() - 1);
}
ResearchDAO dao = ResearchDAO.getInstance();
boolean result = false;
result = dao.insertResearch(name, age, colors, gender, phone, season);
if (result == true) {
	out.print("삽입완료");
	request.setAttribute("name", name);
	request.setAttribute("gender", gender);
	request.setAttribute("season", season);
	request.setAttribute("phone", phone);
	request.setAttribute("age", age);
	request.setAttribute("color", colors);
	RequestDispatcher rd = request.getRequestDispatcher("researchMain.jsp");
	rd.forward(request, response);
} else {
	//아무것도 전달하는 거 없이 페이지 이동만 하려면 sendRedirect를 씀
	response.sendRedirect("researchForm.jsp");
	out.print("삽입실패");
}
%>
</body>
</html>

메인페이지

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%@ page import="java.util.Enumeration"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	//request에 담겨있는 것 출력 
	//request에 담겨있는 Attribute 이름 다 가져오기.
	Enumeration<String> names = request.getAttributeNames();
	while (names.hasMoreElements()) {//담긴 요소가 있나?
		String name = names.nextElement();//요소를 꺼내서 name에 저장
		out.print(name + " : " + request.getAttribute(name) + "<br>");
	}
	//getParameter의 반환값은 String
	//getAttribute는 반환값이 Object 이므로 String으로 형변환 하여 사용.
	String name = (String) request.getAttribute("name");//고길동
	String gender = (String) request.getAttribute("gender");//F
	String season = (String) request.getAttribute("season");//봄,가을
	String color = (String) request.getAttribute("color");
	String phone = (String) request.getAttribute("phone");
	String age = (String) request.getAttribute("age");
	%>
	<form action="insertResearch.jsp" method="post">
		<table border='1' cellpadding='5px'>
			<tr>
				<td>이름</td>
				<td><input type="text" name="name" size="20" value="<%=name%>"></td>
			</tr>


			<tr>
				<td>성별</td>
				<%
				String ch1 = "";
				String ch2 = "";
				if (gender.equals("M")) {
					ch1 = "checked";
				} else {
					ch2 = "checked";
				}
				%>
				<td><input type="radio" name="gender" value="male" <%=ch1%>>남자
					<input type="radio" name="gender" value="female" <%=ch2%>>여자</td>
			</tr>
			<tr>
				<%
				if (season == null) {
					out.print("없습니다");
				} else {
				%>

				<%
				String b = "";
				String y = "";
				String g = "";
				String g1 = "";

				if (season.indexOf("봄") != -1) {
					b = "checked";
				}
				if (season.indexOf("여름") != -1) {
					y = "checked";
				}
				if (season.indexOf("가을") != -1) {
					g = "checked";
				}
				if (season.indexOf("겨울") != -1) {
					g1 = "checked";
				}
				%>
				<td>좋아하는 계절</td>
				<td><input type="checkbox" name="season" value="1" <%=b%>>봄
					<input type="checkbox" name="season" value="2" <%=y%>>여름 <input
					type="checkbox" name="season" value="3" <%=g%>>가을 <input
					type="checkbox" name="season" value="4" <%=g1%>>겨울</td>

				<%
				}
				%>
			</tr>
			<tr>
				<td>연락처</td>
				<td><input type=text name=phone value=<%=phone %>></td>
			</tr>
			<tr>
				<td>연령</td>
				<%
				String age10 = "";
				String age20 = "";
				String age30 = "";
				String age40 = "";
				String age50 = "";
				String age60 = "";
				
				if(age.indexOf("10대이하")!=-1){
					age10="checked";
				}else if(age.indexOf("20대")!=-1){
					age20="checked";
				}else if(age.indexOf("30대")!=-1){
					age30="checked";
				}else if(age.indexOf("40대")!=-1){
					age40="checked";
				}else if(age.indexOf("50대")!=-1){
					age50="checked";
				}else if(age.indexOf("60대이상")!=-1){
					age60="checked";
				}
				
				
				%>
				<td><input type=radio name=age value="10대이하" <%=age10 %>>10대이하 <input
					type=radio name=age value="20대"<%=age20 %>>20대 <input type=radio
					name=age value="30대"<%=age30 %>>30대 <input type=radio name=age
					value="40대"<%=age40 %>>40대 <input type=radio name=age value="50대"<%=age50 %>>50대
					<input type=radio name=age value="60대이상"<%=age60 %>>60대이상</td>
			</tr>
			<%
			if (color == null) {
				out.print("좋아하는 색깔은 없습니다");
			} else {
				String re = "";
				String or = "";
				String ye = "";
				String gr = "";
				String bl = "";
				String na = "";
				String pu = "";
				String bla = "";
				String pi = "";
				String ev = "";
				String br = "";

				if (color.indexOf("red")!=-1) {
					re = "checked";
				}

				if (color.indexOf("orange")!=-1) {
					or = "checked";
				}

				if (color.indexOf("yellow")!=-1) {
					ye = "checked";
				}

				if (color.indexOf("green")!=-1) {
					gr = "checked";
				}

				if (color.indexOf("blue")!=-1) {
					bl = "checked";
				}

				if (color.indexOf("navy")!=-1) {
					na = "checked";
				}

				if (color.indexOf("purple")!=-1) {
					pu = "checked";
				}
				if (color.indexOf("black")!=-1) {
					bla = "checked";
				}

				if (color.indexOf("pink")!=-1) {
					pi = "checked";
				}
				if (color.indexOf("ever-green")!=-1) {
					ev = "checked";
				}

				if (color.indexOf("brown")!=-1) {
					br = "checked";
				}
			
			%>
			<tr>
				<td>좋아하는 색상</td>
				<td><input type="checkbox" name=color value="red" <%=re%>>빨강
					<input type="checkbox" name=color value="orange" <%=or%>>주황
					<input type="checkbox" name=color value="yellow" <%=ye%>>노랑
					<input type="checkbox" name=color value="green" <%=gr%>>초록
					<input type="checkbox" name=color value="blue" <%=bl%>>파랑 <input
					type="checkbox" name=color value="navy" <%=na%>>남색 <input
					type="checkbox" name=color value="puple" <%=pu%>>보라 <input
					type="checkbox" name=color value="black" <%=bla%>>검정 <input
					type="checkbox" name=color value="pink" <%=pi%>>핑크 <input
					type="checkbox" name=color value="ever-green" <%=ev%>>풀색 <input
					type="checkbox" name=color value="brown" <%=br%>>똥색</td>
			<%} %>
			</tr>
			<tr align="center">
				<td colspan='2'><input type="submit" value="전송"> <input
					type="reset" value="취소"></td>

				
			</tr>
		</table>
	</form>
</body>
</html>

728x90
반응형
BIG

댓글