2016-03-22 24 views
0

サーブレットを使用して簡単なWebページを作成したいとします。これは私の試験の質問の一つで、私は実践的な試験をしましたが、彼らが期待どおりに働いていなかったのですが、今私は質問を明確にしたいと思います。 私の質問は、Webページがあり、2つの部分に分かれています。下部には、コメントを入力するためのテキストボックスとテキストエリアが表示されます。また、送信ボタンもあります。送信ボタンをクリックすると、コメントを入力したものが同じページの上部に表示されます。 これを行うには、Welcome.javaというサーブレット・コールを作成し、iframeを使用して2つの部分に分割します。次に、サーブレット・コールtest.javaを作成し、そのサーブレット内にテキスト・ボックスとテキスト領域を作成します。次に、コメントをキャッチして表示する別のサーブレット・コールtext22.javaを作成します。しかし、それは期待される出力を与えません。
このページの外観のスクリーンショットを添付して、ページの上部にコメントを表示したいとします。 ...私はあなたの助けを本当に感謝このproblem.Iを解決するために助けてくださいサーブレットを使用して単純なWebページを作成する

Welcome.java

import java.io.IOException; 
    import java.io.PrintWriter; 
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 

    /** 
    * 
    * @author neil 
    */ 

public class Welcome extends HttpServlet { 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 


      out.println("<iframe src='test22' name='if1' width='100%' height='400px'>"); 
      out.println("</iframe>"); 
      out.println("<iframe src='test' name='if1' width='100%' height='200px'>"); 
      out.println("</iframe>"); 


     } finally { 
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 

test.java

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* 
* @author neil 
*/ 
public class test extends HttpServlet { 


    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 

      out.println("User Name" + "<input type='text' name='username'/>" + "<br>" + "<br>"); 
      out.println("<textarea name='comment' rows='25' cols='20'>" + "Write your comment"); 
      out.println("</textarea>"); 
      out.println("<input type='submit' value='Submit'/>"); 




     } finally { 
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 

test22.java

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* 
* @author neil 
*/ 
public class A extends HttpServlet { 


    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      ServletContext sc=request.getServletContext(); 
      String com= (String) sc.getAttribute("text"); 

      if(null==com){ 
       com = request.getParameter("comment"); 
      }else{ 
       com=com+"<br>"+request.getParameter("comment"); 
      } 


      out.println(com); 

      sc.setAttribute("comment", com); 

     } finally {    
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 

Image

+0

送信をクリックすると、コントロールはどこに行きますか、どのようになっていますか? –

+0

送信ボタンをクリックすると、ページの上部に表示されるはずです。ここではヌルとして表示されますが、私はサーブレットとJSPには新しくありません。本当にありがとうございます。 – neil

答えて

0

この単純なサーブレットプログラムを複雑にする必要はありません。これを行うには、jspservletの1つが必要です。

あなたの要件では、データを送信して表示するのと同じページを使用しています。

最初にtextboxで単純なJSPページを作成します。わかりやすくするために、scriptletsの代わりにJSTLを使用してください。私はあなたにスクリプトレットコードを与えました。

あなたindex.jspは次のようになり、

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!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=ISO-8859-1"> 
<title>Submit and View Page</title> 
</head> 
<body> 
    <!-- This part will enable only after submit your username --> 
    <% 
     if(null != request.getParameter("username")){ 
     out.println("<fieldset><legend>Entered Name</legend>"); 
     out.println(request.getParameter("username")); 
     out.println("</fieldset>"); 
     } 
    %> 
    <!-- End of view data --> 
    <form action="HelloServlet"> 
     <label>User Name: </label><input type='text' name='username'/></br> 
     <input type='submit' value='Submit'/> 
    </form> 
</body> 
</html> 

は、それぞれのサーブレットを作成しますがHelloServlet

package com; 

import java.io.IOException; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class HelloServlet extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 

     // Receive the username 
     String username = req.getParameter("username"); 

     // Set it into request object 
     req.setAttribute("username", username); 

     // Forward it into same index page 
     req.getRequestDispatcher("index.jsp").forward(req, resp); 
    } 
} 

は、デプロイメントディスクリプタweb.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 

    <display-name>Sample_Servlet</display-name> 

    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>HelloServlet</servlet-name> 
     <servlet-class>com.HelloServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloServlet</servlet-name> 
     <url-pattern>/HelloServlet</url-pattern> 
    </servlet-mapping> 

</web-app> 

があなたのフォルダ構造は次のようになり確認してください設定と言います、あなただけでなくチュートリアルから学習を始める。

Servlet Sample

+0

Thqnk助けてください私が理解できない1つのことは、私がindex.jspに含んでいるものです。 – neil

+0

index.jspは私のコードの最初の部分です。 –

0

AjaxやJavascriptがページ全体をリフレッシュせずにページの内容を更新するために使用することができます。

は、テキストボックス、テキスト領域と第二でボタンを表示する必要があり2 parts.Itにページを分割するためのコードが含まれている必要な唯一のWebページがあり、次のように

このアプリケーションを開発する方法があります部。そして最初の部分にdiv(コメントを表示する)。このページには、ボタンのクリックで処理するコードも含まれている必要があります。ボタンをクリックすると、Ajaxコールが開始されます。このajax呼び出しは、入力されたコメントを渡すことによってサーブレットにヒットする必要があります。

サーブレットはコメントの処理を行い、応答としてコメントを返す必要があります。返されたコメントは、javascriptコードを書くことによって、ページの最初の部分に追加することができます。

+0

ありがとう、私はそのアイデアを持っていますが、私はJavascriptまたは他のものを使用することを許可していない、サーブレットを使用することができます、jsp – neil

+0

その場合、テキストを含むフォームを表示するindex.jspページを持つことができますテキスト領域、および第2部分の送信ボタンを含む。ページの最初の部分では、フォームの提出時に毎回サーブレットで処理するコメントリスト(セッションから取得)を反復することができます。 – kamal

+0

私はそれを試してみるよ、ありがとう... – neil

関連する問題