Java中的状态栏

时间:2012-02-28 19:03:51

标签: java jsp

我的网站顶部有两种不同的状态栏流程。我必须将值传递给此状态栏类,以便根据主页中的用户选择让它知道要遵循的流程。如果ID = 1,则遵循1种流式,如果ID = 2,则遵循其他流式。而且,如果ID = 1且步数= 2,我必须在状态栏中显示第二步的一种流式。当我用户完成1页时,我怎么能让这个流从一个页面移动到另一个页面转移到其他人。如何跟踪并在页面顶部显示正确的状态栏。如何获取该状态并进入流程以在该特定页面上显示它。到目前为止,我已经完成了这个操作,我需要在jsp页面中显示一些jsp内容,以显示从该url连接返回的内容,我需要将id传递给此类以查看我必须遵循的流程。任何帮助都会很棒..

public class StatusBar 
{
    private static final String STATUS_URL = 'http://10.1.2.3:8080/status';

    private final String buffer;
    public String toString(){ return buffer; }

    private final String id;
    private final String step;


    private ProgressBar( Create create )
    {
        id = Create.pbid;
        step = Create.step;

        String response = "";

            Map<String, String> m = new HashMap<String, String>();
            m.put( "id", id );
            m.put( "step", step );

            String query = buildQuery( m );

            URL url = new URL( STATUS_URL );

            URLConnection uc = url.openConnection();
            uc.setDoOutput( true );
            uc.setAllowUserInteraction( false );
            uc.setConnectTimeout( 5000 );
            uc.setReadTimeout( 5000 );

            PrintStream ps = new PrintStream( uc.getOutputStream() );
            ps.print( query );
            ps.close();

            BufferedReader br = new BufferedReader( new InputStreamReader( uc.getInputStream(), "UTF-8" ));
            StringCreate sb = new StringCreate();
            String line;

            while(( line = br.readLine()) != null )
            {
                sb.append(line);
                sb.append( "\n" );
            }

            br.close();
            response = sb.toString();

            buffer = "";
    }


    private static final String buildQuery( Map<String, String> args ) throws UnsupportedEncodingException
    {
        StringCreate sb = new StringCreate();

        for( Map.Entry<String, String> entry : args.entrySet() ) 
        {
            sb.append( URLEncoder.encode( entry.getKey(), "UTF-8" ));          
            sb.append( '=' );
            sb.append( URLEncoder.encode( entry.getValue(), "UTF-8" ));          
            sb.append( '&' );
        }

        return sb.toString().substring( 0, sb.length() - 1 );
    }


    public static class Create
    {
        private String id;
        private String step;

        public Create(){}

        public Create id( String val )
        {
            id = val;
            return this;
        }

        public Create step( int val )
        {
            step = String.valueOf( val );
            return this;
        }

        public StatusBar build()
        {
                return new StatusBar( this );

        }
    }
}

1 个答案:

答案 0 :(得分:3)

从您的描述中我相信您需要在用户遍历您的网页时将状态(或状态)存储在某处。

这件事是HTTP Session。您可以在那里存储值,并且可以在您网站上的用户会话期间访问这些值。

在JSP中,您使用JSTL在会话中设置了一些内容:<c:set var="foo" value="bar" scope="session"/>并使用${foo}访问它(检索值)。

在状态栏JSP代码中使用它。

如果我误解了你的问题,你可以更好地描述你真正想要达到的目标,你到目前为止所尝试的内容,以及你的尝试失败的原因。