Go-ForIt 记事:eXtreme DragonSlayers 学术报告,第 4 部分
2009-11-06 00:00:00 来源:WEB开发网用户在站点注册时,我们收集信息:他们的姓名、地址、电话号码、他们是消费者还是 PA 或者两者都是、信用卡信息、用户标识以及密码。然后这些信息将存储到数据库中。
因为用户需是持久的且需参与事务的处理,所以他们表现为一个实体 Bean,位于服务器端的 EJB 容器体内。HTML 页调用注册 Servlet。注册 Servlet 在客户端的 Web 容器中。它从请求对象中读取所有参数,并将其在用户对象中用 set 方法进行设置。分别地设置每个参数需要调用相应的 set 方法。由于我们不想在 User EJB 组件上使用远程方法调用,因此使用了一个叫做 UserDataBean 的客户端的 Bean。 这个 Bean 与客户端的 Servlet 位于同一个 Web 容器中。如下面的代码范例所示,该 Servlet 实例化了一个 UserDataBean ,并设置了其中的所有参数。
清单 1:注册 Servlet 设置 UserDataBean 中的数据
\** This is sample code for performTask method of Registration Servlet**\
public void performTask(
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse res) {
//instantiate the Client Side Bean
UserDataBean user = new UserDataBean();
UserRegistersCommandBean dataCommand = new UserRegistersCommandBean();
try {
/*
* Retrieve the form fields
*/
user.setAltphone(req.getParameter("alternatePhone"));
user.setCcname(req.getParameter("nameOnCreditCard"));
user.setCcnum(req.getParameter("creditCardNumber"));
user.setCctype(req.getParameter("creditCardType"));
// convert from the string to an SQL date type.
// Day doesn't matter so we use 28 in all cases
String dateString =
req.getParameter("expirationYear")
+ "-"
+ req.getParameter("expirationMonth")
+ "-28";
java.sql.Date date = java.sql.Date.valueOf(dateString);
user.setExpdate(date);
//
user.setFname(req.getParameter("firstName"));
user.setMidinit(req.getParameter("middleInitial"));
user.setLname(req.getParameter("lastName"));
user.setPassword(req.getParameter("password"));
user.setCity(req.getParameter("city"));
user.setStreet1(req.getParameter("address1"));
user.setStreet2(req.getParameter("address2"));
user.setTitle(req.getParameter("title"));
user.setTstamp(Long.toString(System.currentTimeMillis()));
user.setCctype(req.getParameter("creditCardType"));
user.setUserid(req.getParameter("userid"));
user.setState(req.getParameter("state"));
user.setZip(req.getParameter("zipCode"));
user.setEmail(req.getParameter("email"));
user.setPhone(req.getParameter("phone"));
user.setType(getUserType(req));
/*
* Update database with new user information
*/
try {
dataCommand.setUser(user);
dataCommand.execute();
} catch (Exception e) {
.........
}
/* Create/update session object to record new user information */
HttpSession session = null;
session = req.getSession(true);
session.putValue("user", user);
req.setAttribute("user", user);
String userType = user.getType();
/* Forward to HTML View JSP */
if (userType.equals(UserDataBean.CUSTOMER)) {
/* Forward to HTML View JSP */
getServletConfig()
.getServletContext()
.getRequestDispatcher("pages/customer_main_menu.jsp")
.forward(req, res);
} else {
/* set the paErrandList in the session to null */
com.goforit.ejb.Errand paErrandList = null;
session.putValue("paErrandList", paErrandList);
if (userType.equals(UserDataBean.PA)) {
/* Fill in PA Stuff */
getServletConfig()
.getServletContext()
.getRequestDispatcher("pages/pa_profile_edit.jsp")
.forward(req, res);
} else {
/* Forward to HTML View JSP */
getServletConfig()
.getServletContext()
.getRequestDispatcher("pages/pa_profile_edit.jsp")
.forward(req, res);
}
}
} catch (Throwable t) {
........
}
}
- ››Godaddy域名解析使用DNSPOD方法
- ››GOV.CN域名解析修改
- ››Google搜索引擎的奥秘
- ››Google测试搜索结果页面右侧内容更丰富的信息栏
- ››Google Dart精粹:应用构建,快照和隔离体
- ››google的代码审查
- ››google analytics清晰追踪爬虫的爬行信息
- ››Google+中文用户在两千万Google+大军中是少数派
- ››Google AdWords最昂贵点击成本的20种关键词分类
- ››Google运作经理Bryan Power给出的GOOGLE求职意见
- ››Google用户体验的十大设计原则
- ››Google Analytics(分析)能为网站带来什么
更多精彩
赞助商链接