首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

泛型编程范例之(二)

2012-12-18 
泛型编程实例之(二)基本泛型类:?public abstract class SessionServiceBaseT {public abstract String g

泛型编程实例之(二)

基本泛型类:

?

public abstract class SessionServiceBase<T> {public abstract String getStringFromEntry(T entry);           /** * 存储介质的存储string,比如cookie里、threadlocal里等 *  * @param value * @param seconds */public abstract void setString(String value, int seconds);public void set(T entry) {// 写入cookieset(entry, 3600 * 24 * 30); // 默认30天}public final void set(T entry, int seconds) {String value = getStringFromEntryInternal(entry);setString(value, seconds);}String getStringFromEntryInternal(T entry) {String s = getStringFromEntry(entry);return StringUtil.signContent(s, getSalt());}}

?抽象泛型类的实现类:

public class CookieSessionService extends SessionServiceBase<User> {private tools.web.CookieUtil cookie = null;。。。@Overridepublic void setString(String arg0, int arg1) {try {cookie.set(name, URLEncoder.encode(arg0, ENCODING), domain, null,arg1);} catch (UnsupportedEncodingException e) {}}}

?

调用它的类:

public class Request extends HttpServlet {protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {long startTime = System.currentTimeMillis();request.setCharacterEncoding("GBK");String action = request.getParameter("action");    ....if ("auth".equalsIgnoreCase(action)) {auth(request, response);return;  ....private void auth(HttpServletRequest request, HttpServletResponse response) {String name = request.getParameter("name");CookieSessionService cs = CookieSessionService.create(request,response, "auth", null);User u = new User();u.setUserId(0);u.setUserName(name);u.setData(request.getParameter("data"));cs.set(u);}}
?

?

?

热点排行