質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

0回答

1031閲覧

Angular:サーブレットからのレスポンスを受け取りたい

MISAGO

総合スコア12

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

1クリップ

投稿2019/07/25 09:52

###前提・実現したいこと
どうも、鶚です。
現在サーブレットからAngular(クライアント)へレスポンスを返すプログラムを作っています。サーブレットの持つJSONを読込み、それをクライアントに返したいです。

###発生している問題・エラーメッセージ
以下のTypeScriptプログラム中のget()内のerrorに入ってしまい、サーブレットで送信した文字列がクライアントに返ってきません。
サーブレットがレスポンスを返すとき、同じくget()内のdataにレスポンスが入ってくるものだという理解ですが、このプログラムで何が不足、あるいは誤っているのかが分かりません。ご回答よろしくお願いします。

###該当のソースコード

TypeScript

1 2@Injectable() 3export class ConfigService { 4 5 // コンストラクタ 6 constructor(private http: HttpClient) { 7 8 } 9 10 result: string; 11 12 // サーブレットURL 13 configUrl = 'http://localhost:8080/Servlet_/servlet'; 14 15 /* HTTP GET */ 16 get(req: string): string { 17 18 // データ送信 19 this.http.get(this.configUrl, { 20 responseType: 'text', 21 // params: new HttpParams().set('name', req), 22 }) 23 // 結果 24 .subscribe( 25 data => { 26 this.result = data; 27 }, 28 error => { 29 this.result = 'レスポンス受信不可'; 30 } 31 ); 32 33 return this.result; 34 } 35 36 /* HTTP POP */ 37 pop() { 38 39 } 40}

Java

1package java_servlet; 2 3import java.io.BufferedReader; 4import java.io.File; 5import java.io.FileReader; 6import java.io.IOException; 7import java.io.PrintWriter; 8 9import javax.servlet.ServletContextListener; 10import javax.servlet.ServletException; 11import javax.servlet.annotation.WebServlet; 12import javax.servlet.http.HttpServlet; 13import javax.servlet.http.HttpServletRequest; 14import javax.servlet.http.HttpServletResponse; 15 16@WebServlet("/servlet") 17public class servlet extends HttpServlet implements ServletContextListener { 18 19 private static final long serialVersionUID = 1L; 20 21 public servlet() { 22 super(); 23 } 24 25 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 26 27// // リクエスト取得確認用 28// String val = request.getParameter("name"); 29// 30// // リクエストが無い場合処理終了 31// if (val==null) { 32// return; 33// } 34 35 // Angular URL 36 String url = "http://localhost:4200"; 37 // jsonフルパス 38 String jsonPath = "C:\pleiades_20181224\workspace\Servlet_\WebContent\data.json"; 39 // json読込 40 String json = readJson(jsonPath); 41 42 // 送信先URL 43 response.setHeader("Location", url); 44 45 // レスポンス 46 PrintWriter out = response.getWriter(); 47 out.println(json); 48 out.close(); 49 50 } 51 52 // json読込 53 @SuppressWarnings("resource") 54 private static String readJson(String filename) { 55 56 try { 57 58 BufferedReader reader = new BufferedReader(new FileReader(new File(filename))); 59 String line = null; 60 StringBuilder builder = new StringBuilder(); 61 while ((line = reader.readLine()) != null) { 62 builder.append(line); 63 } 64 65 return builder.toString(); 66 67 } catch (IOException e) { 68 e.printStackTrace(); 69 } 70 return null; 71 } 72 73}

###補足情報(言語/FW/ツール等のバージョンなど)
サーブレット:Java
クライアント:Angular7 & TypeScript
サーバ:Tomcat 9

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teikoku-penguin

2019/07/25 11:18

レスポンスのステータスコードくらいは貼りましょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問