0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Java]動的アプリケーションのDB接続時注意点

Posted at

0.前提

Untitled.png

ターゲット・ランタイム=Tomcat8(Java8)
動的webモジュールバージョン=3.1

1.サーブレット Send.jsp


package Servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Send
 */
// 設定をしないとエラーになる
@WebServlet("/Send")
public class Send extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Send() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 文字コード定義
		request.setCharacterEncoding("UTF-8");

        // formからの値を取得し、変数に格納※sendで取得しsend変数に格納
		String send = request.getParameter("send");

		request.setAttribute("Send", send); Sendに値をセット

        // セットした値を渡すjspの指定
		RequestDispatcher formAnser = request.getRequestDispatcher("/view/after.jsp");
        
		formAnser.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // doGet(request, response);
	}

}

web.xmlでサーブレットの指定を実施
(パス定義がスラッシュではなく「.」と若干困惑しがちなので注意)

2.web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>ServletSample</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>Send</display-name>
<servlet-name>Send</servlet-name>
<servlet-class>Servlet.Send</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Send</servlet-name>
<url-pattern>/Servlet/Send</url-pattern>
</servlet-mapping>
</web-app>

3.tomcatの指定

対象のプロジェクトにtomcatを指定するのを忘れず。

Untitled.png

サーバータブ>対象のサーバーを右クリック。

ダイアログが表示されるため、「使用可能」から「構成済み」に追加を行う。

Untitled.png

以下は右クリック後のダイアログ

Untitled.png

値を送る前提として:

before.jsp → Send.java → after.jsp

サーブレット(Send.java)を経由し画面(before.jsp)から画面(after.jsp)へ値を渡す。

要素のaction属性に値を渡すサーブレットを指定する。

action=”プロジェクト名/ディレクトリ/サーブレット名”;

※拡張子はなくてもだいじょうぶみたい

method属性にgetもしくはpostを記述

// before.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="/ServletSample/Servlet/Send">
<input type="text" name="send" />
<input type="submit" value="送信" />
</form>
</body>
</html>

下記のpostかgetに渡されるよ。

// サーブレット Send.java
@WebServlet(/Send)
public class Send extends HttpServlet {
	:
	:
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	:
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	:
		RequestDispatcher formAnser = request.getRequestDispatcher("/view/after.jsp");
		formAnser.forward(request, response);
	}
}

下記で値を渡す画面のパスを指定している。

RequestDispatcher formAnser = request.getRequestDispatcher("/view/after.jsp");

4.DB接続用のjarファイル

プロジェクト>WebContent>WEB-INF>lib直下に置くこと

Untitled.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?