将变量从JSP传递到Java

noj0wjuj  于 2022-12-07  发布在  Java
关注(0)|答案(3)|浏览(165)

我试图将一个名为seq的字符串变量从JSP传递给一个Java程序,然后通过将该字符串作为参数传递给另一个Java程序的对象,将其传递给该Java程序。

启动.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>

协议模块主.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);
    }
}

jsp将从HTML中检索字符串值,它通过getSequence方法将字符串传递给ProtModMain类,现在我需要使用字符串值将其传递给其他需要它的类,所以我打算将它作为一个参数传递给ObjectFactory对象,但在此之前,我需要调用ProtModMain类中的getSequence方法,以便传递值。我不知道如何调用ProtModMain类的main方法中的getSequence方法。

ffscu2ro

ffscu2ro1#

您需要使用***request.setAttribute("<name>",<value>)将参数设置为请求。然后您可以使用request.getAttribute("<name>")***在Java文件中获取它。
参考- Oracle文档-HttpServletRequest

wf82jlnq

wf82jlnq2#

您没有调用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);
    }
}

这样,您将调用您想要调用的方法。

bz4sfanl

bz4sfanl3#

您可以使用<form>标签和<input type='hidden'><input type='submit'>按钮,在表单中您将指定发送方法和发送数据的目的地。
也可以存储在POJO中,存储在会话中,然后使用servlet恢复它。
或者使用带有XmlHttpRequest的 AJAX 。

相关问题