フレサーモン難民

備忘録など ほぼ自分向けのまとめ

備忘録:些細な事いろいろ

こういうときはこうすりゃいいなやつを書いてく。
これからもなんかあったら随時追加予定。

◆キーボード入力が挿入モードでなく上書きモードになった
→キーボードのInsertボタンを押せばOK
InsertボタンがBackSpaceの上なので間違って押しちゃう

途中 JSP

JSP(Java Server Pages)は、サーブレットと同じくサーバーサイドプログラムの技術。サーブレットと同じく、ブラウザからのリクエストを受け取り、HTMLを出力してレスポンスとしてブラウザに返す。JSPはHTMLにJavaのコードを埋め込む形に書ける。サーブレットと比べて、HTMLの出力がラクな上、HTMLとJavaのコードを分離して書けるのでわかりやすい。

例:

<%@ page language="java contentType="text/html; charset=UTF-8">
<%@ page import="java.util.Date" %>
<%
Date date = new Date();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>日付</title>
</head>
<body>
今日の日付は<%= date %>です。
</body>
</html>

JSPファイル中の、HTML部分をテンプレートJavaのコード部分をスクリプトという。

JSPファイルを構成する要素

スクリプトレット

Javaのコードを記述する部分。変数の宣言、if文など。

<% Javaのコード %>

スクリプト式(または単に「式」)

変数やメソッドの戻り値などを出力させる。

<%= Javaのコード %> ※セミコロンは不要

JSPコメント

コメントを入れられる。

<%-- コメント --%>

pageディレクティブ

JSPファイルに関するさまざまな設定を行える。

<%@ page 属性名="値" %>

よく使われる属性はcontentType属性とimport属性。

contentType属性

HTMLを出力し、文字コードUTF-8の場合

<%@ page contentType="text/html; charset=UTF-8" %>

import属性

複数のクラスをimportする場合、カンマで区切って並べて書く。もしくはpageディレクティブを複数に分けて書く。

<%@ page import="java.util.Date,java.util.ArrayList" %>
または
<%@ page import ="java.util.Date" %>
<%@ page import ="java.util.ArrayList %>


参照:「スッキリわかるサーブレットJSP入門 第2版」

備忘録:サーブレット①

サーブレットクラスの書き方

サーブレットクラスの基本的な書き方は下のとおり。例としてサーブレットクラス:KonchiwaServletを作成。

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class KonchiwaServlet extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
}

サーブレットクラス作成の際には、守らないといけないルールがある。

①javax.servlet.http.HttpServletクラスを継承して作成すること

②HttpServletクラスのメソッド、doGetメソッドをオーバーライドすること
ブラウザからサーブレットクラスがリクエストされるとdoGetメソッドが実行される。doGetメソッドに引数として渡されるHttpServletRequestとHttpServletResponseはそれぞれブラウザからのリクエスト、ブラウザへのレスポンスに関係する情報と機能を持つインスタンス

サーブレット関係のクラスをimportする

サーブレットクラスを実行させる

ブラウザでサーブレットクラスのURLを指定してリクエストするとサーブレットクラスが実行できる。URLは以下の形式。

http://サーバ名/アプリケーション名/URLパターン

例:http: // localhost:8080/sample/SampleServlet

この時URLにはURLパターンというものを指定する必要がある。URLパターンはサーブレットクラスの中で設定する必要があり、サーブレットクラス名と同じものでもいいし、別の名前を設定もできる。

URLパターン設定の仕方

URLパターンは”@WebServletアノテーション”というもので設定する。またその際、javax.servlet.annotation.WebServletをimportしてやる必要がある。

@WebServlet("/URLパターン")

import javax.servlet.annotation WebServlet;

@WebServlet("/konchiwa")
public class KonchiwaServlet extends HttpServlet {
 ...
}

HTMLを出力させる

HTMLへの出力は、ブラウザへのレスポンスを表すHttpServletResponseインスタンスを通じて行う。

protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("...");
out.println("</html>");


参照:「スッキリわかるサーブレットJSP入門 第2版」

エラー解決:

「スッキリわかるサーブレット&JSP」で学習中、サーブレットクラスを作成する段(3.3のところ)になってエラーが発生して詰まる。

 

エラーの内容は、アノテーションを利用するための javax.servlet.annotation.WebServletパッケージをimportしようとしてもそのパッケージは見つからないというもの。

 

「javax.servlet.annotation.WebServlet 見つからない」で検索したところ出てきた下の記事のとおりにしてみたら解決できました。ありがとうございます。

 

http://starscream.hatenablog.com/entry/20170308/1488974878