자바 스크립트 쇼핑몰 만들기 | [React 강의] 리액트(React)로 아마존 웹사이트 만들기 17688 명이 이 답변을 좋아했습니다

당신은 주제를 찾고 있습니까 “자바 스크립트 쇼핑몰 만들기 – [React 강의] 리액트(react)로 아마존 웹사이트 만들기“? 다음 카테고리의 웹사이트 you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 리액트 깎는 노인 이(가) 작성한 기사에는 조회수 9,214회 및 좋아요 182개 개의 좋아요가 있습니다.

Table of Contents

자바 스크립트 쇼핑몰 만들기 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [React 강의] 리액트(react)로 아마존 웹사이트 만들기 – 자바 스크립트 쇼핑몰 만들기 주제에 대한 세부정보를 참조하세요

Github : https://github.com/reactbacksu/amazon-clone
사용한 에디터는 Intellij 입니다
+ 미흡한 부분 보충 설명
flex-end : 플렉스 컨테이너의 뒤쪽에서부터 배치한다는 속성입니다
font-weight : 일반적으로 사용되는 폰트 굵기라고 생각하시면 됩니다.

포기하지 말고 근성!
#리액트 #리엑트 #react #웹사이트만들기

자바 스크립트 쇼핑몰 만들기 주제에 대한 자세한 내용은 여기를 참조하세요.

쇼핑몰 구축 js 기능 – velog

이번에는 쇼핑몰 만들기 프로젝트에서 HTML, CSS, JavaScript 만을 사용하여 사용자 화면 만들기에 대해 포스팅 하겠습니다. 그 중 제가 맡은 js기능 …

+ 자세한 내용은 여기를 클릭하십시오

Source: velog.io

Date Published: 5/29/2022

View: 2401

쇼핑몰 구축 HTML, CSS, JavaScript 화면 만들기! – 네이버 블로그

프론트엔드 개발 전부를 다루고 있어서, 리액트, 앵귤러 없이 순수 자바스크립트 만으로 제작한 거라서 실력 향상에 큰 도움이 되었습니다. 특히, 쇼핑몰 …

+ 여기를 클릭

Source: m.blog.naver.com

Date Published: 10/22/2022

View: 2132

[자바/mysql/javascript] 웹쇼핑몰 만들기-2.구현2(장바구니, 로그 …

[자바/mysql/javascript] 웹쇼핑몰 만들기-2.구현2(장바구니, 로그아웃, 관리자 페이지). 청량리 물냉면 2021. 7. 27. 12:07.

+ 여기에 더 보기

Source: florescene.tistory.com

Date Published: 8/9/2022

View: 7104

[html] 간단한 쇼핑몰 만들기 – 방명록편 – 겉바속촉 – Tistory

[html] 간단한 쇼핑몰 만들기 – 방명록편 ; “java” contentType=”text/html; charset=utf-8″ ; “utf-8″> Insert title here

[장바구니 보기]

<% if(cart.size() == 0) { %>

<% } else { int totalSum = 0, total = 0; DecimalFormat df = new DecimalFormat("₩#,##0"); for(int i = 0; i < cart.size(); i++) { CartDTO dto = cart.get(i); %>

<% total = dto.getPrice() * dto.getCnt(); %>

<% totalSum += total; } %>

<% }//if else %>

번호 과자이름 단가 주문 수량 가격
장바구니에 담긴 상품이 없습니다. 주문하기
<%=(i + 1) %> <%=dto.getName() %> <%=df.format(dto.getPrice()) %> <%=dto.getCnt() %> <%=df.format(total) %>
<%=df.format(totalSum) %>

---장바구니 기능 구현

<%@page import="UserController.CartDTO"%> <%@page import="java.util.ArrayList"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String price = request.getParameter("price"); ArrayList cart = null; Object obj = session.getAttribute("cart"); //세션 객체에서 cart 값을 가져온다. if(obj == null) { //세션 정보가 없으면 배열을 생성 : 최초 주문한 경우 cart = new ArrayList(); } else { //세션 정보가 있으면 강제로 캐스팅 : 추가 주문 cart = (ArrayList) obj; } int pos = -1; //등록된 제품이 없다 //장바구니 세션에 동일한 제품이 있을 경우 : 수량(cnt) 증가 for(int i = 0; i < cart.size(); i++) { CartDTO dto = cart.get(i); if(dto.getName().equals(name)) { pos = 1; dto.setCnt(dto.getCnt() + 1); break; } } //장바구니 세션에 등록된 제품이 없을 경우 : CartDTO 객체를 생성하여 배열에 등록(add()) if(pos == -1) { CartDTO dto = new CartDTO(); dto.setName(name); dto.setPrice(Integer.parseInt(price.replace(",", ""))); //1,500 ▶ 1500 : 쉼표 제거 후 정수형으로 랩핑 dto.setCnt(1); cart.add(dto); } //cart 세션 객체를 만들어 준다. session.setAttribute("cart", cart); %>

< CartClear.jsp > ---장바구니 모두 삭제 기능

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% session.getAttribute("cart"); session.removeAttribute("cart"); response.sendRedirect("../../UserMain.jsp"); %>

(구현 기능 시뮬레이션)

<장바구니 담기> 클릭시

클릭 시 팝업창 <장바구니 보기>클릭 시 장바구니에 담은 물건 목록

담고 싶은 물건을 모두 장바구니에 담은 다음 장바구니 보기 버튼을 클릭하면 고객이 담은 물건의 내역이 화면에 뜬다.

결제하기 버튼을 눌렀을 때의 실행 결과이다. 결제기능은 구현하지 않았다.

장바구니 비우기 버튼을 눌렀을 때이다.

장바구니에 담아둔 내역이 초기화되었다.

<쇼핑 계속하기>를 선택한 경우 초기 메인화면으로 돌아가 계속해서 쇼핑을 할 수 있다.

6. 고객 로그아웃

로그아웃 버튼을 누르면 세션이 종료되고 메인화면의 상단바는 다시 회원가입과 로그인 버튼을 보여준다.

< LogoutPro.jsp > ---로그아웃 기능

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% // 세션초기화 session.invalidate(); // "로그아웃됨" %>

7. 관리자

정해진 관리자의 아이디와 비밀번호로 로그인을 한다. 별도의 버튼 없이 로그인 버튼으로 로그인하면 시스템에서 아이디와 비밀번호, userType을 토대로 관리자와 일반 고객 로그인을 구분해준다.

< LoginPro.jsp > ---2. 로그인 화면 에 올려둔 로그인 구현 jsp 중 일부. 일반고객/관리자가 구분되어 있음.

try { ...생략 if (rs.next()) { // 아이디있음 if (pw.equals(rs.getString("PWD"))) { session.setAttribute("ID", id); if(admin.equals(rs.getString("UserType"))){ //관리자 response.sendRedirect("../../AdminMain.jsp"); } else if (iuser.equals(rs.getString("UserType"))) { //일반 고객 response.sendRedirect("../../UserMain.jsp"); } } else { %> <% } } else { // 아이디없음 %> ...생략 %>

메인 화면의 상단바에 회원관리 버튼과 상품등록 버튼이 생겼고, 장바구니 버튼이 사라지고 대신 상품정보 수정 기능 버튼이 생겼다.

아직 상품 정보 변경은 구현하지 못했다.

< AdminMain.jsp > ---관리자 메인

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="AdminTop.jsp" %> <% String[] img ={"ozing.jpeg", "banana.jpeg", "gaesoo.jpeg", "poka.jpeg", "eyejelly.jpeg", "whitehime.jpeg", "milkys.jpeg", "minit.jpg", "ggobuk.jpeg"}; String[] name = {"오징어집", "바나나킥", "헛개수", "포카칩", "눈알젤리", "화이트하임", "밀키스", "미닛메이드", "꼬북칩"}; String[] price = {"1,500", "1,500", "1,700", "1,300", "1,350", "1,400", "500", "1,000", "1,100"}; %> SnackMall

[오늘의 특가]

<% for(int i = 0; i < img.length; i++) { if(i % 3 == 0) { out.println(" "); } out.println("

"); if(i % 3 == 2) { out.println("

"); } } %>

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println("

"); out.println(""); out.println("
"); out.println("" + name[i] + ""); out.println("
"); out.println("₩" + price[i] + "원"); out.println("
"); //한 줄로 쓰기 //out.println(""); //두 줄로 쓰기, 닫는 큰 따옴표와 괄호 옆의 띄어쓰기 필수 out.println(""); out.println("

"); out.println("

< AdminTop.jsp > ---관리자용 헤더. 장바구니 버튼 삭제, 상품정보 수정 기능 버튼 추가

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

회원관리 페이지의 모습이다. 데이터 베이스에 저장된 고객 정보를 모두 열람하고 삭제 및 수정할 수 있다.

< AdminUserList.jsp > ---회원목록 보기(데이터베이스에서 목록을 가져옴)

<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver"); String DB_URL = "jdbc:mysql://localhost:3306/snackmall?characterEncoding=UTF-8&serverTimezone=UTC"; String DB_USER = "root"; String DB_PASSWORD= "23er"; Connection conn= null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); String query = "SELECT UserType, ID, PWD, UserName, Email, Contact, Address FROM login_db"; // DB에 전송할 쿼리문 생성 목록을 나타내기 위해 SELECT문을 사용했습니다. rs = stmt.executeQuery(query); %> 전체 회원 목록

<%-- 입력된 값을 추출한다. --%>

<% while(rs.next()) { if(rs.getString("UserType").equals("Admin")) continue; %>

<% } // end while %>

사용자 유형 아이디 비밀번호 이름 이메일 연락처 주소 비고
<%=rs.getString("UserType")%> <%=rs.getString("ID")%> <%=rs.getString("PWD") %> <%=rs.getString("UserName") %> <%=rs.getString("Email") %> <%=rs.getString("Contact") %> <%=rs.getString("Address")%> '"> '">

<% rs.close(); // ResultSet 종료 stmt.close(); // Statement 종료 conn.close(); // Connection 종료 } catch (SQLException e) { // 예외처리 out.println("err:"+e.toString()); } %>

#회원정보 삭제

‘김자바’라는 고객의 목록을 데이터베이스에서 삭제했다.

데이터 베이스에도 삭제내용이 잘 반영되었다.

< AdminUserDel.jsp > ---회원목록에서 해당 회원 삭제. 데이터베이스에서 회원 정보를 삭제

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*" %> <% request.setCharacterEncoding("UTF-8"); String id = request.getParameter("ID"); try { Class.forName("com.mysql.jdbc.Driver"); String DB_URL = "jdbc:mysql://localhost:3306/snackmall?characterEncoding=UTF-8&serverTimezone=UTC"; String userName="root"; String password="23er"; Connection con = DriverManager.getConnection(DB_URL, userName, password); String sql = "DELETE FROM login_db WHERE ID=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, id); pstmt.executeUpdate(); pstmt.close(); con.close(); } catch(ClassNotFoundException e) { out.println(e); } catch(SQLException e) { out.println(e); } response.sendRedirect("AdminUserList.jsp"); %>

#회원정보 수정

회원정보 수정 버튼을 누르면 기본적으로 고객이 입력해둔 고객정보가 보이고, 관리자가 이를 수정 가능하게 구현했다. Id는 메인 키 값이기 때문에 readonly를 이용해 수정할 수 없도록 하였다.

수정버튼을 누르면 바로 회원 목록으로 이동한다. 아쉽게도 수정항목이 반영되지 않은 모습이다. 해당 기능은 구현에 실패하였다.

< AdminModForm.jsp >

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*" %> <%@ page import = "java.sql.*" %> 회원수정 <% request.setCharacterEncoding("euc-kr"); //회원정보페이지에서 수정버튼 클릭시 보내진 id값 받기 request.setCharacterEncoding("euc-kr"); String id = request.getParameter("ID"); //객체참조변수 선언 Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; //DB 드라이버 로딩 Class.forName("com.mysql.jdbc.Driver"); //DB 연결, 객체생성 conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/snackmall?characterEncoding=UTF-8&serverTimezone=UTC", "root", "23er"); //쿼리문 준비 pstmt = conn.prepareStatement("SELECT ID,PWD,UserName,Email, Contact,Address FROM login_db WHERE ID=?"); pstmt.setString(1, id); //쿼리문 실행 rs = pstmt.executeQuery(); //결과값 사용 rs.next(); %>

회원정보수정

id readonly>
패스워드 변경 >
이 름 변 경 >
이 메 일 변 경 >
연 락 처 변 경 >
주 소 변 경 >

< AdminModPro.jsp >

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*" %> <% request.setCharacterEncoding("utf-8"); // id passwd name가져오기 String id = request.getParameter("ID"); String pwd = request.getParameter("PWD"); String username = request.getParameter("UserName"); String email = request.getParameter("Email"); String contact = request.getParameter("Contact"); String address = request.getParameter("Address"); //객체참조변수 선언 Connection conn = null; PreparedStatement pstmt = null; // 1단계 드라이버로더 Class.forName("com.mysql.jdbc.Driver"); // 2단계 디비연결 String DB_URL = "jdbc:mysql://localhost:3306/snackmall?characterEncoding=UTF-8&serverTimezone=UTC"; String DB_USER = "root"; String DB_PASSWORD= "23er"; conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); pstmt = conn.prepareStatement("UPDATE login_db SET PWD=?, UserName=?, Email=?, Contact=?, Address=? WHERE ID=?"); pstmt.setString(1, pwd); pstmt.setString(2, username); pstmt.setString(3, email); pstmt.setString(4, contact); pstmt.setString(5, address); pstmt.setString(6, id); int result = pstmt.executeUpdate(); System.out.println(result + "<-- result"); pstmt.close(); conn.close(); response.sendRedirect("AdminUserList.jsp"); %>

관리자가 로그아웃을 하면 초기 메인페이지로 돌아온다.

관리자가 로그아웃하고 난 후의 화면

참고자료

dao vs dto: https://velog.io/@ohzzi/Entity-DAO-DTO%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C

전체 소스링크

https://github.com/Yoonyesol/Snack-Mall.git

[html] 간단한 쇼핑몰 만들기 - 방명록편

728x90

반응형

우리가 계속 꾸미고있는 사이트에서요

이제 방명록을 추가로 꾸며보도록 할게요:)

여태까지 한 과정은 지난번 포스팅 참고해주세요~

2020/06/22 - [취업일기/HTML] - [html] 간단한 쇼핑몰 만들기

2020/06/23 - [취업일기/HTML] - [html] 간단한 쇼핑몰 만들기 - 수정, 삭제편

2020/06/23 - [취업일기/HTML] - [html] 간단한 쇼핑몰 만들기 -로그인 편

우선 다음과 같이 폴더 2개 생성한 후에

avata 폴더에는 이미지 8개 넣어주었구요

guest 폴더에는 jsp파일 3개 만들어주었어요

우리의 목표는

방명록이 로그아웃 상태에서는 안보이고 로그인 상태에서만 보이도록 할거에요

guestList.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> Insert title here <% String path=request.getContextPath(); //로그아웃 상태에서는 안보이고 로그인 상태에서만 보이도록 String loginok=(String)session.getAttribute("loginok"); %> <% if(loginok!=null) {%> <%} %> 방명록

테스트용으로 guestForm.jsp에는 입력폼을 적어두었습니다.

컴파일 해보시면

로그인 상태에서 방명록 클릭

로그아웃 상태에서 방명록 클릭

퀀텀창으로 가셔서

테이블 하나 작성해주세요:)

guestForm.jsp

<%@page import="member.model.MemberDAO"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> Insert title here <% //로그인상태에서 글쓰기가 보이려면 세션에서 id와 name을 읽어와야 한다 String path=request.getContextPath(); String id=(String)session.getAttribute("idok"); MemberDAO dao=new MemberDAO(); String name=dao.getName(id); %>

작성자: <%=name%>(<%=id %>)


컴파일 해보시면 다음과 같이

왼쪽에 있는 결과물이 나오는데요

노란색으로 칠해준 부분은 우리가 필요한데

보기 싫어서

hidden으로 type을 바꿔주시는 거쥬

그럼 오른쪽같이 나옵니다:)

이제 저 네모 아래쪽을 만들어볼게요

다음과 같이 행 추가해주세요

<% for(int i=1; i<=8; i++) {%> style="width: 30px;" name="avata"> <%} %>

이제 저 동그라미 밑에 그림들을 넣어줄거에요

그럼 같은 행이기 때문에 위의

에서 작성하셔야합니다

<% for(int i=1; i<=8; i++) {%> style="width: 45px;" name="avata"> <%} %>
<% for(int i=1; i<=8; i++) {%> <%} %>

그리고 컴파일 해보시면 다음과 같이 나와요:)

다음과 같이 패키지 하나 생성해주신 후에

DAO랑 DTO 클래스 하나씩 생성해주세요:)

GuestDTO.java

package guest.model; import java.sql.Timestamp; public class GuestDTO { private String num; private String name; private String id; private String content; private String avata; private Timestamp writeday; public String getNum() { return num; } public void setNum(String num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getAvata() { return avata; } public void setAvata(String avata) { this.avata = avata; } public Timestamp getWriteday() { return writeday; } public void setWriteday(Timestamp writeday) { this.writeday = writeday; } }

GuestDAO.java -->insert부분 작성

package guest.model; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import member.model.DbMain; public class GuestDAO { DbMain db=new DbMain(); //////////////////1.insert public void insertGuest(GuestDTO dto) { Connection conn=null; PreparedStatement pstmt=null; String sql="insert into guest values(seq_mini.nextval,?,?,?,?,sysdate)"; conn=db.getConnection(); try { pstmt=conn.prepareStatement(sql); pstmt.setString(1, dto.getName()); pstmt.setString(2, dto.getId()); pstmt.setString(3, dto.getContent()); pstmt.setString(4, dto.getAvata()); pstmt.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { pstmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

이제 메서드로 만든 부분을 처리하러 가야겠쥬?

guestAction.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> Insert title here <% String path=request.getContextPath(); request.setCharacterEncoding("utf-8"); %> <% //읽은 데이터를 db에 인서트 dao.insertGuest(dto); //list로 이동 response.sendRedirect(path+"/index.jsp?body=guest/guestList.jsp"); %>

그리고 컴파일 하신 후에

저는 다음과 같이 작성했어요:)

메모하기 클릭하신 후에 퀀텀 DB창으로 가셔서 확인해보시면

우리가 입력한 내용이 저장되어 있는 게 보이시쥬?

자 이제 DAO로 다시 가서 마저 작성해줄게요

왜냐면 출력해야하니깐요:)

Vector를 통해서 list 받아올게요

public Vector getGuestList() { Vectorlist=new Vector(); Connection conn=null; PreparedStatement pstmt=null; ResultSet rs=null; String sql="select * from guest order by num desc"; conn=db.getConnection(); try { pstmt=conn.prepareStatement(sql); rs=pstmt.executeQuery(); while(rs.next()) { GuestDTO dto=new GuestDTO(); dto.setNum(rs.getString("num")); dto.setName(rs.getString("name")); dto.setId(rs.getString("id")); dto.setContent(rs.getString("content")); dto.setAvata(rs.getString("avata")); dto.setWriteday(rs.getTimestamp("writeday")); list.add(dto); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { rs.close(); pstmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return list; }

현재 DAO전체 상태

package guest.model; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Vector; import member.model.DbMain; public class GuestDAO { DbMain db=new DbMain(); //////////////////1.insert public void insertGuest(GuestDTO dto) { Connection conn=null; PreparedStatement pstmt=null; String sql="insert into guest values(seq_mini.nextval,?,?,?,?,sysdate)"; conn=db.getConnection(); try { pstmt=conn.prepareStatement(sql); pstmt.setString(1, dto.getName()); pstmt.setString(2, dto.getId()); pstmt.setString(3, dto.getContent()); pstmt.setString(4, dto.getAvata()); pstmt.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { pstmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ////////////////전체출력 public Vector getGuestList() { Vectorlist=new Vector(); Connection conn=null; PreparedStatement pstmt=null; ResultSet rs=null; String sql="select * from guest order by num desc"; conn=db.getConnection(); try { pstmt=conn.prepareStatement(sql); rs=pstmt.executeQuery(); while(rs.next()) { GuestDTO dto=new GuestDTO(); dto.setNum(rs.getString("num")); dto.setName(rs.getString("name")); dto.setId(rs.getString("id")); dto.setContent(rs.getString("content")); dto.setAvata(rs.getString("avata")); dto.setWriteday(rs.getTimestamp("writeday")); list.add(dto); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { rs.close(); pstmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return list; } }

이제 guestList.jsp로 가보실게요

테스트용으로 써두었던 방명록은 지워주시고 코드 작성해볼까유

<%@page import="java.text.SimpleDateFormat"%> <%@page import="guest.model.GuestDTO"%> <%@page import="java.util.Vector"%> <%@page import="guest.model.GuestDAO"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> Insert title here <% //로그아웃상태에서는 안보이고 로그인상태에서만 보이도록 String loginok=(String)session.getAttribute("loginok"); %> <% if(loginok!=null) {%> <%} %>


<% String path=request.getContextPath(); GuestDAO dao=new GuestDAO(); Vectorlist=dao.getGuestList(); for(int i=0;i No.<%=i+1%>

작성자: <%=dto.getName() %>(<%=dto.getId() %>) <%=sdf.format(dto.getWriteday()) %>

<%=dto.getContent() %>

<%} %>

그리고 컴파일 해보시면 다음과 같이 나오는 게 보이네요?!

그렇다면 성공!^^!

재미있어서 한 명 더 넣어봤어요!!

퀀텀 DB창에도 잘 들어가있네요?!

728x90

반응형

자바스크립트 4주 완성 강좌 (쇼핑몰 UI 만들기)

모던 쇼핑몰 프론트엔드 개발로 배워보는 웹개발 4주 단기완성 강의! 강남역 5분거리에서 매주 일요일 10시부터, 4주간 진행됩니다! 더 자세한 내용보기 & 신청은 codingapple.com 난이도 & 대상 난이도 & 대상 - HTML/CSS 기초를 아는 분들 (HTML 기초 서적 50페이지 정도 훑고 오시면 됩니다.) - Javascript가 처음이거나 간단한 문법만 조금 아는 분들 의 레벨에 맞춰 진행됩니다. 권장 HTML 기초지식은 - HTML에 이미지와 링크 넣기 - 간단한 리스트 만들기 - 폼과 전송버튼 만들기 - CSS 파일로 스타일 넣기 - div를 이용한 간단한 PC 레이아웃만들기 - display, background, margin, font-size 등 기초 CSS 속성들 이 정도는 미리 학습하고 오는걸 추천드립니다. <커리큘럼> * 공식교재는 PPT/PDF 240여장으로 제공됩니다. [1~2주] 쇼핑몰 메인페이지와 상세페이지 제작 & 기능개발 [1~2주] 쇼핑몰 메인페이지와 상세페이지 제작 & 기능개발 - 요즘 웹개발 트렌드 (모바일 앱 개발시장이 죽어버린 이유) - Bootstrap4를 이용해 10분만에 쇼핑몰 메인페이지 만들기 - 자바스크립트 기초 핥기 프로젝트 - 로그인/ 회원가입 Modal 창 : 이벤트와 기초 셀렉터 - 로그인/ 회원가입 Modal 창2 : 모던 자바스크립트로 코드 refactoring - 상품 진열 및 데이터 다루기 기초 : Array와 Object의 용도, 그리고 간단한 데이터 바인딩 - HTML 요소 찾기와 배치 : vanilla JS 셀렉터와 name, id, data 몰래 심어놓는 법 - Bootstrap으로 상세페이지 15분만에 만들기 - 폼 기능 개발 : 데이터 형식 검사하기 (string validation) 와 if 조건문 - 코드 재사용 : 함수 등으로 비슷한 코드 재사용하기 - 이벤트를 이용한 코드양 줄이기 : Event Bubbling과 Event 객체를 이용해 고수처럼 이벤트 다루기 - 모달창 업그레이드 : 이벤트 객체를 이용해 배경을 눌러 모달창을 닫아보자 - jQuery 입문과 예제 : jQuery를 이용한 손쉬운 기능개발

[3~4주] 쇼핑카트 리스트, 결제 폼, Ajax, 애니메이션 등 [3~4주] 쇼핑카트 리스트, 결제 폼, Ajax, 애니메이션 등 - Bootstrap으로 장바구니 페이지 10분만에 만들기 - 중요한 Tab 기능 : 같은 코드 for 문으로 반복하기 - 장바구니 추가 버튼 만들기 : 서버말고 브라우저에 몰래 정보를 저장하기 (Cookie / local Storage) - 장바구니에 넣을 상품 데이터 구축 : Array와 Object 데이터 다루기 심화 - 장바구니 품목 바인딩 : 옛날 vs 최신 문법을 이용한 자료 iteration - 장바구니 스몰 UI : 버튼 및 계산기능 만들기 - 객체지향 프로젝트 (Overwatch 만들기) : 자바스크립트의 Class 와 객체, 그리고 prototype - 상품진열 심화 (메인페이지 업그레이드) : Ajax 통신을 이용해 상품목록 더 불러오기 - 메뉴 숨기기 애니메이션 : Scroll 이벤트와 css 애니메이션 이용하기 - 결제기능 : 외부 API를 이용해 Paypal 등 간단한 결제 모듈 붙여보기 (요청시) - Vue.js 프로젝트 : Vue.js 를 이용한 데이터 바인딩과 iteration 맛보기

<장점> 1. 문법학습만 진행되지않습니다. 첫날부터 바로 쇼핑몰부터 프로젝트 제작! 자바스크립트 문법은 프로젝트를 만들며 맞닥뜨릴 수 있는 실전 상황에서 배워보게 됩니다.

2. 코드 따라적기식 강의가 아닙니다. 프로그래밍 논리을 배워본 후 직접 코드를 작성해보는 시간을 많이 가져보게 됩니다.

3. 자바스크립트 책 읽어도 혼자 코드 못짜던 분들 많으시죠? 프로그래밍 하는 법을 안배우셨으니까 그렇죠! 코딩애플은 생각대로 코드를 작성할 수 있는 사람을 만드는게 목표!

<프로젝트 샘플> ▲ 만들어볼 페이지 3~4개 및 여러가지 쇼핑몰 필수기능이 포함되어있습니다. 기타 상세한 커리큘럼은 코딩애플 홈페이지에서 조회가능합니다 더 자세한 내용보기 & 신청은 codingapple.com

출처 : 고려대학교 고파스 2022-08-27 18:54:01:

[쇼핑몰 만들기 기초] 홈페이지 제작과정

홈페이지는 간단한 개인 홈페이지 부터 쇼핑몰까지 아주 다양하기에 홈페이지 제작과정을 일반화 하여 설명하기는 힘들지만 대략적인 과정은 아래와 같습니다.

1. HTML 파일 제작

홈페이지는 HTML파일들이 하이퍼링크로 서로 연결되어 구성됩니다. 2. 홈페이지에 사용되는 이미지 제작

텍스트로만 구성된 홈페이지가 너무 단조로운 경우 포토샵과 같은 이미지 편집 프로그램으로 로고나 메뉴 이미지 등을 만들어 홈페이지에 삽입합니다. 3. CSS와 자바스크립트(Javascript)

보다 세련된 홈페이지를 위해서는 홈페이지에 스타일을 입힐 수 있는 CSS가 필요하고, 보다 동적인 홈페이지를 만들기 위해서는 자바스크립트(Javascript)가 필요합니다. 4. PHP와 같은 웹프로그래밍

회원가입, 게시판, 로그인 처리, 폼 메일 등 홈페이지에서 다양한 프로그램이 필요한 경우에는 PHP를 익혀야 합니다. 그러나 PHP와 같은 웹 프로그램은 초보자가 익히기에는 상당히 어려운 부분입니다. 그래서 PHP를 익히기 힘든 경우 제로보드 등을 활용하여 웹프로그램을 제공합니다. 5. 웹서버의 공간 확보

완성된 홈페이지를 다른 사람들이 볼 수 있게 할려면 웹서비스가 가능한 서버에 내가 만든 홈페이지 파일을 올려야 합니다.

서버란 클라이언트의 요청에 대해 응답을 해주는 프로그램을 말하는데, 지금 여러분이 웹브라우저를 통해서 홈짱닷컴의 홈페이지를 보고 있습니다.

이를 클라이언트/서버 모델의 개념으로 설명하면 웹브라우저라는 클라이언트 프로그램을 이용해서 홈짱닷컴의 웹서버에 접속해서 페이지를 보여달라는 요청을 한것이라고 할 수 있습니다.

말이 좀 어렵다면, 클라이언트(웹브라우저)는 접속을 하는 프로그램이고, 서버는 접속을 당하는 프로그램이라고 이해하면 됩니다.

아무튼 모든 홈페이지는 웹서버에 올려져 있어야 합니다. 서버는 언제든지 클라이언트의 요청에 응답을 해야하기 때문에 24시간 켜져있어야 합니다.

그래서 개인이 웹서버를 직접 운영하기는 힘들고 보통 웹호스팅 회사에서 제공하는 웹서버를 임대해서 사용합니다.

이를 보통 계정이라고 표현하고(웹호스팅 서비스를 가입해서 계정을 받으니) 계정을 확보한다는 것은 웹서버의 일정 공간을 확보한다는 의미입니다.

무료 계정을 제공하는 곳이 있긴 하지만 여러가지 제약이 있고 사용하기가 불편합니다. 그리고 웹호스팅 업체들의 경쟁이 치열하기에 저가로(한달에 500원 정도로) 제공되는 곳도 많습니다. 홈페이지를 처음 만들때 이런 저가 호스팅을 신청하여 이용하는것이 좋습니다. 클라이언트/서버의 관계를 표시하는 그림입니다. 홈페이지 파일들이 서버에 위치하고 있어야 익명의 다수의 사람들이(클라이언트들이) 언제든지 접속할 수 있습니다. 6. FTP를 이용한 업로드

홈페이지 파일들이 만들어 졌고,웹서버의 공간까지 확보를 하였다면 FTP 프로그램을 이용해서 서버에 접속하여 홈페이지 파일들을 서버로 업로드 합니다.

위의 그림처럼 클라이언트/서버의 관계로 말하자면 FTP 프로그램 역시도 클라이언트에 해당합니다. 즉 FTP 클라이언트 프로그램을 이용해서 서버에 접속하여 홈페이지 파일을 전송하는거죠. 6. 도메인 신청

도메인은 홈페이지 주소를 의미합니다. 홈짱닷컴의 도메인은 cj-mart.com 이죠. 호스팅을 신청하면 호스팅 회사의 서브 도메인을 이용할 수도 있지만 자신만의 고유한 주소가 필요하다면 도메인을 신청합니다. 7. 확인

이제 인터넷 익스플로러를 열고 자신의 홈페이지에 접속해 봅니다. 세계 어느곳에서도 여러분이 만든 홈페이지를 확인할 수 있습니다.

도메인을 신청하였다면 신청한 도메인 주소로 확인이 가능하고, 호스팅 서비스만 신청하였다면 호스팅 서비스 회사에서 제공하는 기본 주소가 있습니다. 이를 이용하여 확인하면 됩니다. http://www.homejjang.com/01/homepage_step.php

[드림코딩 by 엘리] 바닐라JS로 쇼핑몰 미니게임 만들기

반응형

// Fetch the items from the JSON file function loadItems() { return fetch("data/data.json") .then((response) => response.json()) //json으로 변환 .then((json) => json.items); //json 안의 items를 return } // 받아온 아이템들로 리스트를 업데이트 function displayItems(items) { const container = document.querySelector(".items"); container.innerHTML = items.map((item) => createHTMLString(item)).join(""); //join -> 문자열의 배열을 하나의 문자열로 병합 } // 받아온 아이템들로 HTML 리스트 만들기 function createHTMLString(item) { return `

  • ${item.type} ${item.gender}, ${item.size}
  • `; } function onButtonClick(event, items) { const dataset = event.target.dataset; const key = dataset.key; const value = dataset.value; if (key == null || value == null) { //정보가 들어있지 않다면 함수를 끝냄 return; } const filtered = items.filter((item) => item[key] === value); displayItems(filtered); // 아이템이라는 오브젝트 안에 키에 해당하는 값이 value 와 똑같은 것들만 함수로 전달 } function setEventListeners(items) { const logo = document.querySelector(".logo"); const buttons = document.querySelector(".buttons"); //버튼들이 들어있는 컨테이너에 이벤트 리스너를 등록해 한곳에서만 핸들링 할 수 있게함 logo.addEventListener("click", () => displayItems(items)); buttons.addEventListener("click", (event) => onButtonClick(event, items)); } loadItems() //아이템을 적절히 받아와서 프로미스가 값을 성공적으로 //전달해주면 전달 받은 아이템들을 이용해 함수들을 실행. .then((items) => { displayItems(items); setEventListeners(items); }) .catch(console.log);

    짧지만 알찬 강의. json파일을 받아오는 법을 배웠는데 처음 다뤄보는거라 생소하기도 하고 아직 잘 개념이 확실하진 않다.

    유튜브에 올라와있는 영상도 보면서 따로 공부를 더 해야겠다.

    반응형

    웹 / 처음 제작해보는 나만의 웹 쇼핑몰 사이트 - HTML CSS JS / 자세한 설명

    위의 페이지는 현재까지 공부한 내용만을 바탕으로 제작해본

    나만의 쇼핑몰 사이트 주문 페이지이다.

    아직까지 공부한 부분이 미약하여

    홈페이지도 부실해보이지만.. 그래도 열심히 하고 있다.

    쇼핑몰 상단에는 내가 가장 구매하고자 하는 맥북 프로 사진을

    URL 주소만 가져와 넣었다.

    아래와 같은 제안서를

    제안자한테 받았다고 가정하고 웹을 제작해보았다.

    직접 제작한 이미지가 아니기에..

    워터마크는 어쩔 수가 없다.

    출처 : Spartacoding

    이미지로 되어 있어 보이지 않겠지만

    사진을 왼쪽 오른쪽으로 넘기는 화살표가 있다.

    화살표를 누르면 다른 사진으로 넘어간다.

    이 기능은 쇼핑몰을 가보면 쉽게 볼 수 있는 부분이다.

    옷이나 물품들의 다양한 각도의 사진들을 첨부하면 좋은 요소인 것 같다.

    요소의 이름은 (1)'Carousel Slide'

    캐러샐이라고 불리는데 뜻으로는 컨베이너 벨트라는 뜻이다.

    그리고 컨텐츠가 웹의 중간에 있는데

    이는 CSS의 margin : auto 를 활용하였다.

    눈치를 챈 분이 있겠지만 글씨체도 기존과는 다르다. 글씨체를 적용하지 않으면

    매우 딱딱해보이고 무난한 지금 블로그의 글씨체와 같다.

    딱딱해 보이는 것은 내 스타일이 아니라서 글씨체를 변경해주었다.

    여기서 사용한 것은 (2) 'Google fonts'

    구글폰트에서 폰트의 코드를 가져왔다.

    https://fonts.google.com/specimen/Do+Hyeon?subset=korean#standard-styles

    관련 코드는 번호를 매겨 아래로 몰아 놓겠다.

    그리고 보게 되면 Order 부분에

    주문자 이름과 수량, 주소, 전화번호를 쓸 수 있는 항목이 있다.

    수량을 쓸 수 있는 부분에는 아래와 같이

    수량을 선택할 수 있도록 하였다.

    이는 (3) 'Input Group' 을 활용했다.

    그리고 (4) 'button' 버튼 기능을 사용했는데

    여기에 소소한 JavaScript 내용도 활용을 해보았다.

    버튼을 누르면 '주문이 완료되었습니다'라는 알림창을 출력하는 것이다.

    버튼을 누르게 되면 아래와 같이 alert 창이 뜬다.

    그리고 버튼을 중간에 옮기기 위해

    버튼을 따로 div안에 넣고, css에서 div를

    display:block으로 변경하고 마진을 주었다..

    이게 맞는 방법인지는 좀 더 알아봐야겠다.

    ※느낀점※

    홈페이지만 봐서는 매우 단순해보이지만

    이것저것 많이 사용되는 것을 직접 느끼니

    아주 구식이고 단순해보이는 웹 페이지도 무시해서는

    안 된다는 것을 느꼈다.

    개발자들의 정성과 땀과.. 눈물(?)이 들어갔을 것이다.

    앞으로 더욱 퀄리티 있는 연습 결과를 보여줄 수 있도록

    노력할 것이다.

    그리고 자바스크립트를 작성할 때 중괄호 소괄호를 잘 보고

    C언어와 다르다는 것을 계속 인지하자.

    int와 let을 헷갈려하지 말자 !!!!!!

    ※코드 참고※

    (1)'Carousel Slide'

    (2) 'Google fonts'

    (3) 'Input Group'

    (4) 'button'

    국내유일 자바스크립트 단기완성 강좌! (with 쇼핑몰 프론트엔드 실습)

    다양한 모임을 만나보세요!

    앱 접근 권한 안내

    온오프믹스 앱에서 서비스 이용에 다음 접근 권한들을 사용하고 있습니다.

    선택적 접근 권한 카메라 개설한 모임의 QR코드 스캔을 통한 출석 확인 및 프로필 사진 촬영을 위해 접근 권한이 필요합니다. 사진 프로필 사진 변경을 위한 사진 첨부 시 접근 권한이 필요합니다. 저장소 문의내역 내 첨부파일 다운로드를 위해 접근 권한이 필요합니다.

    키워드에 대한 정보 자바 스크립트 쇼핑몰 만들기

    다음은 Bing에서 자바 스크립트 쇼핑몰 만들기 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

    이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

    사람들이 주제에 대해 자주 검색하는 키워드 [React 강의] 리액트(react)로 아마존 웹사이트 만들기

    • #리액트
    • #웹사이트만들기
    • #react
    • #파이어베이스
    • #firebase
    [React #강의] #리액트(react)로 # #아마존 #웹사이트 #만들기


    YouTube에서 자바 스크립트 쇼핑몰 만들기 주제의 다른 동영상 보기

    주제에 대한 기사를 시청해 주셔서 감사합니다 [React 강의] 리액트(react)로 아마존 웹사이트 만들기 | 자바 스크립트 쇼핑몰 만들기, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

    Leave a Comment