<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="/serverweb/calc.do">
<input type="text" name="num1"/>
<select name="method">
<option value="+">+
<option value="-">-
<option value="*">*
<option value="/">/
</select>
<input type="text" name="num2"/>
<input type="submit" value="전송"/>
</form>
</body>
</html>
@WebServlet(name = "calc", urlPatterns = { "/calc.do" })
public class CalcServlet extends HttpServlet {
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();
//1. 클라이언트의 요청정보를 추출
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
String method = request.getParameter("method");
//2. 비지니스 메소드를 호출
Calc logic = new Calc();
int result = logic.calc(num1, num2, method);
//3. 클라이언트에 응답할 메시지를 생성
out.print("<h1>계산결과</h1>");
out.print("<hr/>");
out.print("<h3>num1의 "+num1+"과 num2의 "+num2+"를 "+method+" 연산한 결과는 "+result+"</h3>");
}
}
public class Calc {
public int calc(int num1,int num2,String opr) {
System.out.println("메소드호출");
int result =0;
switch(opr) {
case "+" :
result=num1+num2;
break;
case "-" :
result=num1-num2;
break;
case "*" :
result=num1*num2;
break;
case "/" :
if(num2==0) {
System.out.println("0으로 나눌 수 없습니다.");
}
result=num1/num2;
break;
}
return result;
}
}
public class DBUtil {
//드라이버로딩
//=> 클래스가 로딩될 때 한 번 실행된다.
static {
System.out.println("스태틱블럭");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//DB서버 접속하기
public static Connection getConnect() {
Connection con = null;
String url="jdbc:oracle:thin:@127.0.0.1:1521:xe";
String user="scott";
String password="tiger";
try {
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
//자원반납
public static void close(ResultSet rs, Statement stmt, Connection con) {
try {
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(con!=null)con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(Connection con) {
}
}
public interface MemberDAO {
void insert(String id,String pass,String name,String addr,String info) ;
int insert(MemberDTO user) ;
void update(String info,String addr,String id);
void update(MemberDTO updateUser);
int delete(String id) ;
List<MemberDTO> select();
MemberDTO login(String id,String pass) ;
List<MemberDTO> search(String column,String value);
MemberDTO findById(String id) ;
}
public class MemberDAOImpl implements MemberDAO{
@Override
public int insert(MemberDTO user) {
System.out.println("============================");
System.out.println(user);//user.toString()가 생략
String sql="insert into member values(?,?,?,?,sysdate,20000,?)";
Connection con = null;
PreparedStatement ptmt =null;
int result = 0;
try {
con = DBUtil.getConnect();
ptmt = con.prepareStatement(sql);
ptmt.setString(1, user.getId());
ptmt.setString(2, user.getPass());
ptmt.setString(3, user.getName());
ptmt.setString(4, user.getAddr());
ptmt.setString(5, user.getInfo());
result = ptmt.executeUpdate();
System.out.println(result+"개 행 삽입성공!!");
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(null, ptmt, con);
}
return result;
}
public int delete(String id) {
Connection con = null;
PreparedStatement ptmt =null;
StringBuffer sql=new StringBuffer();
sql.append("delete member ");
sql.append("where id=?");
int result =0;
try {
con = DBUtil.getConnect();
ptmt = con.prepareStatement(sql.toString());
ptmt.setString(1,id);
result = ptmt.executeUpdate();
System.out.println(result+"개 행 삭제성공!!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.close(null, ptmt, con);
}
return result;
}
public List<MemberDTO> select() {
Connection con = null;
PreparedStatement ptmt =null;
ResultSet rs = null;
String sql = "select * from member";
List<MemberDTO> userlist = new ArrayList<>();//레코드를 담을 자료구조
MemberDTO user = null;//조회한 레코드를 담을 객체
try {
con = DBUtil.getConnect();
ptmt = con.prepareStatement(sql);
rs = ptmt.executeQuery();
System.out.println(rs);
while(rs.next()) {
//레코드의 한 컬럼들을 이용해서 MemberDTO객체를 생성
user = new MemberDTO(rs.getString("id"), rs.getString("pass"),
rs.getString("name"), rs.getString(4), rs.getDate(5),
rs.getInt("point"), rs.getString(7));
userlist.add(user);
}
// System.out.println("ArrayList저장된 레코드 갯수:"+userlist.size());
// System.out.println(userlist);
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(rs, ptmt, con);
}
return userlist;
}
public class MemberDTO {
private String id;
private String pass;
private String name;
private String addr;
private Date regDate;
private int point;
private String info;
public MemberDTO() {
}
//select용
public MemberDTO(String id, String pass, String name, String addr, Date regDate, int point, String info) {
this(id, pass, name, addr, info);
this.regDate = regDate;
this.point = point;
}
//update용
public MemberDTO(String id, String addr, String info) {
super();
this.id = id;
this.addr = addr;
this.info = info;
}
//insert용
public MemberDTO(String id, String pass, String name, String addr, String info) {
super();
this.id = id;
this.pass = pass;
this.name = name;
this.addr = addr;
this.info = info;
}
@Override
public String toString() {
return "MemberDTO [id=" + id + ", pass=" + pass + ", name=" + name + ", addr=" + addr + ", regDate=" + regDate
+ ", point=" + point + ", info=" + info + "]";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public Date getRegDate() {
return regDate;
}
public void setRegDate(Date regDate) {
this.regDate = regDate;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
여기서부터 html과 서블릿
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<a href="/serverweb/member/list"><h1>회원목록보기</h1></a>
<form role="form" class="form-horizontal"
action="/serverweb/member/mvc/insert" method="POST"
name="myform">
<fieldset>
<div id="legend">
<legend>아래 양식을 작성해주세요.</legend>
</div>
<div class="form-group">
<!-- 부서코드 -->
<label class="control-label col-sm-2" for="orgcode">아이디</label>
<div class="col-sm-3">
<input type="text" id="id" name="id"
placeholder="아이디" class="form-control"
required>
</div>
</div>
<div class="form-group">
<!-- 패스워드-->
<label class="control-label col-sm-2" for="pass">패스워드</label>
<div class="col-sm-3">
<input type="text" id="pass" name="pass"
placeholder="패스워드" class="form-control" minlength="4" >
</div>
</div>
<div class="form-group">
<!-- 성명-->
<label class="control-label col-sm-2" for="orgname">성명</label>
<div class="col-sm-3">
<input type="text" id="orgname" name="name"
placeholder="성명" class="form-control" minlength="3" required>
</div>
</div>
<div class="form-group">
<!-- 주소-->
<label class="control-label col-sm-2" for="addr">주소</label>
<div class="col-sm-3">
<input type="text" id="addr" name="addr"
placeholder="주소"
class="form-control" minlength="4" required>
</div>
</div>
<div class="form-group">
<!-- 포인트-->
<label class="control-label col-sm-2" for="info">기타사항</label>
<div class="col-sm-3">
<input type="text" id="point" name="info"
placeholder="기타사항"
class="form-control" minlength="4" required>
</div>
</div>
<div class="form-group">
<!-- Button -->
<div class="col-sm-3 col-sm-offset-2">
<input type="submit" value="가입하기" class="btn btn-success"/>
</div>
</div>
</fieldset>
</form>
</div>
</body>
</html>
@WebServlet(name = "insert", urlPatterns = { "/member.insert" })
public class MemberInsertServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("서블릿 요청 성공");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//1.요청정보추출
String id = request.getParameter("id");
String pass = request.getParameter("pass");
String name = request.getParameter("name");
String addr = request.getParameter("addr");
String info = request.getParameter("info");
//2.비지니스메소드 호출
MemberDTO user = new MemberDTO(id, pass, name, addr, info);
MemberDAO member = new MemberDAOImpl();
int result = member.insert(user);//result은 삽입된 행의 수
System.out.println(result);
//3. 응답메시지 생성
if(result>=1) {
out.print("<h1>1명 회원가입 성공!!</h1>");
}else {
out.print("<h1>회원등록실패</h1>");
}
out.print("<h1>회원가입결과</h1>");
out.println("<hr/>");
out.println("<h3>아이디: " + id +"</h3>");
out.println("<h3>패스워드: " + pass + "</h3>");
out.println("<h3>성명: " + name + "</h3>");
out.println("<h3>주소: " + addr + "</h3>");
out.println("<h3>기타사항: " + info + "</h3>");
}
}
@WebServlet(name = "list", urlPatterns = { "/member/list" })
public class MemberListServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("서블릿 요청 성공");
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out =resp.getWriter();
MemberDAO dao = new MemberDAOImpl();
List<MemberDTO> userlist = dao.select();
out.print("<h1>회원목록</h1>");
out.print("<hr>");
out.print("<table border='1' width='600'>");
out.print("<tr bgcolor='pink'>");
out.print("<th>아이디</th><th>패스워드</th><th>성명</th><th>주소</th><th>가입날짜</th><th>포인트</th><th>정보</th><th>삭제</th>");
out.print("</tr>");
for(MemberDTO user:userlist) {
out.print("<tr>");
out.print("<td><a href='/serverweb/member/detail?id="+user.getId()+"'>"+user.getId()+"</td>");
out.print("<td>"+user.getPass()+"</td>");
out.print("<td>"+user.getName()+"</td>");
out.print("<td>"+user.getAddr()+"</td>");
out.print("<td>"+user.getRegDate()+"</td>");
out.print("<td>"+user.getPoint()+"</td>");
out.print("<td>"+user.getInfo()+"</td>");
out.print("<td><a href='/serverweb/member/delete?id="+user.getId()+"'>삭제</td>");
out.print("</tr>");
}
out.print("</table>");
}
}
@WebServlet(name = "delete", urlPatterns = { "/member/delete" })
public class MemberDeleteServlet extends HttpServlet {
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();
//1.요청정보추출
String id = request.getParameter("id");
//2. 비지니스 메소드 호출
MemberDAO dao = new MemberDAOImpl();
int result = dao.delete(id);
//3.응답메시지 생성
// if(result>=1) {
// out.print("<h1>"+result+"명의 회원 탈퇴</h1>");
// }else {
// out.print("<h1>회원탈퇴실패</h1>");
// }
//삭제 후 MemberListServlet이 다시 실행되도록 요청하기
response.sendRedirect("/serverweb/member/list");
}
}
@WebServlet(name = "detail", urlPatterns = { "/member/detail" })
public class MemberDetailSevlet extends HttpServlet {
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 id = request.getParameter("id");
MemberDAO dao = new MemberDAOImpl();
MemberDTO userdetail = dao.findById(id);
out.print("<h1>회원정보</h1>");
out.print("<hr/>");
out.print("<h3>아이디:"+userdetail.getId()+ "</h3>");
out.print("<h3>패스워드:"+userdetail.getPass()+ "</h3>");
out.print("<h3>성명:"+userdetail.getName()+ "</h3>");
out.print("<h3>주소:"+userdetail.getAddr()+ "</h3>");
out.print("<h3>가입날짜:"+userdetail.getRegDate()+ "</h3>");
out.print("<h3>포인트:"+userdetail.getPoint()+ "</h3>");
out.print("<h3>정보:"+userdetail.getInfo()+ "</h3>");
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<a href="/serverweb/dept/list"><h1>부서목록보기</h1></a>
<form role="form" class="form-horizontal"
action="/serverweb/dept/insert" method="POST"
name="myform">
<fieldset>
<div id="legend">
<legend>아래 양식을 작성해주세요.</legend>
</div>
<div class="form-group">
<!-- 부서코드 -->
<label class="control-label col-sm-2" for="orgcode">부서코드</label>
<div class="col-sm-3">
<input type="text" id="deptno" name="deptno"
placeholder="부서코드" class="form-control"
required>
</div>
</div>
<div class="form-group">
<!-- 부서명-->
<label class="control-label col-sm-2" for="pass">부서명</label>
<div class="col-sm-3">
<input type="text" id="deptname" name="deptname"
placeholder="부서명" class="form-control" >
</div>
</div>
<div class="form-group">
<!-- 전화번호-->
<label class="control-label col-sm-2" for="orgname">전화번호</label>
<div class="col-sm-3">
<input type="text" id="tel" name="tel"
placeholder="전화번호" class="form-control" required>
</div>
</div>
<div class="form-group">
<!-- 주소-->
<label class="control-label col-sm-2" for="addr">주소</label>
<div class="col-sm-3">
<input type="text" id="addr" name="addr"
placeholder="주소"
class="form-control" required>
</div>
</div>
<div class="form-group">
<!-- Button -->
<div class="col-sm-3 col-sm-offset-2">
<input type="submit" value="부서등록하기" class="btn btn-success"/>
</div>
</div>
</fieldset>
</form>
</div>
</body>
</html>
public class DBUtil {
//드라이버로딩
//=> 클래스가 로딩될 때 한 번 실행된다.
static {
System.out.println("스태틱블럭");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//DB서버 접속하기
public static Connection getConnect() {
Connection con = null;
String url="jdbc:oracle:thin:@127.0.0.1:1521:xe";
String user="scott";
String password="tiger";
try {
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
//자원반납
public static void close(ResultSet rs, Statement stmt, Connection con) {
try {
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(con!=null)con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(Connection con) {
}
}
public interface DeptDAO {
int insert(DeptDTO user) ;
int delete(String id) ;
List<DeptDTO> select();
}
public class DeptDAOImpl implements DeptDAO{
@Override
public int insert(DeptDTO user) {
String sql = "insert into mydept values(?,?,?,?)";
Connection con = null;
PreparedStatement ptmt =null;
int result = 0;
try {
con = DBUtil.getConnect();
ptmt = con.prepareStatement(sql);
ptmt.setString(1, user.getDeptcode());
ptmt.setString(2, user.getDeptname());
ptmt.setString(3, user.getTel());
ptmt.setString(4, user.getAddr());
result = ptmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(null, ptmt, con);
}
return result;
}
@Override
public int delete(String deptcode) {
Connection con = null;
PreparedStatement ptmt =null;
StringBuffer sql = new StringBuffer();
sql.append("delete mydept ");
sql.append("where deptcode=?");
int result =0;
try {
con = DBUtil.getConnect();
ptmt = con.prepareStatement(sql.toString());
ptmt.setString(1,deptcode);
result = ptmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(null, ptmt, con);
}
return result;
}
@Override
public List<DeptDTO> select() {
Connection con = null;
PreparedStatement ptmt =null;
ResultSet rs = null;
String sql = "select * from mydept";
List<DeptDTO> deptlist = new ArrayList<>();//레코드를 담을 자료구조
DeptDTO dept = null;//조회한 레코드를 담을 객체
try {
con = DBUtil.getConnect();
ptmt = con.prepareStatement(sql);
rs = ptmt.executeQuery();
System.out.println(rs);
while(rs.next()) {
dept = new DeptDTO(rs.getString("deptcode"), rs.getString("deptname"),
rs.getString("tel"), rs.getString("addr"));
deptlist.add(dept);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(rs, ptmt, con);
}
return deptlist;
}
}
public class DeptDTO {
private String deptcode;
private String deptname;
private String tel;
private String addr;
public DeptDTO() {
}
public DeptDTO(String deptcode, String deptname, String tel, String addr) {
super();
this.deptcode = deptcode;
this.deptname = deptname;
this.tel = tel;
this.addr = addr;
}
@Override
public String toString() {
return "DeptDTO [deptcode=" + deptcode + ", deptname=" + deptname + ", tel=" + tel + ", addr=" + addr + "]";
}
public String getDeptcode() {
return deptcode;
}
public void setDeptcode(String deptcode) {
this.deptcode = deptcode;
}
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
@WebServlet(name = "deptinsert", urlPatterns = { "/dept/insert" })
public class DeptInsertTest extends HttpServlet {
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();
//1.요청정보추출
String deptcode = request.getParameter("deptno");
String deptname = request.getParameter("deptname");
String tel = request.getParameter("tel");
String addr = request.getParameter("addr");
//2.비지니스메소드 호출
DeptDTO dept = new DeptDTO(deptcode,deptname,tel,addr);
DeptDAO dao = new DeptDAOImpl();
int result = dao.insert(dept);
//3. 응답메시지 생성
if(result>=1) {
out.print("<h1>부서 "+ result +"개 등록 성공</h1>");
}else {
out.print("<h1>부서등록실패</h1>");
}
out.print("<h1>부서등록결과</h1>");
out.println("<hr/>");
out.println("<h3>부서코드: " + deptcode +"</h3>");
out.println("<h3>부서이름: " + deptname + "</h3>");
out.println("<h3>전화번호: " + tel + "</h3>");
out.println("<h3>주소: " + addr + "</h3>");
}
}
@WebServlet(name = "deptlist", urlPatterns = { "/dept/list" })
public class DeptListServlet extends HttpServlet {
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();
DeptDAO dao = new DeptDAOImpl();
List<DeptDTO> deptlist = dao.select();
out.print("<h1>부서목록</h1>");
out.print("<hr>");
out.print("<table border='1' width='600'>");
out.print("<tr bgcolor='lime'>");
out.print("<th>부서번호</th><th>부서이름</th><th>전화번호</th><th>주소</th><th>삭제</th>");
out.print("</tr>");
for(DeptDTO dept:deptlist) {
out.print("<tr>");
out.print("<td>"+dept.getDeptcode()+"</td>");
out.print("<td>"+dept.getDeptname()+"</td>");
out.print("<td>"+dept.getTel()+"</td>");
out.print("<td>"+dept.getAddr()+"</td>");
out.print("<td><a href='/serverweb/dept/delete?deptcode="+dept.getDeptcode()+"'>삭제</td>");
out.print("</tr>");
}
out.print("</table>");
}
}
@WebServlet(name = "deptdel", urlPatterns = { "/dept/delete" })
public class DeptDeleteServlet extends HttpServlet {
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();
//1.요청정보추출
String deptcode = request.getParameter("deptcode");
//2. 비지니스 메소드 호출
DeptDAO dao = new DeptDAOImpl();
int result = dao.delete(deptcode);
response.sendRedirect("/serverweb/dept/list");
}
}



삭제버튼 누르면 해당 줄 삭제됨
@WebServlet(name = "mvcinsert", urlPatterns = { "/member/mvc/insert" })
public class MemberInsertServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("서블릿 요청 성공");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
System.out.println("--------------------------");
//1.요청정보추출
String id = request.getParameter("id");
String pass = request.getParameter("pass");
String name = request.getParameter("name");
String addr = request.getParameter("addr");
String info = request.getParameter("info");
//2.비지니스메소드 호출
MemberDTO user = new MemberDTO(id, pass, name, addr, info);
MemberDAO member = new MemberDAOImpl();
int result = member.insert(user);//result은 삽입된 행의 수
System.out.println(result);
//3. 응답페이지로 이동하기
response.sendRedirect("/serverweb/member.view/insertOK.html");
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<img alt="" src="/serverweb/images/c2.jpg" width="200"/>
<h2>차은우님 가입이 완료됐습니다!</h2>
</body>
</html>
C:\backend23\work\webwork.metadata.plugins\org.eclipse.wst.server.core\tmp0\logs
ip기록 로그에 찍힘
@WebServlet("/member")
public class MemberTestServlet extends HttpServlet{
String str;
protected void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
int number = 0;
str = req.getParameter("sendmessage");
res.setContentType("text/html; charset=UTF-8");
PrintWriter out = res.getWriter();
out.println("<html><head><title>MultiThread Test</title></head>");
out.println("<body><h2>처리 결과(멤버 변수)</h2>");
while (number++ < 10) {
String strnum = "[" + number + "]";
out.println("MultiThreadTest : " + str +" "+ strnum + "<br>");
out.flush();
System.out.println("MultiThreadTest : " + str +" "+ strnum + "<br>");
try {
Thread.sleep(1000);
} catch (Exception e) {
System.out.println(e);
}
}
out.println("<h2>Done " + str + " !!</h2>");
out.println("</body></html>");
out.close();
}
}
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/local")
public class LocalTestServlet extends HttpServlet{
protected void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{
String str = null;
int number = 0;
str = req.getParameter("sendmessage");
res.setContentType("text/html; charset=UTF-8");
PrintWriter out = res.getWriter();
out.println("<html><head><title>MultiThread Test</title></head>");
out.println("<body><h2>처리 결과(지역 변수)</h2>");
while (number++ < 10) {
String strnum = "[" + number + "]";
out.println("MultiThreadTest : " + str +" "+ strnum + "<br>");
out.flush();
System.out.println("MultiThreadTest : " + str +" "+ strnum + "<br>");
try {
Thread.sleep(1000);
} catch (Exception e) {
System.out.println(e);
}
}
out.println("<h2>Done " + str + " !!</h2>");
out.println("</body></html>");
out.close();
}
}
@WebServlet("/HeaderInfoServlet")
public class HeaderInfoServlet extends HttpServlet {
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out;
res.setContentType("text/html; charset=UTF-8");
out = res.getWriter ();
out.println("<html>");
out.println("<head><title>Request 정보 출력 Servlet</title></head>");
out.println("<body>");
out.println("<h3>요청 헤더 정보</h3>");
out.println("<pre>");
Enumeration em = req.getHeaderNames();
while (em.hasMoreElements()){
String s = (String)em.nextElement();
out.println(s +" : " + req.getHeader(s));
}
out.println("</pre>");
out.println("</body></html>");
}
}
@WebServlet("/NetInfoServlet")
public class NetInfoServlet extends HttpServlet {
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out;
res.setContentType("text/html; charset=UTF-8");
out = res.getWriter ();
out.println("<html>");
out.println("<head><title>Request 정보 출력 Servlet</title></head>");
out.println("<body>");
out.println("<h3>네트워크 관련 요청 정보</h3>");
out.println("<pre>");
out.println("Request Scheme : "+ req.getScheme());
out.println("Server Name : "+ req.getServerName());
out.println("Server Address : "+ req.getLocalAddr());
out.println("Server Port : "+ req.getServerPort());
out.println("Client Address : "+ req.getRemoteAddr());
out.println("Client Host : "+ req.getRemoteHost());
out.println("Client Port : "+ req.getRemotePort());
out.println("</pre>");
out.println("</body></html>");
}
}
@WebServlet("/URLInfoServlet")
public class URLInfoServlet extends HttpServlet {
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out;
res.setContentType("text/html; charset=UTF-8");
out = res.getWriter ();
out.println("<html>");
out.println("<head><title>Request 정보 출력 Servlet</title></head>");
out.println("<body>");
out.println("<h3>요청 방식과 프로토콜 정보</h3>");
out.println("<pre>");
out.println("Request URI : "+ req.getRequestURI());
out.println("Request URL : "+ req.getRequestURL());
out.println("Context Path : "+ req.getContextPath());
out.println("Request Protocol : "+ req.getProtocol());
out.println("Servlet Path : "+ req.getServletPath());
out.println("</pre>");
out.println("</body></html>");
}
}
본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.