目次
- EclipseでMavenプロジェクト作成
- MavenプロジェクトにTomcat(Java Servlet API)とSquareを登録
- 登録ページ作成(JSP作成)
- 内部処理を作成-1-(JSPとの通信)
- 内部処理を作成-2-(Squareとの通信)
EclipseでMavenプロジェクト作成
参考サイト[Eclipse/Tomcat] MavenのwebappプロジェクトでServlet+JSP
1. Eclipseのパッケージエクスプローラー内で右クリック
2. 新規からMaven プロジェクトをクリック
3.次へをクリック
- (未選択)シンプルなプロジェクトの作成(アーキタイプ選択のスキップ)
- (選択)デフォルト・ワークスペース・ロケーションの使用
- (未選択)ワーキング・スペースへプロジェクトを追加
- (未設定)拡張
4.maven-archetype-webappを選択して次へ
※フィルターにコピペするなら→「org.apache.maven.archetypes」
5.グループidとアーティファクトidを入力して完了をクリック
簡単に説明すると
- グループidは自分の所属するグループ
- アーティファクトidはプロジェクト名
と考えれば良い。グループidを何にすればいいかわからないなら「com.〇〇」←○はTwitterの@を飛ばしたIDを入れればいい
詳しく知りたい方へ↓
「Guide to naming conventions on groupId, artifactId, and version」
「EclipseでMavenプロジェクトを新規作成する(Java)」
6.自分が作成したMavenプロジェクトがあれば成功!
###7.JRE(Java Runtime Environment)のバージョンを1.7から11に変更(8でも可)
1.自分が作ったMavenプロジェクト内の**JRE システム・ライブラリー[JavaSE-1.7]**を右クリック
2.プロパティをクリック
3.実行環境の**JavaSE-1.7(java7)**をクリック
###8.欠けているフォルダーを復活!
1.自分が作ったMavenプロジェクト内のJRE システム・ライブラリー[JavaSE-11]を右クリック
2.ビルド・パスからビルド・パスの構成をクリック
3.ソースを選択(一番上の「ソース」「プロジェクト」「ライブラリー」「順序およびエクスポート」「モジュール依存関係」)
4.適応して閉じるを選択
#MavenプロジェクトにTomcat(Java Servlet API)を登録
参考サイト[Eclipse/Tomcat] MavenのwebappプロジェクトでServlet+JSP
###1.作成したMavenプロジェクト内のpom.xmlをダブルクリック
###2.最新のJava Servlet APIのxmlコードをコピー
https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api
↓記事作成時点(2020年04月26日)のxmlコード Ver:4.0.1
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
###3.挿入.....。
※記事作成時点では28行目()と29行目()の間に挿入
↓31行目から36行目に挿入されている
###4.最新のSquare SDKのxmlコードをコピー
https://search.maven.org/search?q=g:com.squareup%20AND%20a:square
↓記事作成時点(2020年04月26日)のxmlコード Ver:5.2.2.20200422
<dependency>
<groupId>com.squareup</groupId>
<artifactId>square</artifactId>
<version>5.2.2.20200422</version>
</dependency>
###5.挿入.....。
記事作成時点では36行目()と37行目()の間に挿入
↓37行目から41行目に挿入されている
#登録ページ作成(JSP作成)
おまたせしました!準備は終わりましたのでこれからプログラミングをします!
###1.作成したMavenプロジェクトの「src」→「main」→「webapp」→「WEB-INF」を右クリックして「新規」→「その他」をクリック
###3.ファイル名を入力して完了
私はMainServletにしました。
###4.名前(名字と名前)と送信ボタンを表示させます
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- ↓サイト名 -->
<title>square顧客登録ページ</title>
</head>
<body>
<!-- ↓送信先Java -->
<form action="./Main">
<p>名前</p>
<a>性</a>
<!-- ↓名字を入れるボックス -->
<input type="text" name="name1">
<a>名</a>
<!-- ↓名前を入れるボックス -->
<input type="text" name="name2">
<br>
<!-- ↓Jspに送信ボタン -->
<input type="submit" value="送信">
</form>
</body>
</html>
#内部処理を作成-1-(JSPとの通信)
###1.作成したMavenプロジェクトの「src/main/java」を右クリックして「新規」→「その他」をクリック
※src/main/javaがない場合→
###3.クラス名を入力して完了
実際の業務でこれやると怒られるんだけどね...。
###4.作成されればこうなります↓
阿波根に殺されないように注意しましょう。ヘッドショット注意
###5.まずはjavaからjspに転送されるプログラムを書きます
変更(追加)した場所↓
// JSPにforward(ファイルの場所指定)
String view = "/WEB-INF/MainServlet.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(view);
dispatcher.forward(request, response);
全部↓
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Main
*/
public class Main extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Main() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
// JSPにforward(ファイルの場所指定)
String view = "/WEB-INF/MainServlet.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(view);
dispatcher.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
###6.実行してみてJspに記載した内容が表示されればOK!
↓成功!
response.getWriter().append("Served at: ").append(request.getContextPath());
↑これをコメントアウトしよう!
###7.Jspで入力した文字をJavaで受け取ろう
説明:Jspの「id=name1」のテキストボックスの文字を「String name1」に入れる
//jspから受け取り
String name1 = request.getParameter("name1");//名前(性)
String name2 = request.getParameter("name2");//名前(名)
###7.nullだと実行しない用にする
説明:name1とname2がnullじゃなかったら実行
if (name1 != null || name2 != null) {
}
###8.空白だとエラーを出す
説明:name1とname2が空白じゃなかったら実行。空白だったらエラーを出す
if (!name1.equals("") && !name2.equals("")) {
}else{
System.out.println("性・名を入力してください");
}
###9.Square.javaに送るよ
説明:Square.javaに性と名を送る
//squareに送信
Square square = new Square();
square.main(name1, name2);
###10.ここまで記載した全部↓
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import square.SquareMain;
/**
* Servlet implementation class Main
*/
public class Main extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Main() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
//jspから受け取り
String name1 = request.getParameter("name1");//名前(性)
String name2 = request.getParameter("name2");//名前(名)
if (name1 != null || name2 != null) {
if (!name1.equals("") && !name2.equals("")) {
//squareに送信
Square square = new Square();
square.main(name1, name2);
System.out.println("完了:");
} else {
System.out.println("性・名を入力してください");
}
}
// JSPにforward(ファイルの場所指定)
String view = "/WEB-INF/MainServlet.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(view);
dispatcher.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
#内部処理を作成-2-(Squareとの通信)
参考にしたサイト「Java client library for the Square API」
###1.作成したMavenプロジェクトの「src/main/java」→「デフォルト・パッケージ」を右クリックして「新規」→「クラス」をクリック
###2.名前を入れて完了クリック
Eclipseにも注意受けます..。
###3.まずはアクセストークンを入力しましょう
↓テスト用
SquareClient client = new SquareClient.Builder()
.environment(Environment.SANDBOX)
.accessToken("YOUR_SANDBOX_ACCESS_TOKEN")
.build();
↓本番用
SquareClient client = new SquareClient.Builder()
.environment(Environment.PRODUCTION)
.accessToken("ACCESS TOKEN HERE")
.build();
###4.CustomersAPI
詳細:「Customers」
CustomersApi api = client.getCustomersApi();
###5.送信する形を作る
詳細:「Create Customer」
CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest.Builder()
.idempotencyKey("unique_idempotency_key")
.givenName(name1)//性
.familyName(name2)//名
.address(null)//今回は使用しない
.build();
###6.送信するぞ!
try {
CreateCustomerResponse response = api.createCustomer(createCustomerRequest);
} catch (ApiException e) {
List<Error> errors = e.getErrors();
int statusCode = e.getResponseCode();
HttpContext httpContext = e.getHttpContext();
// Your error handling code
System.err.println("APIを呼び出すときのApiExceptionエラー");
e.printStackTrace();
} catch (IOException e) {
// Your error handling code
System.err.println("API呼び出し時のIOExceptionエラー");
e.printStackTrace();
}
###7.Square.javaの全部
import java.io.IOException;
import java.util.List;
import com.squareup.square.Environment;
import com.squareup.square.SquareClient;
import com.squareup.square.api.CustomersApi;
import com.squareup.square.exceptions.ApiException;
import com.squareup.square.http.client.HttpContext;
import com.squareup.square.models.CreateCustomerRequest;
import com.squareup.square.models.CreateCustomerResponse;
import com.squareup.square.models.Error;
public class Square {
public void main(String name1, String name2) {
SquareClient client = new SquareClient.Builder()
.environment(Environment.PRODUCTION)
.accessToken("ACCESS TOKEN HERE")
.build();
CustomersApi api = client.getCustomersApi();
CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest.Builder()
.idempotencyKey("unique_idempotency_key")
.givenName(name1)//性
.familyName(name2)//名
.address(null)//今回は使用しない
.build();
try {
CreateCustomerResponse response = api.createCustomer(createCustomerRequest);
} catch (ApiException e) {
List<Error> errors = e.getErrors();
int statusCode = e.getResponseCode();
HttpContext httpContext = e.getHttpContext();
// Your error handling code
System.err.println("APIを呼び出すときのApiExceptionエラー");
e.printStackTrace();
} catch (IOException e) {
// Your error handling code
System.err.println("API呼び出し時のIOExceptionエラー");
e.printStackTrace();
}
}
}
#動画ので教える感覚で記事書くと見にくくなることがわかった。
次回から気をつけます
PS 挿入ってエロいよね