今から5分で,Tomcatを動かし,サーブレットやJSPも動かす。 その動作する仕組みも理解する。 サーバサイドJavaの入門の,一番最初の取っ掛かりとして利用できるページとして使ってほしい。 初学者に,独学を開始するための軌道に乗ってもらうことが目的。 環境: Windows7 x64 前提: JDKがインストール済みで,binにPATHが通っていること。 では,今から5分でTomcatを習得しよう。 (1)Tomcatのダウンロードと起動 インストール 起動と停止 セッション管理の様子を調べる (2)アプリを作成して動かす HTMLのみ URLを変える サーブレット JSP 仕組みを補足 注:Tomcatが起動できない時 この先 (1)Tomcatのダウンロードと起動 インストール コントロールパネル→システムとセキュリティ →システム→システムの詳細設定→環境変数 から,環境変数を登
次はFORM認証について確認します。FORM認証ではユーザー名とパスワードを入力してもらう画面をダイアログの替わりに自分で作成したHTMLページを指定することができます。 FORM認証の場合はHTTPプロトコルの認証の仕組みを使わずに認証が通った場合はセッションを使って認証が通っているかどうかを管理します。その為、一度成功した認証の有効期限はセッションの有効期限に従いますので注意が必要です。 web.xmlの設定 FORM認証を行う場合には認証方法の設定で<login-config>要素に含まれる<auth-method>要素に「FORM」を指定します。 <login-config> <auth-method>FORM</auth-method> <realm-name>レルム名</realm-name> <form-login-config> <form-login-page>/logi
目的 Java における SJIS と MS932 の相違点と、扱う際の注意点をまとめます。 SJIS/MS932 での値を 0xHHHH 形式で表記していますが、1バイト目が上位、2バイト目が下位、つまり big endian (network byte order)です。 いわゆるシフトJIS いわゆる「シフトJIS」には何種類もありますが、主なものは以下の2つだと思います。 SJIS (Shift_JIS) Microsoft が作成したシフトJIS符号化法を、JIS X 0208 に取り込んだもの。 扱える文字集合は当時のJIS漢字(JIS X 0201/0208)の範囲のみ MS932 (Windows-31J) Microsoftは、日本語用の文字セットをコードページ932として管理しており、MS-DOS時代には各OEMベンダーでコードページの独自拡張を許可していた。 しかしW
いつまでたってもエンジニアを悩ませる問題として「文字コード」があります。 その中でも質が悪いのが Microsoft ページコード 932 いわゆる Windows-31J だと思います。 Unicode がだいぶ普及したとは言え、まだまだ根深い問題です。 本稿では Shift_JIS と Windows-31J の違いについてまとめてみたいと思います。 とは言え筆者自身、Shift_JIS や Windows-31J などが誕生した当時にリアルタイムで歴史を見てきた人間ではありませんので、あくまで Wikipedia をベースに筆者なりにまとめたという点をご了承ください。 (誤りがあった場合にはご指摘頂ければ幸いです) Shift_JIS (CP932) の誕生 Shift_JISは、漢字を含む日本語を表現できる文字コードとして1982年に誕生しました。 Shift_JIS はマイクロソ
質問1: Webブラウザが文字コードを判定する基準は何ですか? 解答:HTTPのContent-Typeヘッダです まずは、Webにおける文字コードの扱いをおさらいしておこう。HTML 4.01仕様では、Webブラウザが以下の優先順位で文字コードを決定することを規定している。 HTTPにおけるContent-Typeヘッダのcharsetパラメータ HTML文書内のMETA宣言およびhttp-equiv属性で設定された、Content-Typeヘッダのcharsetパラメータ HTML文書内の各要素のcharset属性 Webサーバが送信するHTTPヘッダの中には、送信内容がどのような素性のコンテンツなのかをWebブラウザに教えるために、以下のようなContent-Typeヘッダを通じてコンテンツのメディアタイプ(下記例ではtext/html)を明示する。 これによりWebブラウザは、受信
はじめに Javaの基本的な構文について理解している前提です。 Eclipse (Pleiades) を使用している前提です。 開発環境のセットアップについては Eclipseの超基本的な使い方 - Qiita を参照してください。 まずは、ServletとJSPの動作について確認します。(当記事) その後、TODOアプリの開発を通してJSP&ServletによるWebアプリ開発の基本について解説しようと思います。(次回予定) プロジェクトの作成 パッケージ・エクスプローラー を右クリックし 新規 -> プロジェクト... を選択 Web -> 動的Webプロジェクト を選択して 次へ> をクリック プロジェクト名、ターゲット・ランタイムを入力して 完了 をクリック プロジェクト名: TodoServlet ターゲット・ランタイム: Tomcat8 (Java8) 1 2 3 HelloS
今回は、Servlet 3.0でサポートされた非同期処理について説明します。これは、後日投稿予定の「Spring MVC(+Spring Boot)上でのServlet標準の非同期処理を理解する」の前提となる基礎知識になります。私自身Servlet標準の非同期処理は使ったことはほぼないので、間違っている箇所があるかもしれません+細かい動作仕様の説明は本投稿では扱いません・・・ (あしからず ) 動作確認環境 Java SE 8 Tomcat 8.0 (Servlet 3.1) まずは普通のServletを作ってみる 非同期うんぬんの前に、まず普通のServletを作ってみましょう。 waitSecで指定した秒数だけ待ってから "/complete.jsp"に遷移するというシンプルなサーブレットです。 package com.example.component; import javax.s
リクエスト本文(リクエストボディ)を取得するメソッドって特に提供はされていないと思いつつ、Java8ならば少し簡単に記述できます。 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String result = request.getReader().lines().collect(Collectors.joining("\r\n")); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { BufferedReade
下記の質問を見つけたので、ちょっと調べてみた。 getReaderとgetParamater系って一回のリクエストで同時に使えないの? http://bwind.blog19.fc2.com/blog-entry-15.html TomcatのServlet API ServletRequest#getParameter()内には下記の記載がある。 http://mergedoc.sourceforge.jp/tomcat-servletapi-5-ja/javax/servlet/ServletRequest.html HTTP POST リクエストで送ったなど、パラメータのデータがリクエストのメッセージボディで送られた場合、 getInputStream() や getReader() メソッドを使って直接メッセージボディを読み込む操作は、 このメソッドの実行に影響を与えることがありま
個々のアクションとかの前処理段階で、HTTPリクエストに怪しいデータが入っていないかチェックするFilterを用意したりしていたんですが(・ω・) これがmultipartのPOST(ファイルアップロードのある画面)の時に対応していないっていうんで、multipartの時の処理(内部的にはcommons-uploadを使用)を追加してみたところ、今度はアクションにパラメータが渡らないという状況に(;´Д`) 理由は、multipartのリクエストを解析するために使用しているServletInputStream(の実装)が再利用を考慮していないため、Filter内でServletInputStreamを使用してしまうと、アクションにパラメータを設定する際にはServletInputStreamのポインタがEOFになっているためですた(・ω・) Tomcatの実装もWebLogicの実装も駄目
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
Spring BootのTomcatのバージョンを調べてみるの冒頭でも述べた通り、Spring BootではTomcatが組み込まれており、非常に手軽に開発ができます。 ただ、開発中はSTS + Spring Bootで組み込みTomcatを使って、本番環境や結合テスト環境には別でTomcat(とかJettyとかJBossとか)を立てて、そっちで稼働させたい、なんてケースもあるかと思います。 現に自分の今の現場はそんな構成になっています。 なので、今回はSTS + Spring BootでWARを作って別のTomcatにデプロイして動作させるまでの手順を書きたいと思います。 前提 環境はもろもろ揃っているものとします。 以下の公式を参照しています。 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#ho
nginxとTomcatを連携させるには? nginxのリバースプロキシ機能を使います。具体的には、nginxに以下の様な設定をします。(Tomcatの待機ポート8080の場合) server { .... location / { proxy_pass http://localhost:8080/; } .... } この設定ならなんの問題もないのですが、例えば以下の様な設定の場合 location /abc { proxy_pass http://localhost:8080/edf/; } Tomcatから発行されたCookieのpathが/edfとなるのですが、実際にアクセスしているアドレスはhttp://hoge.com/abcであるため、Cookieが送られず正しい処理ができません。そこで以下のようにします。(Cookieやセッション機能を使わないなら問題は無いです) loca
あちこちでそれなりに話題になっているけど、先日にCentOS 7がリリースされた。 CentOS 7にはifconfigコマンドが無いなど、結構アグレッシブにモリモリと変わっている部分も多いけど、その辺のレポートは色々あるのでわざわざ私は書かなくて良いだろう。 そこで、この記事ではCentOS 7のTomcatに絞って変更点をまとめておく。なお本記事では、以下のバージョンのCentOSで調査しました。 CentOS 6.5 (64bit) CentOS 7.0.1406 (64bit) 復習:CentOS 6でTomcat CentOS 7でのTomcatを見る前に、まずCentOS 6ではどうだったかをちょっとおさらいしておく。 CentOS 6の公式rpmのTomcatは長らくVer.6(Tomcat 6.0.24)で放置されており、Tomcat 7.xは提供されていない。何度かRed
こんにちは横部です。 JaCoCoはJavaの為のコードカバレッジ取得ライブラリです。 http://www.eclemma.org/jacoco/ このライブラリを使うと、 テストでどこのコードを通ったのか数値化されるため、 テスト漏れを防ぐことができます。 私が参画しているプロジェクトではJUnitによる単体テストはJenkinsで自動化されており、Gradleでビルドされています。 https://gradle.org/ その際はbuild.gradleにGradle JaCoCo Pluginを設定するだけで、 簡単にコードカバレッジの取得とカバレッジレポートの出力ができていました。 しかしこのプラグインはGradle実行中のみ有効である為、 UIを操作して行う手動テストだとGradle JaCoCo Pluginが使えません。 UIを操作して行う手動テストでコードカバレッジを取得
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く