728x90
반응형
■ 소스파일
□ test package
* HelloServlet.java
package test;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import memo.MemoDAO;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter();
pw.println("Hello, Servlet!");
pw.close();
}
}
□ test package
* MemoDTO.java
package memo;
public class MemoDTO {
private String id;
private String email;
private String memo;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
}
* MemoDAO.java
package memo;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class MemoDAO {
Connection con;
PreparedStatement ps;
ResultSet rs;
String url, user, pass;
public MemoDAO() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
url = "jdbc:oracle:thin:@localhost:1521:xe";
user = "web01";
pass = "web01";
}
public int insertMemo(MemoDTO dto) {
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "insert into memo values(?, ?, ?)";
ps = con.prepareStatement(sql);
ps.setString(1, dto.getId());
ps.setString(2, dto.getEmail());
ps.setString(3, dto.getMemo());
int res = ps.executeUpdate();
return res;
} catch(SQLException e){
System.out.println("insert 메소드 실행 중 오류 발생!");
e.printStackTrace();
}finally {
try {
if (ps != null) ps.close();
if (con != null) con.close();
} catch(SQLException e) {}
}
return 0;
}
public List<MemoDTO> listMemo(){
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "select * from memo";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
List<MemoDTO> list = new ArrayList<>();
while(rs.next()){
MemoDTO dto = new MemoDTO();
dto.setId(rs.getString("id"));
dto.setEmail(rs.getString("email"));
dto.setMemo(rs.getString("memo"));
list.add(dto);
}
return list;
} catch(SQLException e) {
System.out.println("list 메소드 실행 중 오류 발생!");
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (ps != null) ps.close();
if (con != null) con.close();
} catch(SQLException e) {}
}
return null;
}
}
* MemoInsertServlet.java
package memo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MemoInsertServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html; charset=UTF-8");
MemoDTO dto = new MemoDTO();
dto.setId(req.getParameter("id"));
dto.setEmail(req.getParameter("email"));
dto.setMemo(req.getParameter("memo"));
MemoDAO dao = new MemoDAO();
int res = dao.insertMemo(dto);
PrintWriter pw = resp.getWriter();
if(res > 0) {
pw.println("<script type='text/javascript'>");
pw.println("alert('메모 등록 성공! 메보 보기 페이지로 이동합니다.')");
pw.println("location.href='memolist.do'");
pw.println("</script>");
} else {
pw.println("<script type='text/javascript'>");
pw.println("alert('메모 등록 실패! 메보 등록 페이지로 이동합니다.')");
pw.println("location.href='memo.jsp'");
pw.println("</script>");
}
}
}
* MemoListServlet.java
package memo;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MemoListServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html; charset=UTF-8");
MemoDAO dao = new MemoDAO();
List<MemoDTO> list = dao.listMemo();
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<head><title>메모장</title></head>");
pw.println("<body><div align='center'>");
pw.println("<hr color='green' width='300'>");
pw.println("<h2>메 모 장 보 기</h2>");
pw.println("<hr color='green' width='300'>");
pw.println("<table border='1' width='500'>");
pw.println("<tr bgcolor='yellow'>");
pw.println("<th>아이디</th><th>이메일</th><th width='50%'>메모내용</th>");
pw.println("</tr>");
if (list == null || list.size() == 0) {
pw.println("<tr><td colspan='3'>등록된 게시글이 없습니다.</td></tr>");
}else {
for(MemoDTO dto : list) {
pw.println("<tr>");
pw.println("<td>" + dto.getId() + "</td>");
pw.println("<td>" + dto.getEmail() + "</td>");
pw.println("<td>" + dto.getMemo() + "</td>");
pw.println("</tr>");
}
}
pw.println("</div></body></html>");
}
}
■ view 관련 html, jsp
* memo.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
//폼에 입력된 내용이 아이디로 적당한지 여부...
function isID(obj){
var str=obj.value;
//널체크
if(str.length==0){//false, ""
alert("아이디를 입력하세요");
obj.focus();
return false;
}
str=str.toUpperCase();
//영문이 아닐 경우 체크
for(var i=0;i<str.length;i++){
if(!( ( 'A'<= str.charAt(i) &&str.charAt(i)<='Z' )||
('0' <=str.charAt(i)&&str.charAt(i)<='9') )){
alert("아이디는 영문, 숫자만 사용 가능해요");
obj.select();
return false;
}//if-----
}//for----
return true;
}
function isEmail(obj){
var str = obj.value;
if(str==""){
alert("이메일 주소를 입력해 주세요");
obj.focus();
return false;
}//if-------
var i=str.indexOf("@");
//골뱅이 찾아 없으면 -1을 반환, 있으면 해당 인덱스를 반환
if(i<0){
alert("이메일 형식에 맞지 않아요");
obj.select();
return false;
}//if-------
i=str.indexOf(".");
if(i<0){
alert("이메일 형식에 맞지 않아요");
obj.select();
return false;
}//if---------
return true;
}//isEmail()---------------
function check(){
if(!isID(f.id)){
return;
}
if(!isEmail(f.email)){
return;
}
document.f.submit();
}
</SCRIPT>
</HEAD>
<BODY onLoad="document.f.id.focus();">
<div style="margin-top:70px;"></div>
<form name="f" action="memo.do" method="POST" >
<div align="center">
<table width="600" border="0" cellpadding="7">
<tr align="center" bgcolor="#DEFEFD" height="50">
<td colspan="2" >
<font size="4" color="#0033CC" face="굴림체"><b>
♠메모 남기기♠
</b></font>
</td>
</tr>
<tr>
<td width="25%" align="center"><b>아이디</b></td>
<td>
<input type="text" size="40" name="id" maxlength="10">
</td>
</tr>
<tr>
<td width="25%" align="center"><b>이메일</b>
</td>
<td>
<input type="text" size="40" name="email">
</td>
</tr>
<tr>
<td width="25%" align="center"><b>메모</b>
</td>
<td>
<textarea name="memo" cols="50"></textarea>
</td>
</tr>
<tr bgcolor="#DEFEFD">
<td colspan="2" align="center">
<input type="button" value="전송" onclick="check();">
<input type="reset" value="취소">
</td>
</tr>
</table>
</div>
</form>
</BODY>
</HTML>
<!--
create table memo
(id varchar2(20),
email varchar2(100),
memo varchar2(4000));
-->
* memo.jsp (memo.html과 동일)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
//폼에 입력된 내용이 아이디로 적당한지 여부...
function isID(obj){
var str=obj.value;
//널체크
if(str.length==0){//false, ""
alert("아이디를 입력하세요");
obj.focus();
return false;
}
str=str.toUpperCase();
//영문이 아닐 경우 체크
for(var i=0;i<str.length;i++){
if(!( ( 'A'<= str.charAt(i) &&str.charAt(i)<='Z' )||
('0' <=str.charAt(i)&&str.charAt(i)<='9') )){
alert("아이디는 영문, 숫자만 사용 가능해요");
obj.select();
return false;
}//if-----
}//for----
return true;
}
function isEmail(obj){
var str = obj.value;
if(str==""){
alert("이메일 주소를 입력해 주세요");
obj.focus();
return false;
}//if-------
var i=str.indexOf("@");
//골뱅이 찾아 없으면 -1을 반환, 있으면 해당 인덱스를 반환
if(i<0){
alert("이메일 형식에 맞지 않아요");
obj.select();
return false;
}//if-------
i=str.indexOf(".");
if(i<0){
alert("이메일 형식에 맞지 않아요");
obj.select();
return false;
}//if---------
return true;
}//isEmail()---------------
function check(){
if(!isID(f.id)){
return;
}
if(!isEmail(f.email)){
return;
}
document.f.submit();
}
</SCRIPT>
</HEAD>
<BODY onLoad="document.f.id.focus();">
<div style="margin-top:70px;"></div>
<form name="f" action="memo.do" method="POST" >
<div align="center">
<table width="600" border="0" cellpadding="7">
<tr align="center" bgcolor="#DEFEFD" height="50">
<td colspan="2" >
<font size="4" color="#0033CC" face="굴림체"><b>
♠메모 남기기♠
</b></font>
</td>
</tr>
<tr>
<td width="25%" align="center"><b>아이디</b></td>
<td>
<input type="text" size="40" name="id" maxlength="10">
</td>
</tr>
<tr>
<td width="25%" align="center"><b>이메일</b>
</td>
<td>
<input type="text" size="40" name="email">
</td>
</tr>
<tr>
<td width="25%" align="center"><b>메모</b>
</td>
<td>
<textarea name="memo" cols="50"></textarea>
</td>
</tr>
<tr bgcolor="#DEFEFD">
<td colspan="2" align="center">
<input type="button" value="전송" onclick="check();">
<input type="reset" value="취소">
</td>
</tr>
</table>
</div>
</form>
</BODY>
</HTML>
* web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>test.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>memoInsert</servlet-name>
<servlet-class>memo.MemoInsertServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>memoInsert</servlet-name>
<url-pattern>/memo.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>memolist</servlet-name>
<servlet-class>memo.MemoListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>memolist</servlet-name>
<url-pattern>/memolist.do</url-pattern>
</servlet-mapping>
</web-app>
728x90
반응형
'IT&코딩 > 자바 프로젝트' 카테고리의 다른 글
자바 프로젝트 8일차 - MVC 1 (mvcStudent) (2) | 2023.02.01 |
---|---|
자바 프로젝트 7일차 - Servlet 2 (mvcTest) (0) | 2023.02.01 |
자바 프로젝트 5일차 - JSP 복습 3 (jspMember) (0) | 2023.01.24 |
자바 프로젝트 4일차 - JSP 복습 2 (jspBoard) (2) | 2023.01.22 |
자바 프로젝트 3일차 - JSP 복습 1 (2) | 2023.01.21 |