2011-03-26 123 views
2

代碼web.xml和Servlet的配置更新無法從servlet的傳遞價值JSP

我想從我的servlet到JSP轉發一些價值,但是當我試圖訪問該值成JSP,沒有輸出。

這裏是我的形式:

<HTML> 
<BODY> 
<FORM METHOD=POST ACTION="servlet/NewServlet"> 
Enter Name: <Input type="text" name="name"/><br> 
<P><INPUT TYPE=SUBMIT> 
</FORM> 

這裏是我的豆我使用的setter和getter方法:

package user; 

    public class CompileClass { 
    public String name; 

    public void setName(String n){ 
      name=n; 
     } 

    public String getName(){ 
      return name; 
     } 
    } 

這裏是我的servlet:

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

import user.CompileClass; 

public class NewServlet extends HttpServlet{ 

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException{ 
String name1; 

CompileClass c=new CompileClass(); 
name1=c.getName(); 
request.getSession().setAttribute("name1", name1); 

request.getRequestDispatcher("../Result.jsp").forward(request, response); 

    } 
    } 

最後這裏是我的JSP頁面:

<%@ page import="java.net.*"%> 
<%@ page import="javax.servlet.*"%> 
<%@ page import="java.util.ArrayList"%> 

<jsp:useBean id="user" scope="request" class="user.CompileClass" /> 
<jsp:setProperty property="*" name="user"/> 
<html> 

    <body> 

Name: 
<br/> 

<% request.getSession().getAttribute("name1");%> 


    </body> 
</html> 

這是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <servlet> 
    <description>This is the description of my J2EE component</description> 
    <display-name>This is the display name of my J2EE component</display-name> 
    <servlet-name>NewServlet</servlet-name> 
    <servlet-class>NewServlet</servlet-class> 
    </servlet> 

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

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

一切似乎都沒什麼問題。但是我仍然沒有在JSP頁面上獲得任何輸出。幫幫我?

回答

0

看起來,像範圍問題一樣。要解決這個問題最簡單的辦法就是更換

request.setAttribute("name1", name1); 

request.getSession().setAttribute("name1", name1); 
+0

我試圖改變與會話請求調用,但沒有奏效。 – Anurag 2011-03-26 08:45:15

+0

@Auurag - 這應該工作。在其他地方搜索麻煩) – 2011-03-26 09:05:27

+0

我試過這裏指出的一切。但是再次沒有輸出。我也在這裏更新了代碼。 – Anurag 2011-03-26 10:33:43

3

如何進入你的Bean表單中的價值?你正在做的:

CompileClass c=new CompileClass();  //creates a new, empty instance 
name1=c.getName();      //gets the name from the empty 
             //instance (will be null) 
request.setAttribute("name1", name1); //sets 'name1' to null in the request 

如果你這樣做,你可能有更好的運氣:

CompileClass c=new CompileClass();  //creates a new, empty instance 
c.setName(request.getParameter("name"));//get the param and set it in the bean 
name1=c.getName();      //gets the name from the bean 
request.setAttribute("name1", name1); //sets 'name1' in the request 

雖然從代碼的結構,它好像你可能正在使用您期望填充一些web框架Bean會自動爲您提供請求中的數據。如果是這樣,那麼您可能需要查閱框架的配置和用法文檔,以確保您已正確設置並正確使用它。

編輯:

而且,請不要做這樣的事情:

<% request.getSession().getAttribute("name1");%>

用這個代替:

${name1}

編輯2:

你AREN部署g你的servlet在web.xml。您需要通過添加類似配置它:

<servlet> 
    <servlet-name>newServlet</servlet-name> 
    <servlet-class>user.NewServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>newServlet</servlet-name> 
    <url-pattern>/name/*</url-pattern> 
</servlet-mapping> 

然後你需要更新你的HTML表單,使表單發送給servlet,而不是直接向JSP。因此,像:

<FORM METHOD=POST ACTION="name/submit">

+0

我試過你的修改過的代碼沒有工作。此外,我刪除了構造函數,然後嘗試,但也沒有奏效。 這不是網絡框架。只是我們設計並試圖堅持這種結構的Web應用程序的總體概述。 – Anurag 2011-03-26 08:47:23

+0

@Anurag - 那你還可以發佈你的'web.xml'文件嗎?假設一切正確,上面的代碼應該工作。 – aroth 2011-03-26 10:42:56

+0

用web.xml更新 – Anurag 2011-03-26 11:07:18

-2

使用RequestDispatcher的類...

+0

閱讀問題,這就是他所做的:'request.getRequestDispatcher(「../ Result.jsp」)。forward(request,response);' – 2014-03-20 15:40:36

+0

以及請求調度程序,我們可以將值傳遞到下一頁。那他想要什麼...... – Mazhar 2014-03-21 14:07:59

+0

如果你認爲是這種情況,那你爲什麼不在你的回答中解釋? – 2014-03-21 14:21:47