DWRサーブレットAPIへのアクセス
5331 ワード
DWRは、サーブレットAPIにアクセスする2つの方法を提供します.はWebContextクラスを使用し、WebContextはWebContextFactoryによって生成され、 を得るための静的方法get()を提供する.サーブレットAPIに直接アクセスする、すなわち方法でHttpSession として参照される
サーブレットAPIへのアクセス(WebContextを使用) Web.xmlファイル構成
サーブレット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>
行ったかどうかを見ます.