2016-12-08 5 views
-1

Rest WebサービスはPostmanと連携して動作します。しかし、JSPで動作しないでください。私はJavascriptで試しました。しかし、働かないでください。私はあなたの助けを待っています。おかげJspはヘッダを追加しません

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<body> 
<%@page import="com.sun.research.ws.wadl.Request" %> 
<%@ page 
     import="org.apache.http.*,com.burakmollaoglu.DEMO.HMAC,javax.ws.rs.core.HttpHeaders,com.squareup.okhttp.*,java.net.URL, java.util.*" %> 
<form action="api/echo" method="POST" enctype="application/x-www-form-urlencoded"> 
    Message: <input type="text" name="message"> 
    <br> 
    <input type="submit" value="Submit"/> 
</form> 
<br> 
<table> 
    <% 
     long CurrentMillisecond = System.currentTimeMillis(); 
     out.println(CurrentMillisecond); 
     HMAC hmac = new HMAC(); 
     String CurrentMillisecondEncyrepted = hmac.hmacCrypto(String.valueOf(CurrentMillisecond), "DEMO", "HmacSHA1"); 
     out.println(CurrentMillisecondEncyrepted); 


     request.addHeader("CurrentMillisecond", CurrentMillisecond); 
     request.addHeader("CurrentMillisecondEncyrepted", CurrentMillisecondEncyrepted); 
     Enumeration headerNames = request.getHeaderNames(); 
     while (headerNames.hasMoreElements()) { 
      String paramName = (String) headerNames.nextElement(); 
      out.print("<tr><td>" + paramName + "</td>\n"); 
      String paramValue = request.getHeader(paramName); 
      out.println("<td> " + paramValue + "</td></tr>\n"); 
     } 
    %> 
</table> 
</body> 
</html> 

はここにスクリーンショットです:

+2

あなたが "動作しない" とはどういう意味ですか?ビジネスロジックをJSPでスクリプトレットに置くことは悪いことです。このコードを別のJavaクラスに入れてください。 – Jesper

+0

ヘッダーがnullです –

+0

コードがわかりません。 'request'はコンテナが利用できる暗黙のJSPオブジェクトです。読み取り専用のインタフェースであるjavax.servlet.http.HttpServletRequestのインスタンスです。コンテンツやヘッダーは変更できません。 https://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/http/HttpServletRequest.htmlを参照してください。 'request.addHeader'は存在しません。どのようにコードをコンパイルしていますか? – pedrofb

答えて

-1
@Path("echo") 
public class MyService { 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getIt() { 
     return "Wrong way"; 
    } 
    @POST 
    @Produces("text/html") 
    public Response getMessage(@Context HttpHeaders headers,String message){ 
     String CurrentMillisecondString=null; 
     String CurrentMillisecondEncyrepted=null; 

     if(headers.getRequestHeader("currentmillisecond")!=null) 
      CurrentMillisecondString=headers.getRequestHeader("CurrentMillisecond").get(0); 
     if(headers.getRequestHeader("CurrentMillisecondEncyrepted")!=null) 
      CurrentMillisecondEncyrepted=headers.getRequestHeader("CurrentMillisecondEncyrepted").get(0); 
     long now = System.currentTimeMillis(); 
     CurrentMillisecondString+CurrentMillisecondEncyreptedString; 
     StringBuffer stringBuffer = new StringBuffer(); 
     String headerValue = ""; 
     return Response.status(200).entity("CurrentMillisecondString:"+CurrentMillisecondString+"\n"+"CurrentMillisecondEncyrepted:"+CurrentMillisecondEncyrepted).build(); 
    } 
} 
関連する問題