매료매료
2019. 8. 6. 19:06
주요내용 : 서블릿 포워드, 바인딩, ServletContext, ServletRequest, HttpSession, ServletConfig, 웹페이지 연결(쿠키, 세션), 서블릿의 Scope
@@@@ 0806 과제
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
function fn_validate(){
var frmLogin = document.frmLogin;
var cust_id = frmLogin.cust_id.value;
if(cust_id.length == 0 || cust_id == ""){
alert("고객번호는 필수입니다.");
} else {
frmLogin.method = "get";
frmLogin.action = "list";
frmLogin.submit();
}
}
</script>
<title>고객 주문 정보 조회</title>
</head>
<body>
<form name = "frmLogin" method = "get" action="customer" encType="UTF-8">
고객 주문번호 조회 : <input type = "text" name = "cust_id"><br>
<input type = "button" onClick="fn_validate()" value = "조회">
<input type = "reset" value = "다시 입력"/>
</form>
</body>
</html>
====================
package Week05.day0805;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class CustomerServlet
*/
@WebServlet("/customer")
public class CustomerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
CustomerDAO dao = new CustomerDAO();
String command = request.getParameter("command");
//주문조회 화면
if(command != null && command.equals("findOrder"))
{
String input_id = request.getParameter("order_num");
List list2 = dao.findOrder(input_id); // listMembers메소드로 회원정보를 조회
out.print("<html><body>");
out.print("<table border=1><tr align='center' bgcolor='lightgreen'>");
//2. 주문번호 제품명 항목수량 항목가격 (삭제)
// OI.order_num, OI.prod_id, OI.quantity, Oi.item_price 삭제
out.print("<td>주문번호</td><td>주문상품</td><td>주문수량</td><td>상품가격</td><td>삭제</td></tr>");
for(int i = 0; i<list2.size(); i++)
{
CustomerVO customerVO = (CustomerVO) list2.get(i);
String order_num = customerVO.getOrder_num();
String prod_name = customerVO.getProd_name();
String quantity = customerVO.getQuantity();
String item_price = customerVO.getItem_price();
String order_item = customerVO.getOrder_item();
out.print("<tr><td>" + order_num + "</td><td>" + prod_name +"</td><td>" + quantity + "</td><td>" + item_price + "</td><td>" + "<a href='/pro07/customer?command=delOrder&order_num=" + order_num + "&order_item=" + order_item + "'> 삭제 </a></td></tr>");
// 주문 조회화면에서 삭제후 재조회시, 오더넘버와 오더아이템 번호 둘다 받아서 다시 조회해야함.
}
out.print("</table></body></html>");
out.print("<a href ='/pro07/customer.html'>돌아가기</a>");
} else if (command !=null && command.equals("delCustomer")) // 3. 고객삭제 delCustomer
{
String input_id = request.getParameter("cust_id"); // id만 받아서 삭제
dao.delCustomer(input_id);
List list = dao.listMembers(input_id);
out.print("<html><body>");
out.print("<table border=1><tr align='center' bgcolor='lightgreen'>");
//1. 고객번호, 고객이름, 고객주소, (주문조회), (삭제)
// C.cust_id, C.cust_name, C.cust_address, OI.order_num, 삭제
out.print("<td>고객번호</td><td>고객성명</td><td>고객주소</td><td>주문상품번호</td><td>삭제</td></tr>");
for(int i = 0; i<list.size(); i++)
{
CustomerVO customerVO = (CustomerVO) list.get(i);
String cust_id = customerVO.getCust_id();
String cust_name = customerVO.getCust_name();
String cust_address = customerVO.getCust_address();
String order_num = customerVO.getOrder_num();
out.print("<tr><td>" + cust_id + "</td><td>" + cust_name +"</td><td>" + cust_address + "</td><td>" + "<a href='/pro07/customer?command=findOrder&order_num=" + order_num + "'> 주문조회 </a></td><td>" + "<a href='/pro07/customer?command=delCustomer&cust_id=" + cust_id + "'> 삭제 </a></td></tr>");
}
out.print("</table></body></html>");
out.print("<a href ='/pro07/customer.html'>돌아가기</a>");
} else if (command !=null && command.equals("delOrder")) // 4. 주문삭제 delOrder
{
// String input_id = request.getParameter("cust_id"); // input_id 는 처음 조회했던 고객번호 입력값
// 주문번호와 주문항목번호값을 파라미터로 받아서 삭제실행
String order_num = request.getParameter("order_num");
String order_item = request.getParameter("order_item");
dao.delOrder(order_num, order_item);
List list2 = dao.findOrder(order_num); // 삭제 후 남은 주문 리스트 조회위해 주문번호값을 다시 넣음.
out.print("<html><body>");
out.print("<table border=1><tr align='center' bgcolor='lightgreen'>");
//2. 주문번호 제품명 항목수량 항목가격 (삭제)
// OI.order_num, OI.prod_id, OI.quantity, Oi.item_price 삭제
out.print("<td>주문번호</td><td>주문상품</td><td>주문수량</td><td>상품가격</td><td>삭제</td></tr>");
for(int i = 0; i<list2.size(); i++)
{
CustomerVO customerVO = (CustomerVO) list2.get(i);
String order_num1 = customerVO.getOrder_num();
String prod_name = customerVO.getProd_name();
String quantity = customerVO.getQuantity();
String item_price = customerVO.getItem_price();
String order_item1 = customerVO.getOrder_item();
// 주문번호와 주문항복번호 값을 넣어서 다시 조회.(삭제 후 남은 리스트 조회위해)
out.print("<tr><td>" + order_num1 + "</td><td>" + prod_name +"</td><td>" + quantity + "</td><td>" + item_price + "</td><td>" + "<a href='/pro07/customer?command=delOrder&order_num=" + order_num1 + "&order_item=" + order_item1 + "'> 삭제 </a></td></tr>");
}
out.print("</table></body></html>");
out.print("<a href ='/pro07/customer.html'>돌아가기</a>");
}
}
}
===========================
package Week05.day0805;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class CusServlet
*/
@WebServlet("/list")
public class CusServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
CustomerDAO dao = new CustomerDAO();
String input_id = request.getParameter("cust_id");
List list = dao.listMembers(input_id); // listMembers메소드로 회원정보를 조회
out.print("<html><body>");
out.print("<table border=1><tr align='center' bgcolor='lightgreen'>");
//1. 고객번호, 고객이름, 고객주소, (주문조회), (삭제)
// C.cust_id, C.cust_name, C.cust_address, OI.order_num, 삭제
out.print("<td>고객번호</td><td>고객성명</td><td>고객주소</td><td>주문상품번호</td><td>삭제</td></tr>");
for(int i = 0; i<list.size(); i++)
{
CustomerVO customerVO = (CustomerVO) list.get(i);
String cust_id = customerVO.getCust_id();
String cust_name = customerVO.getCust_name();
String cust_address = customerVO.getCust_address();
String order_num = customerVO.getOrder_num();
out.print("<tr><td>" + cust_id + "</td><td>" + cust_name +"</td><td>" + cust_address + "</td><td>" + "<a href='/pro07/customer?command=findOrder&order_num=" + order_num + "'> 주문조회 </a></td><td>" + "<a href='/pro07/customer?command=delCustomer&cust_id=" + cust_id + "'> 삭제 </a></td></tr>");
}
out.print("</table></body></html>");
}
}
=======================
package Week05.day0805;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class CustomerDAO {
private Connection con;
private PreparedStatement pstmt; // 실무에선 PreparedStatement를 더 많이씀.
private DataSource dataFactory;
public CustomerDAO()
{
try
{
Context ctx = new InitialContext();
Context envContext = (Context)ctx.lookup("java:/comp/env");
dataFactory = (DataSource)envContext.lookup("jdbc/oracle");
} catch (Exception e)
{
e.printStackTrace();
}
}
public List listMembers(String input_id)
{
List list = new ArrayList();
try
{
con = dataFactory.getConnection();
String query = "SELECT C.cust_id, C.cust_name, C.cust_address, OI.order_num "
+ "FROM customers C, orders O, orderitems OI "
+ "WHERE OI.order_num = O.order_num "
+ "AND O.cust_id = C.cust_id "
+ "AND C.cust_id LIKE " + "'"+input_id+"%'";
System.out.println("preparedStatement : " + query);
pstmt = con.prepareStatement(query); // 파생된 SQL 재사용. preparedStatement 메소드에 sql문을 전달해 prepareStatement객체를 생성.
ResultSet rs = pstmt.executeQuery(); // sql문으로 회원 정보를 조회
while(rs.next())
{
// 조회한 레코드의 각 컬럼 값을 받아옴.
String cust_id = rs.getString("cust_id"); // " " 안에는 컬럼명이 와야함.!!!!!!!!!!!!!!
String cust_name =rs.getString("cust_name");
String cust_address = rs.getString("cust_address");
String order_num = rs.getString("order_num");
// 각 컬럼 값을 다시 MemberVO 객체의 속성에 설정.
CustomerVO vo = new CustomerVO();
vo.setCust_id(cust_id);
vo.setCust_name(cust_name);
vo.setCust_address(cust_address);
vo.setOrder_num(order_num);
list.add(vo); // 설정된 MemberVO 객체를 다시 ArrayList에 저장.
}
rs.close();
pstmt.close();
con.close();
} catch (Exception e)
{
e.printStackTrace();
}
return list; // 조회한 레코드의 개수만큼 MemberVO객체를 저장한 ArrayList를 반환.
}
public List findOrder(String input_id)
{
List list2 = new ArrayList();
try
{
// 2. 주문번호 제품명 항목수량 항목가격 (삭제)
// select OI.order_num, OI.prod_id, OI.quantity, Oi.item_price -- OI.order_num을 위에서 입력받는 값으로 연결?
// from orderitems OI;
con = dataFactory.getConnection();
// ★★★★★★ order_item 값이 조회화면에는 뜨진 않지만, 뒤에 주문조회 화면에서 삭제를 위해 값을 받아오기 위해, 쿼리문에 넣음
String query = " SELECT O.order_num, P.prod_name, OI.quantity, OI.item_price, OI.order_item "
+ " FROM orderitems OI, orders O, products P, customers C "
+ " WHERE OI.prod_id = P.prod_id "
+ " AND OI.order_num = O.order_num "
+ " AND O.cust_id = C.cust_id "
+ " AND OI.order_num = " + "'" + input_id + "'";
System.out.println("preparedStatement : " + query);
pstmt = con.prepareStatement(query); // 파생된 SQL 재사용. preparedStatement 메소드에 sql문을 전달해 prepareStatement객체를 생성.
ResultSet rs = pstmt.executeQuery(); // sql문으로 회원 정보를 조회
while(rs.next())
{
// 조회한 레코드의 각 컬럼 값을 받아옴.
String order_num = rs.getString("order_num"); // " " 안에는 컬럼명이 와야함.!!!!!!!!!!!!!!
String prod_name =rs.getString("prod_name");
String quantity = rs.getString("quantity");
String item_price = rs.getString("item_price");
String order_item = rs.getString("order_item");
// 각 컬럼 값을 다시 MemberVO 객체의 속성에 설정.
CustomerVO vo = new CustomerVO();
vo.setOrder_num(order_num);
vo.setProd_name(prod_name);
vo.setQuantity(quantity);
vo.setItem_price(item_price);
vo.setOrder_item(order_item);
System.out.println("실행로그확인 : " + order_item);
list2.add(vo); // 설정된 MemberVO 객체를 다시 ArrayList에 저장.
}
rs.close();
pstmt.close();
con.close();
} catch (Exception e)
{
e.printStackTrace();
}
return list2; // 조회한 레코드의 개수만큼 MemberVO객체를 저장한 ArrayList를 반환.
}
public void delCustomer(String input_id)
{
try
{
con = dataFactory.getConnection();
String query = "ALTER TABLE OrderItems DROP CONSTRAINT FK_OrderItems_Orders"
+ "ALTER TABLE OrderItems DROP CONSTRAINT FK_OrderItems_Products"
+ "ALTER TABLE Orders DROP CONSTRAINT FK_Orders_Customers"
+ "ALTER TABLE Products DROP CONSTRAINT FK_Products_Vendors "
+ "delete from customers" + " where cust_id=? ";
System.out.println("prespareStatement: " + query);
pstmt = con.prepareStatement(query);
pstmt.setString(1, input_id);
pstmt.executeUpdate();
pstmt.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
public void delOrder(String input_id, String order_item)
{
try
{
con = dataFactory.getConnection();
String query = "delete from Orderitems";
query += " where order_num = '" + input_id + "'";
query += " and order_item = '" + order_item + "'";
// ★★★★ 주문번호와 주문항목번호를 둘다 넣음(주문번호만 넣으면 모든 주문번호가 다 삭제되므로)
System.out.println("prespareStatement: " + query);
pstmt = con.prepareStatement(query);
// pstmt.setString(1, input_id);
// pstmt.setString(2, order_item);
pstmt.executeUpdate();
pstmt.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
========================
package Week05.day0805;
public class CustomerVO {
// 1. 고객번호, 고객이름, 고객주소, (주문조회), (삭제)
// 2. 주문번호 제품명 항목수량 항목가격 (삭제)
// C.cust_id, C.cust_name, C.cust_address, OI.order_num
// OI.order_num, OI.prod_id, OI.quantity, Oi.item_price
private String cust_id;
private String cust_name;
private String cust_address;
private String order_num;
private String prod_name;
private String quantity;
private String item_price;
private String order_item;
public CustomerVO() {System.out.println("CustomerVO 생성자 호출");}
public String getCust_id() {
return cust_id;
}
public void setCust_id(String cust_id) {
this.cust_id = cust_id;
}
public String getCust_name() {
return cust_name;
}
public void setCust_name(String cust_name) {
this.cust_name = cust_name;
}
public String getCust_address() {
return cust_address;
}
public void setCust_address(String cust_address) {
this.cust_address = cust_address;
}
public String getOrder_num() {
return order_num;
}
public void setOrder_num(String order_num) {
this.order_num = order_num;
}
public String getProd_name() {
return prod_name;
}
public void setProd_name(String prod_name) {
this.prod_name = prod_name;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String quantity) {
this.quantity = quantity;
}
public String getItem_price() {
return item_price;
}
public void setItem_price(String item_price) {
this.item_price = item_price;
}
public String getOrder_item() {
return order_item;
}
public void setOrder_item(String order_item) {
this.order_item = order_item;
}
}
=========================================
@@@@ 0806진도
package sec01.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class FirstServlet
*/
@WebServlet("/first")
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
request.setAttribute("name", "홍길동");
response.sendRedirect("second?name=홍길동&age=30");
System.out.println("Redirect후 호출");
}
}
------------------
package sec01.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SecondServlet
*/
@WebServlet("/second")
public class SecondServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String name = (String) request.getAttribute("name");
String age = (String) request.getAttribute("age");
System.out.println("name : " + name);
out.println("<html><body>");
out.println("sendRedirect를 이용한 redirect 실습입니다.");
out.println("</body></html>");
}
}
-----------------------
package sec03.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class FirstServlet
*/
@WebServlet("/first2")
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setAttribute("address", "서울시 성북구");
RequestDispatcher dispatch = request.getRequestDispatcher("second2");
dispatch.forward(request, response);
}
}
---------------------------
package sec03.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SecondServlet
*/
@WebServlet("/second2")
public class SecondServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String address = (String)request.getAttribute("address");
out.println("<html><body>");
out.println("주소 : " + address);
out.println("<br>");
out.println("dispatch를 이용한 forward 실습입니다.");
out.println("</body></html>");
}
}
---------------------------------
package sec04.ex03;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ViewServlet
*/
@WebServlet("/viewMembers")
public class ViewServlet extends HttpServlet { // forward로 화면에 뿌려주는 Servlet
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//바인딩해서 넘어온 request에서 회원정보를 가져온다.
List memberslist = (List) request.getAttribute("membersList");
out.print("<html><body>");
out.print("<table border=1><tr align='center' bgcolor='lightgreen'>");
out.print("<td>아이디</td><td>비밀번호</td><td>이름</td><td>이메일</td><td>가입일</td><td>삭제</td></tr>");
for(int i = 0; i<memberslist.size(); i++)
{
MemberVO memberVO = (MemberVO) memberslist.get(i);
String id = memberVO.getId();
String pwd = memberVO.getPwd();
String name = memberVO.getName();
String email = memberVO.getEmail();
Date joinDate = memberVO.getJoinDate();
out.print("<tr><td>" + id + "</td><td>" + pwd +"</td><td>" + name + "</td><td>" + email + "</td><td>" + joinDate + "</td><td>" + "<a href='/pro07/member3?command=delMember&id=" + id + "'> 삭제 </a></td></tr>");
}
out.print("</table></body></html>");
out.print("<a href='/pro07/memberForm.html'>새 회원 등록하기</a");
}
}
------------------------------
package sec04.ex03;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MemberServlet
*/
@WebServlet("/member")
public class MemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
protected void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
MemberDAO dao = new MemberDAO();
PrintWriter out = response.getWriter();
List membersList = dao.listMembers();
request.setAttribute("membersList", membersList); // 조회된 회원 정보를 ArrayList 객체에 저장한 후 request에 바인딩함.
RequestDispatcher dispatch = request.getRequestDispatcher("viewMembers");
dispatch.forward(request, response);
// 바인딩한 request를 viewMembers 서블릿으로 포워딩함.
}
}
--------------------------
package sec05.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class GetServletContext
*/
@WebServlet("/cget")
public class GetServletContext extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext();
List member = (ArrayList)context.getAttribute("member");
String name = (String)member.get(0);
int age = (Integer)member.get(1);
out.print("<html><body>");
out.print(name + "<br>");
out.print(age + "<br>");
out.print("</html></body>");
}
}
------------------------------------
package sec05.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SetServletContext
*/
@WebServlet("/cset")
public class SetServletContext extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext();
List member = new ArrayList();
member.add("이순신");
member.add(30);
context.setAttribute("member", member);
out.print("<html><body>");
out.print("이순신과 30 설정");
out.print("</html></body>");
}
}
------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<context-param>
<param-name>menu_member</param-name>
<param-value>회원등록 회원조회 회원수정</param-value>
</context-param>
<context-param>
<param-name>menu_order</param-name>
<param-value>주문조회 주문등록 주문수정 주문취소</param-value>
</context-param>
<context-param>
<param-name>menu_goods</param-name>
<param-value>상품조회 상품등록 상품수정 상품삭제</param-value>
</context-param>
<display-name>pro08</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
--------------------------------
package sec05.ex02;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ContextParamServlet
*/
@WebServlet("/initmenu")
public class ContextParamServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext();
String menu_member = context.getInitParameter("menu_member");
String menu_order = context.getInitParameter("menu_order");
String menu_goods = context.getInitParameter("menu_goods");
out.print("<html><body>");
out.print("<table border=1 cellspacing=0><tr>메뉴 이름</tr>");
out.print("<tr><td>" + menu_member + "</td></tr>");
out.print("<tr><td>" + menu_order + "</td></tr>");
out.print("<tr><td>" + menu_goods + "</td></tr>");
out.print("</tr></table></html></body>");
}
}
-------------------------
package sec06.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class InitParamServlet // 애너테이션을 이용한 서블릿 설정
*/
@WebServlet(
urlPatterns = {
"/sInit",
"/sInit2"
},
initParams = {
@WebInitParam(name = "email", value = "admin@jweb.com"),
@WebInitParam(name = "tel", value = "010-1111-2222")
})
public class InitParamServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String email = getInitParameter("email");
String tel = getInitParameter("tel");
out.print("<html><body>");
out.print("<table><tr>");
out.print("<td>email: </td><td>" + email + "</td></tr>");
out.print("<tr><td>휴대전화 : </td><td>" + tel + "</td>");
out.print("</tr></table></html></body>");
}
}
---------------------------------
package sec01.ex02;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoginServlet5
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see Servlet#init(ServletConfig)
*/
public void init() throws ServletException {
System.out.println("init 메소드 호출");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destroy 메소드 호출");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
String user_address = request.getParameter("user_address");
String user_email = request.getParameter("user_email");
String user_hp = request.getParameter("user_hp");
String data = "안녕하세요!<br>로그인하셨습니다.<br><br>";
data+= "<html><body>";
data+= "아이디 : " + user_id;
data+= "<br>";
data+= "패스워드 : " + user_pw;
data+= "<br>";
data+= "주소 : " + user_address;
data+= "<br>";
data+= "email : " + user_email;
data+= "<br>";
data+= "휴대전화 : " + user_hp;
out.print(data); // 브라우저로 쏨
user_address = URLEncoder.encode(user_address, "utf-8");
out.print("<a href='/pro09/second?user_id="+user_id+"&user_pw="+user_pw+"&user_address="+user_address+"'>두번째 서블릿으로 보내기</a>");
data+= "</body></html>";
}
}
-----------------------------
package sec01.ex02;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoginServlet5
*/
@WebServlet("/second")
public class SecondServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see Servlet#init(ServletConfig)
*/
public void init() throws ServletException {
System.out.println("init 메소드 호출");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destroy 메소드 호출");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
String user_address = request.getParameter("user_address");
out.print("<html><body>"); // 브라우저로 쏨
if(user_id!=null && user_id.length()!=0) {
out.println("이미 로그인 상태입니다!<br><br>");
out.println("첫 번째 서블릿에서 넘겨준 아이디: " + user_id + "<br>");
out.println("첫 번째 서블릿에서 넘겨준 비밀번호: " + user_pw + "<br>");
out.println("첫 번째 서블릿에서 넘겨준 주소: " + user_address + "<br>");
out.println("</html></body>");
} else {
out.println("로그인 하지 않았습니다.<br><br>");
out.println("다시 로그인하세요!<br>");
out.println("<a href='/pro09/login.html'>로그인 창으로 이동하기</>");
}
}
}
-----------------------------
package sec02.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SetCookieValue
*/
@WebServlet("/set")
public class SetCookieValue extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
Date d = new Date();
Cookie c = new Cookie("cookieTest", URLEncoder.encode("JSP프로그래밍입니다.", "utf-8"));
c.setMaxAge(24*60*60); // 일, 시, 분 (유효기간 설정)
response.addCookie(c); // 생성된 쿠리를 브라우저로 전송.
out.println("현재 시간 : " + d);
out.println("현재 시간을 Cookie로 저장합니다.");
}
}
----------------------------
package sec02.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class GetCookieValue
*/
@WebServlet("/get")
public class GetCookieValue extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//request의 getCookie 메소드를 호출해 브라우저에게 쿠키 정보를 요청한 후 쿠키 정보를 배열로 가져옴.
Cookie[] allValues = request.getCookies();
for(int i = 0; i<allValues.length; i++) {
if(allValues[i].getName().equals("cookieTest")) {
out.println("<h2>Cookie 값 가져오기 : " + URLDecoder.decode(allValues[i].getValue(), "utf-8"));
}
}
}
}