==Google App Engine(Java)==
*https://cloud.google.com/appengine/docs/standard/java/building-app/environmenten[[vi]]ronment-setup?hl=JA
*[https://qiita.com/yosukesuzuki/items/a347f6e89d7624d6f977 個人的に最強のPaaSプラットフォームGoogle App Engineの良い所を挙げてみる]
======
*https://cloud.google.com/appengine/docs/standard/java/tools/uploadinganapp?hl=JA
====Mavenのダウンロードとインストール[[Maven]]のダウンロードとインストール====
*http://maven.apache.org/
====Mavenプロジェクト作成[[Maven]]プロジェクト作成====
*https://cloud.google.com/appengine/docs/standard/java/tools/using-maven?hl=JA
*appengine-skeleton-archetype を使用
*https://cloud.google.com/appengine/docs/standard/java/building-app/static-content?hl=JA
====静的ファイルの配置場所====
*webapp ディレクトリ内に置きます。フォルダも使用できますが、すべてのファイルパスと URI U[[R]]I は webapp ディレクトリからの相対パスになります
*静的ファイルの場所を選択したら、その場所を appengine-web.xml ファイル内の <static-files> 要素で定義する必要があります。
===フォームデータの処理===
*https://cloud.google.com/appengine/docs/standard/java/building-app/handling-form-data?hl=JA
====入力ページへのリンク入力ページへの[[リンク]]====
<a href='/jsp/form'>Form</a></td>
====入力ページJsp====
<head>
<meta charset="UTF-8">
<title>[[HTTP ]] Form</title>
</head>
<body>
</body>
</html>
====JSP用ディスパッチャー[[JSP]]用ディスパッチャー====*JSPをWEB[[JSP]]をWEB-INF配下においてリダイレクトする
@WebServlet(
name = "JspDispatcher",
)
public class JspDispatcher extends HttpServlet{
private static final String JSP_PATH_PATTERN [[JSP]]_PATH_PATTERN = "/WEB-INF%s.jsp";
@Override
protected void doGet(HttpServletRequest HttpServlet[[R]]equest req, HttpServletResponse HttpServlet[[R]]esponse resp) throws ServletException, IOException { req.getRequestDispatcherget[[R]]equestDispatcher( String.format(JSP_PATH_PATTERN[[JSP]]_PATH_PATTERN, req.getRequestURI())).forward(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest HttpServlet[[R]]equest req, HttpServletResponse HttpServlet[[R]]esponse resp) throws ServletException, IOException {
req.setAttribute("content", req.getParameter("save_content"));
req.getRequestDispatcherget[[R]]equestDispatcher("/WEB-INF/jsp/result.jsp").forward(req, resp);
}
}
====結果表示====
*[[JSP ]] の escapeXml 機能を使用して、クロスサイト スクリプティング(XSS)攻撃に対する対抗措置をとる
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
==[[Spring Boot]]==
*https://tosi-tech.net/2018/08/spring-boot-on-google-app-engine-standard/
*https://qiita.com/tora470/items/1695a8614551b7500c2a
[[http://typea.info/blg/glob/2019/04/google-app-engine-java-standard-spring-boot.html Google App Engine Java Standard 環境で手っ取り早くSpring Boot アプリケーションを開発する]] |
===Cloud Data Store===
*https://cloud.google.com/appengine/docs/standard/java/building-app/cloud-datastore?hl=JA