Eclipseで勉強中です。
Eclipseでsample.htmlを/実行/サーバーで実行/すると
内部ブラウザhttp://localhost:8080/web_b/sample.htmlで
フォーム送信画面が出て、何か打ち込んで送信すると
内部ブラウザはhttp://localhost:8080/web_b/sampleで
送信した数字とともに以下のように表示されます。
" 送信結果
これはSampleServletの表示です。
入力された数字:123
OtherServletです。
渡された値は、「123」です。
合計値:7626(-1はエラー)
これはSampleServletの表示です。
以上。
"
エクスポートでwarファイルをC:\Users\nakamura\Desktop\web_b.war
につくりTomcat のwebappsにコピーして、
次にEclipseのサーバーを止めて,programfiles/Tomcatを起動して、
ブラウザでhttp://localhost:8080/web_b/sample.html
と打ち込んでも表示されなくて、エラーになります。
どこか名前の付け方が間違っているとおもうのですが、ekuripse自体がエラーに
なって動かなるのが怖いので、どこが悪いのでしょうか。
昨日もekuripseのエラーを直すのに四苦八苦しました。明日朝からやる予定です。
よろしくお願いいたします。
//sample.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>数字を入力</title> </head> <body> <h1>数字を送信</h1> <form action="sample" method="POST"> 入力:<input type="text" size=20 name="text1"> <input type=submit value="送信"> </form> </body> </html> //Servlet1 package sample; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/sample") public class Servlet1 extends HttpServlet { private static final long serialVersionUID = 1L; public Servlet1() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); super.doGet(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); String str = request.getParameter("text1"); out.println("<html><body>"); out.println("<h1>送信結果</h1>"); out.println("<H2>これはSampleServletの表示です。</h2>"); out.println("<p>入力された数字:" + str + "</p>"); out.println("<hr>"); ServletContext con = this.getServletContext(); con.setAttribute("param1", str); RequestDispatcher dis = con.getRequestDispatcher("/other"); dis.include(request, response); out.println("<hr>"); out.println("<H2>これはSampleServletの表示です。</h2>"); out.println("<p>以上。</p>"); out.println("</body></html>"); } } //OtherServlet package sample; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/other") public class OtherServlet extends HttpServlet { private static final long serialVersionUID = 1L; public OtherServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doGet(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); ServletContext con = this.getServletContext(); String param = (String) con.getAttribute("param1"); out.println("<h1>OtherServletです。</h1>"); out.println("<p>渡された値は、「" + param + "」です。</p>"); int res = 0; try { int n = Integer.parseInt(param); for (int i = 1; i <= n; i++) res += i; } catch (Exception ex) { res = -1; } out.println("<p>合計値:" + res + "(-1はエラー)</p>"); } }
回答2件
あなたの回答
tips
プレビュー