0.前提
ターゲット・ランタイム=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を指定するのを忘れず。
サーバータブ>対象のサーバーを右クリック。
ダイアログが表示されるため、「使用可能」から「構成済み」に追加を行う。
以下は右クリック後のダイアログ
値を送る前提として:
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直下に置くこと




