Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将响应从jsp转发到servlet_Jsp_Servlets_Oauth - Fatal编程技术网

将响应从jsp转发到servlet

将响应从jsp转发到servlet,jsp,servlets,oauth,Jsp,Servlets,Oauth,我正在为我的web应用程序使用GoogleOAuth。登录时,它返回状态和代码,并从同一页面重定向到index.jsp my index.jsp <body style="background-color: #FFA;"> <div class="container" style="width: 100%;"> <div class="row"> <div class="col-md-6"> <

我正在为我的web应用程序使用GoogleOAuth。登录时,它返回状态和代码,并从同一页面重定向到index.jsp

my index.jsp

<body style="background-color: #FFA;">
<div class="container" style="width: 100%;">
    <div class="row">
        <div class="col-md-6">
            <h3>
                IntegrationEZ<br />
                <span style="color:#808080;"><i>We make "integrations" easy</i></span>
            </h3>
        </div>
        <div align="right" class="col-md-6"><br>
           <%
        /*
         * The GoogleAuthHelper handles all the heavy lifting, and contains all "secrets"
         * required for constructing a google login url.
         */
        final GoogleAuthHelper helper = new GoogleAuthHelper();

        if (request.getParameter("code") == null
                || request.getParameter("state") == null) {

            /*
             * initial visit to the page
             */
            out.println(" <a class='btn btn-lg btn-social btn-google' style='width:36%;padding: 12px 0px;float:right;' href='" + helper.buildLoginUrl()
                    + "'><span class='fa fa-google'></span>&nbsp;&nbsp;Login with Google</a>");

            /*
             * set the secure state token in session to be able to track what we sent to google
             */
            session.setAttribute("state", helper.getStateToken());

        System.out.println("code-->"+request.getParameter("code"));

        } else if (request.getParameter("code") != null && request.getParameter("state") != null
                && request.getParameter("state").equals(session.getAttribute("state"))) {
        //  System.out.println("state-->"+request.getParameter("state")+" code-->"+request.getParameter("code"));
            session.removeAttribute("state");

        //  out.println("<pre>");
            /*
             * Executes after google redirects to the callback url.
             * Please note that the state request parameter is for convenience to differentiate
             * between authentication methods (ex. facebook oauth, google oauth, twitter, in-house).
             * 
             * GoogleAuthHelper()#getUserInfoJson(String) method returns a String containing
             * the json representation of the authenticated user's information. 
             * At this point you should parse and persist the info.
             */
            String userInfo=helper.getUserInfoJson(request.getParameter("code"));
                     System.out.println("name-->"+userInfo); 

                     ServletContext context= getServletContext();
                     RequestDispatcher rd= context.getRequestDispatcher("/DashboardAuditDetails");
                     context.setAttribute("msg",userInfo);
                     rd.forward(request, response);
                     return;




        }
    %>

        </div>
    </div>

集成z
我们使“集成”变得容易

这样的代码不属于JSP。使用MVC模式,在controller中执行业务逻辑,并根据结果重定向/转发到适当的JSP(或另一个servlet)。@JozefChocholacek有什么方法可以做到!!它只是实现GoogleOAuth的示例应用程序。它只有2个jsp文件。@JozefChocholacek嗨,我把索引页面中的else if部分移到了仪表板servlet,它工作得很好。谢谢
Apr 07, 2017 12:36:57 PM org.apache.catalina.core.ApplicationDispatcher 
invoke
SEVERE: Servlet.service() for servlet DashboardAuditDetails threw exception
java.lang.NoSuchMethodError: 
com.google.api.client.http.HttpResponseException.<init>
(Lcom/google/api/client/http/HttpResponse;Ljava/lang/String;)V
at com.google.api.client.auth.oauth2.TokenResponseException.<init>
(TokenResponseException.java:57)
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:103)
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:303)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.execute(GoogleAuthorizationCodeTokenRequest.java:147)
at com.tspl.lwp.as.GoogleAuthHelper.getUserInfoJson(GoogleAuthHelper.java:101)
at com.tspl.lwp.servlet.DashboardAuditDetails.doGet(DashboardAuditDetails.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:747)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:485)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:410)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:337)
at org.apache.jsp.jsp.index_jsp._jspService(index_jsp.java:254)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

Apr 07, 2017 12:36:57 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/SoaPoc] threw exception [An exception occurred processing JSP page /jsp/index.jsp at line 170

167:                         ServletContext context= getServletContext();
168:                         RequestDispatcher rd= context.getRequestDispatcher("/DashboardAuditDetails");
169:                         context.setAttribute("msg",userInfo);
170:                         rd.forward(request, response);
171:                         return;
172:                        
173:                        


Stacktrace:] with root cause
java.lang.NoSuchMethodError: com.google.api.client.http.HttpResponseException.<init>(Lcom/google/api/client/http/HttpResponse;Ljava/lang/String;)V
at com.google.api.client.auth.oauth2.TokenResponseException.<init>(TokenResponseException.java:57)
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:103)
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:303)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.execute(GoogleAuthorizationCodeTokenRequest.java:147)
at com.tspl.lwp.as.GoogleAuthHelper.getUserInfoJson(GoogleAuthHelper.java:101)
at com.tspl.lwp.servlet.DashboardAuditDetails.doGet(DashboardAuditDetails.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:747)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:485)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:410)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:337)
at org.apache.jsp.jsp.index_jsp._jspService(index_jsp.java:254)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)