2016-03-22 32 views
0

Servlet kullanarak basit bir web sayfası oluşturmak istiyorum. Bu benim sınav sorularımdan biriydi, sınavda pratik yaptım, ama bekledikleri gibi çalışmıyordu, ancak şimdi sorumu açıklığa kavuşturmak istiyorum. Sorum şu: bir web sayfası var ve 2 bölüme ayrılıyor. Alt kısımda, yorum girmek için bir metin kutusu ve bir metin alanı göstermelidir. Ve ayrıca bir gönderme düğmesi var. Gönder butonu tıklandığında girilen yorum, aynı sayfanın en üstünde görüntülenmelidir. Bunu yapmak için bir Servlet Hoşgeldin.java çağrısı oluşturdum ve iframe'leri kullanarak 2 parçaya böldüm. Daha sonra bir servlet çağrısı test.java yarattım ve bu servlette bir metin kutusu ve tekstrat oluşturdum. Sonra başka bir servlet çağrısı text22.java'yı yorumunu yakalamak ve görüntülemek için yarattım. Fakat beklenen çıktıyı vermez.
Bu sayfanın nasıl göründüğüne dair bir ekran görüntüsü ekledim, sayfanın üst kısmındaki yorumu görüntülemek istiyorum. ... bana bu problem.I gerçekten yardımına takdir çözmek içinServlet kullanılarak basit bir web sayfası oluşturma

Welcome.java

Lütfen yardım
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

Gönderme tamamlandığında, kontrol nereye gidiyor, nasıl gidiyor? –

+0

Gönder düğmesine tıklandığında, sayfanın en üstünde görüntülenecek, şimdi null olarak gösterilecek, Bu arada, ben servlet ve Jsp için yeni olduğum sürece, bana yardım etmek için gerçekten teşekkür ederim – neil

cevap

0

Bu basit sunucu programını zorlaştırmak zorunda değilsiniz. Bunu yapmak için bir jsp ve servlet olması gerekir.

Gereksiniminiz, önce verileri göndermeniz ve görüntülemeniz gereken sayfayı kullanıyor.

Önce textbox ile basit bir jsp sayfası oluşturun. Size scriptlet kodunu verdiğim basitlik için scriptlets yerine JSTL kullanmalısınız.

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); 
    } 
} 

klasör yapısı şu şekilde görünür emin olun dağıtım tanımlayıcı 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> 

yapılandırma demek, ilgili sunucu uygulamasını oluşturun, şöyle Sizin , Sen de öğretici öğrenmeye başlar.

Servlet Sample

+0

Thqnk size yardım için, ama Anlayamadığım bir şey, index.jsp dizininde içerdiğim şey. – neil

+0

index.jsp kodumun ilk kısmıdır. –

0

Ajax ve JavaScript tüm sayfayı yenilemeden sayfa içeriğini güncellemek için kullanılabilir.

bir metin kutusu, bir metin alanı ve ikinci bir düğme göstermesi gerekir 2 parts.It içine sayfayı bölmek için kod içeren gerekli tek web sayfası vardır: şöyle

Bu uygulamayı geliştirmek için bir yoldur Bölüm. Ve ilk bölümde bir div (yorumları görüntülemek için). Bu sayfa ayrıca düğmenin tıklanması için kod içermelidir. Düğmeye tıklandığında bir Ajax çağrısı başlatılmalıdır. Bu ajax çağrısı, girilen yorumu aktararak bir sunucuya çarpmalıdır.

Sunucu uygulaması, yorum işlenmesini yapmalı ve yorumu yanıt olarak geri vermelidir. Geri dönen yorum, javascript kodu yazılarak sayfanın ilk bölümüne eklenebilir.

+0

Teşekkür ederim, ben bu fikri var, ama sorun Javascript veya başka bir kullanımı için izin vermemek, sadece servlet kullanabilirsiniz jsp – neil

+0

Bu durumda bir metin ile bir formu görüntülemek bir index.jsp sayfanız olabilir kutu, bir metin alanı ve ikinci kısımda bir gönder düğmesi. Sayfanın ilk bölümünde, formun gönderilmesinde her defasında sunucu uygulamasında ele aldığınız bir yorum listesini (oturumdan elde edilen) tekrarlayabilirsiniz. – kamal

+0

Bunu deneyeceğim, teşekkürler ... – neil