| Index ソフト・ハード Java | Sample |
BusinessLogic
・EmployeeDAOを使った業務処理
package sample;
import java.sql.SQLException;
import java.util.List;
public class BusinessLogic {
public static void main(String[] args) {
EmployeeDAO dao = new EmployeeDAO();
try {
Employee employee = new Employee();
employee.setCode("社員no");
employee.setName("名前");
employee.setAge(30);
employee.setSection("所属");
int count = dao.insert(employee);
System.out.println(count + "件のデータを登録しました。");
System.out.println("*** すべての従業員情報を表示 ***");
List<Employee> employeeList = dao.selectAll();
for (Employee tempEmp : employeeList) {
String code = tempEmp.getCode();
String name = tempEmp.getName();
int age = tempEmp.getAge();
String section = tempEmp.getSection();
System.out.print(code + "\t| ");
System.out.print(name + "\t| ");
System.out.print(age + "\t| ");
System.out.print(section + "\n");
}
} catch (SQLException e) {
System.out.println("処理結果:異常が発生しました。");
e.printStackTrace();
}
}
}
ConnectionManager
package sample;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionManager {
private final static String URL = "jdbc:mysql://localhost:3306/sampledb?useSSL=false";
private final static String USER = "userU";
private final static String PASSWORD = "userP";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
Employee ・m_employeeのDTO
package sample;
public class Employee {
private String code;
private String name;
private int age;
private String section;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSection() {
return section;
}
public void setSection(String section) {
this.section = section;
}
}
EmployeeDAO ・m_employeeテーブルのDAO
package sample;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class EmployeeDAO {
public int insert(Employee employee) throws SQLException {
int count = 0;
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pstmt
= con.prepareStatement("INSERT INTO m_employee VALUES(?, ?, ?, ?)")) {
String code = employee.getCode();
String name = employee.getName();
int age = employee.getAge();
String section = employee.getSection();
pstmt.setString(1, code);
pstmt.setString(2, name);
pstmt.setInt(3, age);
pstmt.setString(4, section);
count = pstmt.executeUpdate();
}
return count;
}
public List<Employee> selectAll() throws SQLException {
List<Employee> employeeList = new ArrayList<Employee>();
try (Connection con = ConnectionManager.getConnection();
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("SELECT * FROM m_employee")) {
while (res.next()) {
String code = res.getString("code");
String name = res.getString("name");
int age = res.getInt("age");
String section = res.getString("section");
Employee employee = new Employee();
employee.setCode(code);
employee.setName(name);
employee.setAge(age);
employee.setSection(section);
employeeList.add(employee);
}
}
return employeeList;
}
public String getName(String code) throws SQLException {
String name = null; //氏名
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pstmt
= con.prepareStatement("SELECT name FROM m_employee WHERE code = ?")) {
pstmt.setString(1, code);
ResultSet res = pstmt.executeQuery();
if (res.next()) {
name = res.getString("name");
}
}
return name;
}
public List<String> selectName(String section) throws SQLException {
List<String> nameList = new ArrayList<String>();
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pstmt
= con.prepareStatement("SELECT name FROM m_employee WHERE section = ?")) {
pstmt.setString(1, section);// プレースホルダへの値の設定
ResultSet res = pstmt.executeQuery();
while (res.next()) {
nameList.add(res.getString("name"));
}
}
return nameList;
}
public int delete(String code) throws SQLException {
int count = 0; //処理件数
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pstmt
= con.prepareStatement("DELETE FROM m_employee WHERE code = ?")) {
pstmt.setString(1, code);
count = pstmt.executeUpdate();
}
return count;
}
}
SampleServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/sample")
public class SampleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public SampleServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
apply-form.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>依頼フォーム</title>
</head>
<body>
<form action="apply" method="POST">
お名前:<input type="text" name="name">
ApplyFormServlet.java
package servlet;
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;
@WebServlet("/apply")
public class ApplyFormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ApplyFormServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
// リクエストパラメータの取得
String name = request.getParameter("name");
String contact = request.getParameter("contact");
String[] apply = request.getParameterValues("apply");
// レスポンスのコンテンツタイプおよびエンコーディング方式を指定
response.setContentType("text/html; charset=UTF-8");
// レスポンス書き出し用オブジェクトの取得
PrintWriter pw = response.getWriter();
// レスポンスの書き出し
pw.println("<!DOCTYPE html><html>");
pw.println("<head><title>依頼受付完了</title></head>");
pw.println("<body>");
pw.println("依頼を受け付けました<br/>");
pw.println("名前:" + name + "<br/>");
pw.println("連絡方法:" + contact + "<br/>");
pw.print("依頼内容:");
for (String str : apply) {
pw.print(str + " ");
}
pw.println();
pw.println("</body></html>");
}
}
ApplyFormServlet.java(変更後)
package servlet;
import java.io.IOException;
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;
@WebServlet("/apply")
public class ApplyFormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ApplyFormServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 転送先のパスを指定して転送処理用オブジェクトを取得
RequestDispatcher rd = request.getRequestDispatcher("forward");
// リクエストの転送
rd.forward(request, response);
}
}
ForwardingServlet.java
package servlet;
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;
@WebServlet("/apply")
public class ApplyFormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ApplyFormServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
// リクエストパラメータの取得
String name = request.getParameter("name");
String contact = request.getParameter("contact");
String[] apply = request.getParameterValues("apply");
// レスポンスのコンテンツタイプおよびエンコーディング方式を指定
response.setContentType("text/html; charset=UTF-8");
// レスポンス書き出し用オブジェクトの取得
PrintWriter pw = response.getWriter();
// レスポンスの書き出し
pw.println("<!DOCTYPE html><html>");
pw.println("<head><title>依頼受付完了</title></head>");
pw.println("<body>");
pw.println("依頼を受け付けました<br/>");
pw.println("名前:" + name + "<br/>");
pw.println("連絡方法:" + contact + "<br/>");
pw.print("依頼内容:");
for (String str : apply) {
pw.print(str + " ");
}
pw.println();
pw.println("</body></html>");
}
}
ApplyFormServlet.java(変更後2)
package servlet;
import java.io.IOException;
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;
@WebServlet("/apply")
public class ApplyFormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ApplyFormServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// リクエストスコープへの属性の設定
request.setAttribute("message", "またのご利用をお待ちしております");
// 転送先のパスを指定して転送処理用オブジェクトを取得
RequestDispatcher rd = request.getRequestDispatcher("forward");
// リクエストの転送
rd.forward(request, response);
}
}
ForwardingServlet.java(変更後)
package servlet;
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;
@WebServlet("/forward")
public class ForwardingServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ForwardingServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// リクエストのエンコーディング方式を指定
request.setCharacterEncoding("UTF-8");
// リクエストパラメータの取得
String name = request.getParameter("name");
String contact = request.getParameter("contact");
String[] apply = request.getParameterValues("apply");
// リクエストスコープからの属性値の取得
String message = (String) request.getAttribute("message");
// レスポンスのコンテンツタイプおよびエンコーディング方式を指定
response.setContentType("text/html; charset=UTF-8");
// レスポンス書き出し用オブジェクトの取得
PrintWriter pw = response.getWriter();
// レスポンスの書き出し
pw.println("<!--ForwardingServletによる書き出し-->");
pw.println("<!DOCTYPE html><html>");
pw.println("<head><title>依頼受付完了</title></head>");
pw.println("<body>");
pw.println("依頼を受け付けました<br>");
pw.println("名前:" + name + "<br/>");
pw.println("連絡方法:" + contact + "<br/>");
pw.print("依頼内容:");
for (String str : apply) {
pw.print(str + " ");
}
pw.println("<br>");
pw.println(message);
pw.println("</body></html>");
}
}
login-form.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ログインフォーム</title>
</head>
<body>
<form action="login" method="POST">
ユーザ名:<input type="text" name="name"><br>
パスワード:<input type="password" name="password"><br>
<input type="submit" value="ログイン"><input type="reset" value="取消">
</form>
</body>
</html>
login-failure.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ログイン失敗</title>
</head>
<body>
ログインに失敗しました。
<br>
<a href="login-form.html">ログインフォームに戻る</a>
</body>
</html>
LoginFormServlet.java
package servlet;
import java.io.IOException;
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;
import javax.servlet.http.HttpSession;
@WebServlet("/login")
public class LoginFormServlet extends HttpServlet {
public LoginFormServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// リクエストオブジェクトのエンコーディング方式の指定
request.setCharacterEncoding("UTF-8");
// リクエストパラメータの取得
String name = request.getParameter("name");
String password = request.getParameter("password");
String url; // 転送先
if ("pw".equals(password)) {
// セッションオブジェクトの取得
HttpSession session = request.getSession();
// セッションスコープへの属性の設定
session.setAttribute("name", name);
// 転送先の設定
url = "login-success";
} else {
// 転送先の設定
url = "login-failure.html";
}
// リクエストの転送
RequestDispatcher rd = request.getRequestDispatcher(url);
rd.forward(request, response);
}
}
LoginSuccessServlet.java
package servlet;
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;
import javax.servlet.http.HttpSession;
@WebServlet("/login-success")
public class LoginSuccessServlet extends HttpServlet {
public LoginSuccessServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// セッションオブジェクトの取得
HttpSession session = request.getSession();
// セッションスコープからの属性値の取得
String name = (String) session.getAttribute("name");
// レスポンスのコンテンツタイプおよびエンコーディング方式を指定
response.setContentType("text/html; charset=UTF-8");
// レスポンス書き出し用オブジェクトの取得
PrintWriter pw = response.getWriter();
// レスポンスの書き出し
pw.println("<!DOCTYPE html><html><head><title>ログイン成功</title></head>");
pw.println("<body>");
pw.println("ようこそ、" + name + "さん<br>ログインに成功しました。<br>");
pw.println("<form action=\"logout\" method=\"POST\">");
pw.println("<input type=\"submit\" value=\"ログアウト\">");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
}
}
LogoutServlet.java
package servlet;
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;
import javax.servlet.http.HttpSession;
@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
public LogoutServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// セッションオブジェクトの取得
HttpSession session = request.getSession();
// セッションスコープからの属性値の取得
String name = (String) session.getAttribute("name");
// セッションオブジェクトの無効化
session.invalidate();
// レスポンスのコンテンツタイプおよびエンコーディング方式を指定
response.setContentType("text/html; charset=UTF-8");
// レスポンス書き出し用オブジェクトの取得
PrintWriter pw = response.getWriter();
// レスポンスの書き出し
pw.println("<!DOCTYPE html><html><head><title>ログアウト</title></head>");
pw.println("<body>");
pw.println( name + "さん、お疲れ様でした。<br>");
pw.println("<a href=\"./login-form.html\">ログインフォームに戻る</a>");
pw.println("</body></html>");
}
}
EmployeeNameListServlet.java
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
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;
@WebServlet("/employee-name-list-servlet")
public class EmployeeNameListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmployeeNameListServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
final String URL = "jdbc:postgresql://localhost:5432/mydb";
// final String URL = "jdbc:mysql://localhost:3306/sampledb?useSSL=false";
final String USER = "userU";
final String PASSWORD = "userP";
try {
// JDBCドライバの読み込み
Class.forName("org.postgresql.Driver");
// Class.forName("com.mysql.jdbc.Driver");
List<String> nameList = null;
// データベースへの接続の取得、Statementの取得、SQLステートメントの実行
try (Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("SELECT name FROM m_employee")) {
nameList = new ArrayList<String>();
// 結果の操作
while (res.next()) {
nameList.add(res.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
// リクエストスコープへの属性の設定
request.setAttribute("nameList", nameList);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// リクエストの転送
RequestDispatcher rd = request.getRequestDispatcher("employee-name-list.jsp");
rd.forward(request, response);
}
}
EmployeeDAO.java
package dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class EmployeeDAO {
public List<String> selectAllName() throws SQLException, ClassNotFoundException {
List<String> nameList = new ArrayList<String>();
// データベースへの接続の取得、Statementの取得、SQLステートメントの実行
try (Connection con = ConnectionManager.getConnection();
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("SELECT name FROM m_employee")) {
// 結果の操作
while (res.next()) {
nameList.add(res.getString("name"));
}
}
return nameList;
}
}
EmployeeNameListServlet.java
package servlet;
import java.io.IOException;
import java.sql.SQLException;
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;
import dao.EmployeeDAO;
@WebServlet("/employee-name-list-servlet")
public class EmployeeNameListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmployeeNameListServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<String> nameList = null;
// DAOの生成
EmployeeDAO dao = new EmployeeDAO();
try {
// DAOの利用
nameList = dao.selectAllName();
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
// リクエストスコープへの属性の設定
request.setAttribute("nameList", nameList);
// リクエストの転送
RequestDispatcher rd = request.getRequestDispatcher("employee-name-list.jsp");
rd.forward(request, response);
}
}
|
| All Rights Reserved. Copyright (C) ITCL | |