2014-09-05 30 views
0

我想顯示數據而不傳遞參數到servlet。 就像當我進入這個網址顯示沒有通過的參數參數到Servlet

「本地主機:30050/AssigmentByMVC/RetriveByClassOrName」

,以便它告訴我的數據。 我試過,但它並沒有顯示,而通過這種方式顯示數據

本地主機:30050/AssigmentByMVC/RetriveByClassOrName SearchByName = & SearchByClass =

我的servlet代碼是

package manipulationStudentData; 

import java.util.*; 
import java.io.IOException; 
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(description = "Retrive By Class Or Name", urlPatterns = { 
"/RetriveByClassOrName" }) 

public class RetriveByClassOrNameController extends HttpServlet { 
private static final long serialVersionUID = 1L; 


public RetriveByClassOrNameController() { 
    super(); 

} 


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException { 

    ArrayList<ManipulateStudentBean> Search=new ArrayList<ManipulateStudentBean>(); 
    DatabaseActivityDao database=new DatabaseActivityDao(); 



/*#################################################################################*/ 
        /*Searching By Student First Name*/   
/*#################################################################################*/ 


    if(request.getParameter("SearchByStudent") != "" && 
     request.getParameter("SearchByClass") != ""){ 


Search=database.showOnClassandName(request.getParameter("SearchByStudent"), 
            request.getParameter("SearchByClass")); 

     request.setAttribute("ResultByClassAndName", Search); 
     request.setAttribute("ResultByFilter", "both"); 
     request.getRequestDispatcher("/ManipulationPage.jsp") 
     .include(request, response); 
    } 


    /*################################################################################*/ 
          /*Searching By Student First Name*/ 
    /*################################################################################*/ 

    else if(request.getParameter("SearchByStudent") != "" && 
      request.getParameter("SearchByClass") == ""){ 

     Search=database.showOnName(request.getParameter("SearchByStudent")); 

     request.setAttribute("ResultSet", Search); 
     request.setAttribute("ResultByFilter", "student"); 
     request.getRequestDispatcher("/ManipulationPage.jsp") 
     .include(request, response); 
    } 

    /*##########################################################################*/ 
          /*Searching By Student First Name*/ 
    /*##########################################################################*/ 

    else if(request.getParameter("SearchByStudent") == "" && 
      request.getParameter("SearchByClass") != ""){ 

     Search=database.showOnClass(request.getParameter("SearchByClass")); 

     request.setAttribute("ResultSet", Search); 
     request.setAttribute("ResultByFilter", "class"); 
     request.getRequestDispatcher("/ManipulationPage.jsp") 
     .include(request, response); 
    } 
    /*###############################################################*/ 
         /*Searching By Student First Name*/ 
    /*################################################################*/ 

    else if(request.getParameter("SearchByStudent") == "" && 
      request.getParameter("SearchByClass") == ""){ 

     Search=database.showStudentData(); 

     request.setAttribute("ResultSet", Search); 
     request.getRequestDispatcher("/ManipulationPage.jsp") 
     .include(request, response); 
    } 

    else{ 

     Search=database.showStudentData(); 

     request.setAttribute("ResultSet", Search); 
     request.getRequestDispatcher("/ManipulationPage.jsp") 
     .include(request, response); 
    } 

    } 


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

} 

在這裏,我我叫它

<html> 
    <head> 
     <title>Storing Data </title> 
     <link rel="stylesheet" type="text\css" href="Index.css" /> 
    </head> 
    <body> 
     <div id="links"> 
      <h3>To Add Students Goto This Link</h3> 

      <h4><a href="/ManipulationPage.jsp" > Students </a> </h4> 

      <h3>For Updating Deleting Student Record go to this Page</h3> 
      <h4> <a href="/AssigmentByMVC/RetriveByClassOrName" > Manipulate </a> </h4> 
     </div> 
    </body> 
</html> 

這是

的ManipulationPage.jsp頁
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 



<html> 
<head> 
<title>Manipulation Page</title> 
<link rel="stylesheet" type="text\css" href="ManipulationPage.css"> 
</head> 
<body> 
<div id="formData"> 
    <c:url var="formActionURL" value="/RetriveByClassOrName" /> 
    <form action="${formActionURL}" method="post" id="searchForm"> 
    <p> 
    <label for="SearchByStudent"> Student First Name </label> 
    <input type="text" name="SearchByStudent" /> 
    </p> 

    <p> 
    <label for="SearchByClass">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Student Class </label> 
    <input type="text" name="SearchByClass" /> 
    </p> 

    <p> 
    <input type="submit" value="Search"/> 
    </p> 
</form> 
</div> 


<div id="showData"> 
    <table id="table" cellpadding="3px" border="1px"> 
     <tr> 
      <th>ID</th> 
      <th>First Name</th> 
      <th>Last Name</th> 
      <th>Father Name </th> 
      <th>Gender </th> 
      <th>Date Of Birth</th> 
      <th>Class</th> 
      <th>Address</th> 
      <th>Subjects</th> 
      <th>Update</th> 
      <th>Delete</th> 
     </tr>  
     <c:forEach var="data" items="${ResultSet}"> 
      <tr> 
       <td><c:out value="${data.studentId}"></c:out></td> 
       <td><c:out value="${data.firstName}"></c:out></td> 
       <td><c:out value="${data.lastName}"></c:out></td> 
       <td><c:out value="${data.fatherName}"></c:out></td> 
       <td><c:out value="${data.gender}"></c:out></td> 
       <td><c:out value="${data.dob}"></c:out></td> 
       <td><c:out value="${data.classNo}"></c:out></td> 
       <td><c:out value="${data.address}"></c:out></td> 
      </tr> 
     </c:forEach> 

    </table> 
</div> 

</body> 
</html> 
+1

你如何調用你的servlet?你需要通過POST調用它。最簡單的方法是創建來自與您的參數相關的輸入。 – Gas 2014-09-05 10:03:52

+0

我沒有調用Jsp頁面,我直接調用servlet,然後通過requestDispatcher我包含了jsp頁面 – 2014-09-05 10:05:29

+0

但是不知何故,你需要傳遞你使用的這些參數:SearchByStudent,SearchByClass。您可以通過url - ?SearchByClass ...,通過表單或AJAX調用的輸入來完成它(但這可能暫時過於簡單)。 ManipulationPage.jsp的外觀如何? – Gas 2014-09-05 10:21:30

回答

0

您正在使用的表單提交方法:

<form action="${formActionURL}" method="post" id="searchForm"> 

所以,你需要將你的業務邏輯處理在servlet搜索到doPost()方法。

doGet()中,當用戶單擊存儲數據頁面上的鏈接時,您只需將邏輯轉發保留爲空ManipulationPage.jsp即可。

+0

好的解決了它。非常感謝Gas。只是將其他部分代碼轉移到doGet()方法,而其餘部分則在後工作方法中,因爲我希望工作正常 – 2014-09-05 11:00:23