访问Servlet API(使用WebContext) web.xml文件配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Java处理类
package com.lbx.dwr.servlet;
import org.directwebremoting.WebContextFactory;
public class AddSession {
//该方法用于将name参数添加为一个HttpSession属性
public void addSession(String name){
//通过WebContextFactory访问Servlet API
WebContextFactory.get().getSession(true).setAttribute("username", name);
}
}
dwr.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="Demo">
<param name="class" value="com.lbx.dwr.servlet.AddSession"/>
</create>
</allow>
</dwr>
客户端jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>访问Servlet API(使用WebContext)</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type='text/javascript' src='dwr/interface/Demo.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
</head>
<body>
<h3>
访问Servlet API
</h3>
请输入您的名字
<input id="name" name="name" type="text" />
<br />
<input type="button" value="添加session属性"
onclick="Demo.addSession(dwr.util.getValue('name'));" />
<div id="sessionMsg"></div>
</body>
</html>
测试jsp代码,看是否将值放到Session中去了
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>访问Servlet API</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
${sessionScope.username} <br>
<%=request.getSession().getAttribute("username") %>
</body>
</html>
相关推荐
1. DWR提供了安全机制,如CORS(跨源资源共享)配置,防止非法的跨域访问。 2. 可以通过配置DWR来限制允许的JavaScript方法调用,避免敏感操作被误触发。 3. 为了提高性能,可以启用DWR的缓存机制,减少不必要的网络...
- **配置DWR**:需要在Web应用的`web.xml`文件中添加DWR的servlet配置,以启用DWR服务。 - **创建Remote Classes**:定义要在客户端使用的服务器端Java类,并使用DWR的注解(如`@RemoteClass`)标记它们。 - **...
在本文中,我们将深入探讨DWR的API大全,以及它如何帮助开发者构建动态、交互性强的Web应用程序。 1. **DWR的核心组件** DWR由三个主要组件构成:Engine、Servlet和Reverse Ajax。Engine是核心,负责处理所有通信...
在"DWR的访问DAO和Servlet"这个主题中,我们将探讨如何利用DWR的技术特性,结合DAO和Servlet实现高效、实时的Web应用交互。 首先,我们需要在服务器端创建一个Servlet,该Servlet将作为DWR的入口点。Servlet会配置...
2. **DWR的跨域解决方案**:DWR通过提供动态生成的JavaScript文件和Servlet来实现跨域。这些JavaScript文件包含对服务器端方法的引用,使得前端可以安全地调用后端服务。DWR的CORS支持可以通过配置文件或注解来启用...
6. **DWR的API**:DWR提供了几个核心接口和类,如`Engine`、`Util`和`Call`,它们构成了DWR的JavaScript API,帮助开发者更方便地进行Ajax开发。 7. **版本差异**:虽然示例基于DWR 1.1,但需要注意的是,DWR后续...
2. **创建可远程调用的Java类和方法**: 标记这些类和方法为可被DWR访问。 3. **生成JavaScript接口**: DWR会自动根据Java类生成对应的JavaScript接口,这些接口可以直接在客户端调用。 4. **在HTML/JavaScript中使用...
< servlet-class > uk.ltd.getahead.dwr.DWRServlet </ servlet-class > < param-name > debug < param-value > true </ servlet > < servlet-mapping > < servlet-name > DWR </ servlet-name > ...
`dwr.jar`包含了DWR的所有核心类和库,而`servlet-api.jar`则提供了Servlet API,使得DWR可以与Web服务器进行交互。 **配置文件**在DWR中扮演着重要角色。有两个主要的配置文件:`dwr.xml`和`web.xml`。 1. **dwr....
考虑到安全性,你可以限制DWR允许访问的IP地址,设置session超时等。对于性能优化,可以考虑启用缓存,控制并发请求的数量,以及合理地组织DWR调用。 7. **调试与日志** DWR提供了丰富的调试和日志功能。通过调整...
在实际项目中,将dwr.jar添加到项目的类路径中,然后在web.xml中配置DWR的servlet,最后根据项目需求调整dwr.xml文件,就可以开始利用DWR的强大功能了。DWR支持多种服务器环境,如Tomcat、Jetty等,并且兼容各种现代...
- **不支持方法重载**:DWR不支持JavaScript中的方法重载,因此在Java中设计API时应避免使用相同方法名但参数不同的情况。 ### 结语 DWR简化了服务器推送技术的实现,让开发者能够轻松创建实时交互的Web应用。通过...
2. **DWR Servlet**:声明一个名为`dwr-invoker`的Servlet,它会处理DWR的请求。在这里,你需要指定Servlet的类名`org.directwebremoting.servlet.DwrServlet`。 3. **DWR初始化参数**:设置DWR的一些配置参数,...
2. **配置DWR**:在Web应用的web.xml文件中配置DWR的Servlet,定义允许访问的类和方法。 3. **创建Java接口**:在服务器端定义要暴露给JavaScript调用的Java接口和类。 4. **生成JavaScript文件**:DWR会自动生成...
例如,限制可访问的服务器端方法,启用DWR的安全特性,以及考虑缓存策略以减少不必要的服务器通信。 总结,Spring与DWR的集成使得开发高效、实时的Web应用变得更加便捷。通过这种方式,开发者可以充分利用Spring的...
1. **引入DWR库**:在Web应用中添加DWR的JAR文件,并在Web.xml中配置DWR的Servlet。 2. **创建Java接口**:定义要在客户端使用的Java接口,这些接口将被DWR暴露给JavaScript。 3. **生成配置文件**:使用DWR生成器...
DWR提供了一些安全机制,如跨域访问控制、JavaScript混淆等,以防止未经授权的访问。同时,DWR还支持批处理、缓存策略等优化手段,以提升应用性能。 ### 8. DWR与其他技术结合 DWR可以与Spring、Hibernate等其他...
4. **前端JavaScript调用**:现在,你可以在JavaScript中使用DWR的API来调用后端方法。例如: ```javascript var myService = new MyService(); myService.someMethod(param1, function(response) { // 处理返回...
2. **DWR架构**:DWR由三个主要部分组成:`Engine`、`Servlet`和`JavaScript API`。`Engine`处理所有的远程调用,`Servlet`是部署在服务器上的组件,负责处理HTTP请求,`JavaScript API`则提供了在客户端调用服务器...