将变量从JSP传递到Java

时间:2013-04-15 18:20:45

标签: java jsp

我试图将一个名为seq的字符串变量从JSP传递给Java程序,并通过将字符串作为参数传递给其对象,将其传递给另一个Java程序。我不知何故被卡住了。

Start.jsp:

<%@ page import="org.dypbbi.nirmiti.ProtModMain %>
<%@ 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>NIRMITI</title>
    </head>
    <body>
        <h1>Please wait...</h1>
        <%
            String seq=request.getParameter("s");
            ProtModMain.getSequence(seq);
        %>
    </body>
</html>

ProtModMain.java:

package org.dypbbi.nirmiti;
public class ProtModMain {
    String sequence="";

    public static String getSequence(String str)
    {
        return str;
    }


    public static void main(String args[])throws Exception
    {
      ProtModMain MainObj = new ProtModMain();
      sequence = MainObj.getSequence();
      new ObjectFactory(sequence);
    }
}

Start.jsp将从HTML检索字符串值。它通过方法ProtModMain将字符串传递给getSequence类。我现在需要使用字符串值将其传递给需要它的其他类,所以我打算将它传递给ObjectFactory对象。但在此之前,我需要在getSequence类中调用ProtModMain方法,以便我可以传递该值。我不了解如何在getSequence类的主要方法中调用ProtModMain方法。

3 个答案:

答案 0 :(得分:1)

您需要使用request.setParameter("<name>",<value>);将参数设置为请求。然后,您可以使用HTTPRequest getParameter("<name>");在Java文件中获取它。

答案 1 :(得分:0)

您可以使用<form>代码和<input type='hidden'> <input type='submit'>按钮,在表格中指定要发送的方式以及发送数据的位置。

或者您可以存储在POJO中并存储在会话中并使用servlet恢复它。

或者将Ajax与XmlHttpRequest一起使用。

答案 2 :(得分:0)

您没有调用main方法。在JSP中,您只调用静态getSequence,顺便说一下,它只返回值。

我认为你有一个项目概念问题:为什么你的web(JSP)应用程序有一个主类?

我认为你应该适应:

Start.jsp:

<%@ page import="org.dypbbi.nirmiti.ProtModMain %> 
<%@ 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>NIRMITI</title>
    </head>
    <body>
        <h1>Please wait...</h1>
        <%
        String seq=request.getParameter("s");
        ProtModMain protModMain = new ProtModMain();
        ObjectFactory myFactory = protModMain.createFactory(seq);
        //do whatever you want with your factory ;)
        %>
    </body>
</html>

ProtModMain.java:

package org.dypbbi.nirmiti;
public class ProtModMain {

    public ObjectFactory createFactory(final String sequence) {
        return new ObjectFactory(sequence);
    }
}

通过这种方式,您将调用您想要的方法。