質問編集履歴

2 知りたい内容を明確にした

Kyouko_kisaragi

Kyouko_kisaragi score 25

2016/09/08 21:57  投稿

servletからjspへの値渡しについて
ずっと悩んでいます。どうか助けてください。
現在、servletとjspを使用した画面を作成しています。
内容は、
・『入力画面』のテキストボックスから文字を入力し、ボタンを押す
・分割された画面の下にある『出力画面』に、入力された値が表示される
・テキストボックスが空白の状態でボタンを押した時、『空です』のアラートボックスが表示されるようにする
・出力された文字は上書きされず増え続ける
このプログラムを作成しようとしています。
以下、プログラムになります。
『Input.jsp』から入力した値を一度『Test.java』に渡し、その後『Output.jsp』に渡して表示させたいのですが、うまく渡ってくれません。
調べたところ、dispatcherで渡し、request.getAttributeで取得できるようですが、動いてくれません。  
servlet、jsp共に初心者なので、アドバイスをいただきたいです。
Test.java
```ここに言語を入力
package studyc;  
 
import java.io.IOException;  
 
import javax.servlet.RequestDispatcher;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
public class Test extends HttpServlet {
   private static final long serialVersionUID = 1L;
   protected void doGet(HttpServletRequest req, HttpServletResponse res)
           throws ServletException, IOException {
       this.doPost(req, res);
       res.setContentType("text/html; charset=UTF-8");
   }
   protected void doPost(HttpServletRequest req, HttpServletResponse res)
           throws ServletException, IOException {
       res.setContentType("text/html; charset=UTF-8");
       // テキストボックスからデータを受け取る
       String input = req.getParameter("param");
       // 今までの入力分を取得
       String oldData = req.getParameter("oldData");
       if (null == oldData)
           oldData = "";
       String AllData = (oldData + input);
       req.setAttribute("AllData", AllData);
       **req.setAttribute("AllData", AllData);
       req.setAttribute("input", input);
       req.setAttribute("oldData", oldData);
       RequestDispatcher dispathcer = req
               .getRequestDispatcher("/C18_HelloWeb_Output.jsp");
       dispathcer.forward(req, res);
       dispathcer.forward(req, res);**
   }
}
```  
main.jsp  
```ここに言語を入力  
<%@ page language="java" contentType="text/html; charset=UTF-8"  
   pageEncoding="UTF-8"%>  
<%@ page import="java.util.Date,java.text.SimpleDateFormat"%>  
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">  
 
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>C18_HelloWeb_main</title>  
</head>  
<frameset rows="50%, *" frameborder="1">  
 
<frame src = "/Webtest/C18_HelloWeb_Input.jsp" name = "input">  
<frame src = "/Webtest/C18_HelloWeb_Output.jsp" name = "output">  
 
</frameset>  
<body>  
</body>  
</html>  
```  
 
Input.jsp  
```ここに言語を入力  
<%@ page language="java" contentType="text/html; charset=windows-31j"  
   pageEncoding="windows-31j"%>  
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">  
<title>C18_HelloWeb_Input</title>  
 
<script type="text/javascript" charset=Shift-JIS>  
<!--  
function startAlert(){  
if (document.frm.param.value == "")  
alert('空です');  
return false;  
 
}}  
-->  
</script>  
</head>  
<body>  
<center><font size=5px>入力画面</font></center>  
<br>  
<form action="http://localhost:8080/Webtest/Test/url" method="POST" >  
   <input type="text" name="param" size=20>  
   <input type="submit" value="クエリ送信" >  
</form>  
 
</body>  
</html>  
```
Output.jsp
```ここに言語を入力
<%@ page language="java" contentType="text/html; charset=Shift_JIS"
   pageEncoding="Shift_JIS"%>
<%@page import="java.util.*" import="java.io.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>C18_HelloWeb_Output</title>
</head>
<body>
<center><font size=5px>出力画面</font></center>
<br>
<%=request.getAttribute("AllData")%>
**<%=request.getAttribute("AllData")%>
<%=request.getAttribute("input") %>
<%=request.getAttribute("oldData")%>
<%=request.getAttribute("oldData")%>**
</body>
</html>
```
よろしくお願い致します。
  • JSP

    1048 questions

    JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

  • servlet

    532 questions

    Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

1 文章位置の変更

Kyouko_kisaragi

Kyouko_kisaragi score 25

2016/09/08 21:23  投稿

servletからjspへの値渡しについて
ずっと悩んでいます。どうか助けてください。
現在、servletとjspを使用した画面を作成しています。
内容は、
・『入力画面』のテキストボックスから文字を入力し、ボタンを押す
・分割された画面の下にある『出力画面』に、入力された値が表示される
・テキストボックスが空白の状態でボタンを押した時、『空です』のアラートボックスが表示されるようにする
・出力された文字は上書きされず増え続ける
このプログラムを作成しようとしています。
 
 
以下、プログラムになります。
 
『Input.jsp』から入力した値を一度『Test.java』に渡し、その後『Output.jsp』に渡して表示させたいのですが、うまく渡ってくれません。  
servlet、jsp共に初心者なので、アドバイスをいただきたいです。  
Test.java
```ここに言語を入力
package studyc;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
   private static final long serialVersionUID = 1L;
   protected void doGet(HttpServletRequest req, HttpServletResponse res)
           throws ServletException, IOException {
       this.doPost(req, res);
       res.setContentType("text/html; charset=UTF-8");
   }
   protected void doPost(HttpServletRequest req, HttpServletResponse res)
           throws ServletException, IOException {
       res.setContentType("text/html; charset=UTF-8");
       // テキストボックスからデータを受け取る
       String input = req.getParameter("param");
       // 今までの入力分を取得
       String oldData = req.getParameter("oldData");
       if (null == oldData)
           oldData = "";
       String AllData = (oldData + input);
       req.setAttribute("AllData", AllData);
       req.setAttribute("input", input);
       req.setAttribute("oldData", oldData);
       RequestDispatcher dispathcer = req
               .getRequestDispatcher("/C18_HelloWeb_Output.jsp");
       dispathcer.forward(req, res);
   }
}
```
main.jsp
```ここに言語を入力
<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
<%@ page import="java.util.Date,java.text.SimpleDateFormat"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>C18_HelloWeb_main</title>
</head>
<frameset rows="50%, *" frameborder="1">
<frame src = "/Webtest/C18_HelloWeb_Input.jsp" name = "input">
<frame src = "/Webtest/C18_HelloWeb_Output.jsp" name = "output">
</frameset>
<body>
</body>
</html>
```
Input.jsp
```ここに言語を入力
<%@ page language="java" contentType="text/html; charset=windows-31j"
   pageEncoding="windows-31j"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>C18_HelloWeb_Input</title>
<script type="text/javascript" charset=Shift-JIS>
<!--
function startAlert(){
if (document.frm.param.value == "")
alert('空です');
return false;
}}
-->
</script>
</head>
<body>
<center><font size=5px>入力画面</font></center>
<br>
<form action="http://localhost:8080/Webtest/Test/url" method="POST" >
   <input type="text" name="param" size=20>
   <input type="submit" value="クエリ送信" >
</form>
</body>
</html>
```
Output.jsp
```ここに言語を入力
<%@ page language="java" contentType="text/html; charset=Shift_JIS"
   pageEncoding="Shift_JIS"%>
<%@page import="java.util.*" import="java.io.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>C18_HelloWeb_Output</title>
</head>
<body>
<center><font size=5px>出力画面</font></center>
<br>
<%=request.getAttribute("AllData")%>
<%=request.getAttribute("input") %>
<%=request.getAttribute("oldData")%>
</body>
</html>
```
『Input.jsp』から入力した値を一度『Test.java』に渡し、その後『Output.jsp』に渡して表示させたいのですが、うまく渡ってくれません。
servlet、jsp共に初心者なので、アドバイスをいただきたいです。
よろしくお願い致します。
  • JSP

    1048 questions

    JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

  • servlet

    532 questions

    Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る