待熟悉的工具或API清单列表
1、Properites 加载配置文件 web路径设置
2、CommonUtils.uuid()
3 、TxQueryRunner c3p0数据库连接池
4、MailUtil (邮箱的smtp服务要打开 否则 fail connected)
5、MessageFormat 完成对占位符的替换
6、将表单数据封装到user对象中 User formUser = CommonUtils.toBean(req.getParameterMap(), User.class);
7、alt+shit+s 弹出菜单
8、自定义异常 在UserService层抛出 UserServlet层捕获异常 并且设置request域 转发到msg.jsp页面
1 UserService 2 3 try { 4 User user = userDao.findByCode(code); 5 if (user == null) 6 throw new UserException("无效的激活码"); 7 if (user.isStatus()) 8 throw new UserException("您已经激活过了,不能二次激活!"); 9 userDao.updateStatus(user.getUid(), true); 10 } catch (SQLException e) { 11 // TODO Auto-generated catch block 12 throw new RuntimeException(e); 13 }
1 UserServlet 2 // 激活功能 3 public String activation(HttpServletRequest req, HttpServletResponse resp) { 4 //System.out.println("activation"); 5 //1、获取激活码 6 //2、交给service 的 activation功能来激活 7 //service方法可能跑出异常 把异常信息拿来保存到request中 8 //转发到msg.jsp显示 9 String code=req.getParameter("activationCode"); 10 try { 11 userService.activation(code); 12 req.setAttribute("code", "success"); 13 req.setAttribute("msg", "恭喜激活成功,请马上登录!"); 14 } catch (UserException e) { 15 req.setAttribute("msg", e.getMessage()); 16 req.setAttribute("code", "error"); 17 18 } 19 return "f:/jsps/msg.jsp"; 20 }
9、关于将sqlException IoException 转化为 new RuntimeException(e)的事。
10、关于cookie添加path 登录功能中 刷新登录界面 并不能在用户名输入框中自动填充上一次登录过的用户
11、 EL 的内置对象cookie el表达式先执行 所以若不加双引号 在没有执行javascript之前 已经变成王八啦 所以要加双引号
1 <script type="text/javascript"> 2 $(function(){ //Map<String<Cookie名称>,Cookie<cookie本身>> 3 //el表达式先执行 所以若不加双引号 在没有执行javascript之前 已经变成王八啦 所以要加双引号 4 //获取cookie中的用户名 5 var loginname=window.decodeURI("${cookie.loginname.value}"); 6 //获取回显的用户名 7 if("${requestScope.user.loginname}") 8 { 9 loginname="${requestScope.user.loginname}"; 10 } 11 $("#loginame").val(loginname); 12 13 }); 14 </script>
12、web中的debug模式 server启动debug
13\超链接里面的中文 UrlEncoder转码 百分号
1 <a href="<c:url value='<c:url value='/BookServlet?method=findByAuthor=${book.author}'/>" name='P_zz' 2 title='Craig Walls'>${book.author}</a>
变为
1 <%--url标签会自动对参数进行url编码 --%> 2 <c:url value="/BookServlet"var="authorUrl"> 3 <c:param name="method" value="findByAuthor"></c:param> 4 <c:param name="author" value="${book.author }"></c:param> 6 </c:url> 7 <p> 8 <a href="${authorUrl }" name='P_zz' 9 title='Craig Walls'>${book.author }</a> 10 </p>
14两张表的单独操作考虑将他放到一个事物中处理。
1 try{ 2 JdbcUtils.beginTransaction(); 3 PageBean<Order> pb=orderDao.findByUser(uid, pc); 4 JdbcUtils.commitTransaction(); 5 return pb; 6 7 }catch(SQLException e) 8 { 9 try { 10 JdbcUtils.rollbackTransaction(); 11 } catch (SQLException e1) { 12 throw new RuntimeException(e); 13 } 14 15 }