在DWR中呼叫Http Servlet 物件
轉自http://www.blogjava.net/patterns/archive/2006/04/07/dwr_access_servletobjects.html
我們在實際的 web 應用開發過程中,在使用者登入後會向 session 中塞入一些資訊(例如使用者資訊,選單資訊等),在頁面提交後,會從 session 中取出這些資訊,拼成完整的業務記錄,儲存到資料庫中。此時就要求 DWR 可以與 Servlet 物件通訊。
其實 DWR 已經考慮好了,在 DWR1.1 中可以利用 uk.ltd.getahead.dwr.WebContext 和 uk.ltd.getahead.dwr.WebContextFactory 來和 Http Servlet 的標準物件進行通訊,包括:
l HttpServletRequest l HttpServletResponse l HttpSession l ServletContext l ServletConfig |
具體的使用方法如下:
import javax.servlet.http.HttpServletRequest; import uk.ltd.getahead.dwr.WebContext; import uk.ltd.getahead.dwr.WebContextFactory;
/// WebContext ctx = WebContextFactory.get(); HttpServletRequest req = ctx.getHttpServletRequest(); |
WebContext 是使用 ThreadLocal 儲存的,你可以看一下 uk.ltd.getahead.dwr.impl.DefaultWebContextBuilder 原始碼,所以可以在任何地方使用它,例如在上一篇的 demo 中進行測試如下:
在 index.html 頭部增加如下程式碼並改名為 index.jsp
<%@ page contentType="text/html; charset=GBK" %>
<% System.out.println("This is DWR servlet object!");
session.setAttribute("dwr","love dwr"); %> |
修改 MessageDao.java 的程式碼如下
package test.dwr;
import javax.servlet.http.HttpServletRequest;
import uk.ltd.getahead.dwr.WebContext; import uk.ltd.getahead.dwr.WebContextFactory;
public class MessageDao { public Message save(Message message) {
WebContext ctx = WebContextFactory.get(); HttpServletRequest req = ctx.getHttpServletRequest();
System.out.println("========HttpServletRequest Begin======="); System.out.println("req:" + req.getRemoteHost()); System.out.println("req-session:" + req.getSession().getAttribute("dwr")); System.out.println("text:" + req.getParameter("text")); System.out.println("from:" + req.getParameter("from")); System.out.println("=========HttpServletRequest End========");
System.out.println("========Lucky DWR Begin======="); System.out.println("text:" + message.getText()); System.out.println("from:" + message.getFrom()); System.out.println("=========Lucky DWR End========");
return message; }
public Message get() { return new Message("This is the first dwr demo!", "test"); } } |
相關文章
- Servlet中的response物件Servlet物件
- Servlet呼叫過程Servlet
- Servlet&HTTP&RequestServletHTTP
- jsp隱式物件-Servlet物件JS物件Servlet
- Servlet第二篇【Servlet呼叫圖、Servlet細節、ServletConfig、ServletContext】ServletContext
- 3.Servlet物件Servlet物件
- Servlet、HTTP詳細解釋!ServletHTTP
- JavaWeb Servlet Http協議 HttpServletRequestJavaWebServletHTTP協議
- Servlet基礎教程之呼叫流程Servlet
- 詳解SSH 框架中物件呼叫流程框架物件
- servlet 呼叫jdbc 出現得問題ServletJDBC
- Dapr Java Http 呼叫JavaHTTP
- Http介面呼叫示例教程HTTP
- 在nodejs中體驗http/2NodeJSHTTP
- 在 JavaScript 中如何克隆物件?JavaScript物件
- Dapr DotNet5 HTTP 呼叫HTTP
- 在Dynamics AX 2009中呼叫Crystal Reports
- 在python程式中呼叫java程式碼PythonJava
- JavaWeb基礎(day15)( http + tomcat + servlet + 響應)JavaWebHTTPTomcatServlet
- JavaWeb DWR使用總結(skycto JEEditor框架功能)JavaWeb框架
- Spring HTTP invoker (spring框架中的一個遠端呼叫模型)SpringHTTP框架模型
- jsp錯誤: "javax.servlet.http.HttpServlet" was not found on the Java Build PathJSJavaServletHTTPUI
- Java中Servlet技術JavaServlet
- 在CMakeLists.txt中設定版本號,並在程式碼中呼叫
- 物件呼叫動態變數物件變數
- Qt中多個原始檔中呼叫同一引數或物件等QT物件
- Java物件在JVM中長啥樣Java物件JVM
- 【OracleEBS】 在PL/SQL中呼叫Oracle ERP請求OracleSQL
- 在例項中呼叫 Invoke 型別的類型別
- 在web.xml檔案中配置Servlet時,主要配置哪些資訊?WebXMLServlet
- 關於EL在JSP內呼叫RequestScope內建物件報錯的問題JS物件
- SpringBoot 中的 Servlet Web 容器Spring BootServletWeb
- go物件導向方法的呼叫Go物件
- Swift在擴充套件中關聯物件Swift套件物件
- 在 JavaScript 中如何檢查物件為空JavaScript物件
- 在JavaScript中,DOM物件與jQuery物件的區別與轉換JavaScript物件jQuery
- 在spring中獲取代理物件代理的目標物件工具類Spring物件
- 服務之間的呼叫 HTTP代替RPC?HTTPRPC
- go微服務系列(三) - 服務呼叫(http)Go微服務HTTP