MENU

【Java】サーブレット&JSPでツイートアプリを作ってみた。

こんにちは。くまごろーです。
最近、今までの勉強のおさらいのためにJava(サーブレット)でWebアプリを作っていたのですが、一応形になったので公開しようと思います。
 
URLはこちらです↓

https://www.scratch-paper.work/ScratchPaper/


コードはこちら。↓
GitHub - kumaGoro95/ScratchPaper-testJavaApp


見た目はこんな感じ。


<PCサイズ>

f:id:kumaGoro_95:20201001204827p:plain
index

f:id:kumaGoro_95:20201001204854p:plain
main


<スマートフォンサイズ>

f:id:kumaGoro_95:20201001205239p:plain
index

f:id:kumaGoro_95:20201001205255p:plain
main


中身は典型的なツイートアプリです。正直なんの特徴もありません。
さらに、ビューの部分はほぼProgateのRailsコースのコピーみたいになってます・・・
HTML&CSSまで力を注ぐ余力はありませんでした(-"-)
 
 
1 環境
 
書くまでもないくらい簡単ですが、こんな感じです。
 
【使用言語(バック)】
 Java(サーブレット/JSP)
【使用言語(フロント)】
 HTML/CSS
【インフラ】
 さくらのVPS
【サーバー】
 Apache/Tomcat
【データベース】
 MySQL



2 機能
 
簡単に列挙するとこんな感じになります。

・ 会員登録機能
・ ログイン・ログアウト機能
・ ツイート投稿機能
・ ツイート・ユーザー削除機能

 
 
 
3 その他やってみたこと
 
また、今回のアプリ制作は今後のポートフォリオ制作も見据えたものにしたかったので、↑の基本機能に加えていくつかチャレンジしてみました。

 
(1)Javaアプリをデプロイするためにサーバー環境を構築する
(2)レスポンシブデザインを取り入れて、スマートフォンでも見やすくする
(3)MySQLVPSに導入する
(4)ログインの有無でヘッダーの項目等が変化する
(5)ゲストログインの機能をつける
(6)SSL証明書を取得してhttps接続にする

 
※ (1)について
今回は、さくらのVPSをレンタルして、VPS上にWebサーバー(Apache)、アプリケーションサーバー(Tomcat)の導入を行いました。実は私、実際にVPSを借りるまでどういうものなのかわかっておらず、サーバー起動後出現したLinuxのコンソール画面に唖然としました。今回VPSを導入したおかげで、
  ・ linuxの基本操作・初期設定
  ・ Webサーバー/アプリケーションサーバーの導入
  ・ Webサーバーとアプリケーションサーバーの連携

これができるようになりました。心折れかけたけど早めに挑戦しといて本当良かった(-"-)
ApacheTomcat については過去記事で書いてます↓
 
 【CentOS】【Java】VPSにApacheとTomcatを導入するには - くまごろーのプログラミングメモ
 
 【Java】【CentOS】VPS上でApacheとTomcatを連携させる。 - くまごろーのプログラミングメモ

 
※ (2)について
レスポンシブデザインについては、ポートフォリオスマホからでもある程度見やすいものにしたかったので、昨日今日で勉強して突貫工事で取り入れました。一番頑張ったのはドロップダウンメニューを取り入れたことです・・・知識ゼロで挑んだので本当骨が折れました。
 

4 実際作ってみて
 
ぶっちゃけ、時間も大して無いのになんでSpringbootを始めず、サーブレットでアプリを作ったのか?ツイッターで調べてわかったんですけど、サーブレットって現場ではほとんど使われてないみたいなんですよね。実際、アプリ作ってみると、「1つの機能を実装するのにもやることが多い」という印象でした。私はフレームワークについてはRailsをProgateのコースで体験したことがあるくらいで、知識も経験も全くないんですが、Railsの微かな記憶をたどってみても「こんなに面倒だったかな?Railsだともっとシンプルだった気がするなあ・・・」と。
ただ、色々な方のツイート等を見て、Webアプリの基本的な構造を知るには、Springbootやる前に一度サーブレットでアプリを作るべきなんじゃないかと感じたので、今回サーブレットアプリを作ってみました。
実際作ってみると、今まで適当な理解をしていた部分を洗い出せた上に、アプリ作成以外の面(VPSの環境構築やDBとのJDBC接続、レスポンシブデザイン等)でかなりハマったりして、色んな分野の勉強になったので、費やした時間に見合うだけのものは得られたんじゃないかなと思います。
Webアプリ制作Javaを選んでる方は少ないとは思いますが、JavaやっててこれからWebアプリに挑戦するという方がいらっしゃれば、時間はかかりますが、サーバーを借りてデプロイするところまでやってみることをおすすめしたいです(=゚ω゚)ノ