jax-rs(Java API for RESTful Web Services) 實踐教程 之四 —— @Context注入HttpServletRequest 使REST保持狀態!__Java

來源:互聯網
上載者:User

 轉載請註明出處http://blog.csdn.net/exsuns

 

 

jax-rs提供了一個註解注入的方式來取得用戶端的資訊

當jax-rs服務基於servlet發布的時候 ,還可以通過@Context注入servlet中的ServletConfig , ServletContext , HttpServletRequest , HttpServletResponse

然後REST就可以通過sessionid來保持住使用者狀態


使用方法:

 

建個web工程,並加入jax-rs(jsr311)的JAR包


建立一個類

@Path("UserContext") public class UserContext { @Context UriInfo uriInfo; @Context HttpHeaders httpHeaders; @Context SecurityContext sc; @Context Request req; @Context Response resp; @Context HttpServletResponse response; @Context HttpServletRequest request; @GET public String hi(@QueryParam("name") String yourName ){ if(yourName!=null) request.getSession().setAttribute("name", yourName); String username = (String) request.getSession().getAttribute("name"); if(username!=null){ System.out.println(request.getSession().getId() + ":" + username); } else{ System.out.println(request.getSession().getId() + "沒有使用者"); } return null; } }



<!--在web.xml加入--> <servlet> <display-name>JAX-RS REST Servlet</display-name> <servlet-name>JAX-RS REST Servlet</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JAX-RS REST Servlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>



部署部運行

http://localhost:8080/rest/services/UserContext

後台會提示:

A46756539D2E39CC2CFFCB3FE1C99E70沒有使用者



然後運行

http://localhost:8080/rest/services/UserContext?name=hello

後台會出現

A46756539D2E39CC2CFFCB3FE1C99E70:hello

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.