fossil

鸟在笼中,恨关羽不能张飞 人处世上,要八戒更须悟空
posts - 40, comments - 0, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2007年11月30日

     摘要:   阅读全文

BeanSoft 2007-11-03 18:35 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/03/157955.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(183) | 评论 (0)编辑 收藏

BeanSoft 的 AJAX 视频, 电子书集中下载

陆续上传中, 请关注:

http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/AJAX



BeanSoft 2007-11-05 09:30 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/05/158174.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(177) | 评论 (0)编辑 收藏

用户 A 写道:
我从实用的角度上来说 **** 框架/技术是相当烂的一个东西.
从理论上也许先进.

用户 B 反驳道:
我不喜欢听没有证据的东西。不知道你指的"**** 是相当烂的一个东西"什么意思?不知道你使用****有多久?是做了具体的项目体会出来它很烂还是玩了半天就觉得它烂?能不能举出具体的例子?
我认为 **** 很棒,因为这是我在做项目和学习的过程中体会到的。
国外有很多牛人都认为 ****很棒,牛人 XXX 从????年就已经在他的项目中使用了自己的****架构,至今有很多大型的项目都在使用这个****架构。**** 在此之上做了很多的改进,总结了框架 A 和框架 B 的不足,是经过很多考验和实践总结的成果,希望大家不要只花了半天时间就把它否定掉。

 

把 **** 替换成不同的框架/技术, 这就是当前技术推广贴的一贯文风.



BeanSoft 2007-11-05 16:59 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/05/158295.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(181) | 评论 (0)编辑 收藏

http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/MyEclipse中文文档

 

现在放上去的有 JSF 和 Hibernate 的.

目前正在翻译带有 Flash 操作动画的 Spring + Hibernate. 感谢关注.

翻译结束后将根据文档制作视频教程.



BeanSoft 2007-11-06 11:30 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/06/158487.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(238) | 评论 (0)编辑 收藏

Welcome to the home of the Spring Framework, the leading full-stack Java/JEE application framework. Led and sustained by Interface21, Spring delivers significant benefits for many projects, increasing development productivity and runtime performance while improving test coverage and application quality.

Article: Introduction to the Spring Framework 2.5

Technical Article

In this TSS article, Rod Johnson explains what Spring sets out to achieve and how it can help the community develop enterprise Java applications.

Spring Framework Training Summary (November)

News and Announcements
Interface21 is pleased to offer a number of Spring Framework 2.0 and AOP training events in the upcoming period, delivered by the people who build and sustain the Spring Framework. For full details, please visit the main training information page. Here is a summary of some of the upcoming courses and venues:

... plus others

Interested in a full-course of Spring during Winter? The Spring Experience 2007 conference is taking place in sunny Hollywood, Florida, from Dec. 12th-15th.

今天去 http://www.springframework.org/ 看了一眼, 很不幸的首页充斥了培训信息, 还有在中国的...

其实 Spring 的法律上的版权所有者: Interface21 公司, 是有他们自己的网站的. 不过, 开源软件不等于放弃版权, 这个大家一定要清楚啊. 让一个 .org 的网站充满了这样的信息, 真是一种悲哀. 钱, 钱, 钱....



BeanSoft 2007-11-06 11:48 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/06/158490.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(153) | 评论 (0)编辑 收藏

     摘要: MyEclipse 自带的 Hibernate 和 Spring 教程(含视频)翻译, 内容包括: 简介 建议的听众 系统需求 开始工作 反向工程 编写和运行 Hibernate 整合 Spring 代码 小结 常见问题 FAQ 资源 反馈
  阅读全文

BeanSoft 2007-11-07 17:27 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/07/158875.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(204) | 评论 (0)编辑 收藏

原创讲解JSP过滤器和监听器

BeanSoft(刘长炯) 2007年11月

关于这个问题, 比较复杂的说. 不过我希望通过例子来解释会方便理解一些.

假设有一个非常危险的任务, 是九死一生. 需要你揣着炸药包从北平开车走高速路过保定去石家庄把鬼子的碉堡给炸了. 注意: 这个任务十分艰巨, 有可能半路炸药爆炸. 所以出发前你需要苦练10元一本的<<铁布衫>>, 还需要立遗嘱交代一下后事. 下面是路线图:
去时路线: 北平 ==> 高速路收费站入口(都有警察和警犬) A  ==> 保定收费站 B ==> 石家庄收费站 C ==> 炸碉堡 D ==> 转车(刚才的车已经炸没了) E =>
回来路线: 石家庄收费站 ==> 保定收费站 ==> 高速路收费站出口(都有警察和警犬) A ==> 安全回到北平 G

那么我们先简介可能发生的情况.  A 点有可能被警察和警犬发现, 所以你只能被扭送回北平.  即使不被发现, 还可能出现收费时发现10个现大洋一个路口的买路钱没带!! 哎, 只能又回去了. 还有最惨的: 高速路入口写着: 对不起, 到石家庄的路线因为施工不通! 只好回家等着吧.
到了B和C你可能还会被人发现带了炸药包, 或者发现买路费少带了! 极有可能又被扭送回北平, 注意已经在半道了, 是不会让你继续到石家庄的, 所以你会被从车上逮下来, 然后转到警车上带回来!  也就是从 B 或者 C 直接返回.
好了, 最佳情况就是你炸了碉堡, 也成功的返回了. 然后你可以开心的把<<铁布衫>>扔了, 然后宣告遗嘱作废.

OK, 以上过程, 就是过滤器和监听器的真实案例.

那么炸碉堡这个任务, 就相当于要调用 JSP 或者 Servlet 来获得执行结果(炸碉堡 D ).  在执行之前你需要做一些准备工作, 相当于要写一个
监听器 com.allanlxf.ums.web.ServiceListener
在里面你可以做一些事情例如初始化资源, 例如上文的苦练<<铁布衫>>, 立遗嘱, 这个相当于代码中的
public void contextInitialized(ServletContextEvent sce) 这样一个初始化事件.
那么在整个任务完成之后, 这些事情你就要考虑应该作废了, 所以需要
public void contextDestroyed(ServletContextEvent sce) 这样一个销毁事件, 例如把<<铁布衫>>扔了, 然后宣告遗嘱作废, 也就是收回资源.

那么过滤器在哪里呢? 它位于任务的 A B C 点. 注意是双向路程都会经过的. 也就是请求和响应都会经过. 但是过滤器也会检查不同的情况, 例如 A 点实际上有两个过滤功能: 查炸药包和收买路钱. 这就相当于配置了:
  
       sessionFilter
     * *.do
     * REQUEST
     * FORWARD
  
 
两个过滤功能都要检查. 如果成功了怎么办呢? 会继续让你走下一个路口, 注意不是让你直接成功. 也就是代码:
        if(session.getAttribute("user") != null || path.equals("/login"))//若用户已经登录并且当前路径仍然停留在登录页面      {           
           chain.doFilter(request, response);//继续走下面的过滤器或者任务(不保证最终任务, 因为下个过滤器也可能让你回来)
           只有当走到 C 点的时候, 下一步才是执行了最终的任务: 执行JSP或者Servlet.
       }
反过来怎么办? 把你扭送上警车, 强行返回! 这样你连路口 B C 和最终任务都无法访问了. 也就是不会让你访问下一个过滤器和执行最终的 JSP 或者 Serlvet, 可以选择直接返回, 或者放警车上带回去.
       {
           return;// 直接返回
           或者 response.sendRedirect(request.getContextPath() + "/login.jsp");//则扭送上警车, 强行返回到警察局
       }

那么在 E 点发生了什么? 也就是你可能替换掉了原来的 response 对象,  也就是换车. 这意味着你可以在过滤器里私下修改请求和响应对象.

虽然已经不那么抽象了, 但是要理解可能还是需要耐心体会的.

=====================================================================
注: 原始问题

    1.请看下面一段代码和其注释:
import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class SessionFilter extends HttpFilter

{

   public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)

               throws ServletException, IOException

   {

       String path = request.getServletPath();//取得该servlet的路径名称

       path = path.substring(0, path.indexOf("."));   //获得路径中.之前的部分

       HttpSession session = request.getSession();//从请求中取得session为得是从session中读取用户是否登录的标志值

       if(session.getAttribute("user") != null || path.equals("/login"))//若用户已经登录并且当前路径仍然停留在登录页面

       {           

         *  chain.doFilter(request, response);//则将当前滤镜加入到滤镜链条当中

       }else//若用户尚未成功登录

       {

           response.sendRedirect(request.getContextPath() + "/login.jsp");//则使用请求重定向转到登录页面

       }       

   }

}

/*

* 该Filter滤镜类所过滤的是用户在浏览器中输入的

* 当前web application的访问路径,通过判断用户是

* 否成功登录而决定是否对访问路径加以限止

* 在该web application的web.xml配置文件中为

* 该filte滤镜做了相应配置

*/

请问: 上面代码FilterChain对象盛装的是Filter对象, 可它是怎么工作的啊?
加*号的语句是何用意啊,不是过滤路径吗, 为什么要将请求与响应加入呢?

2.请看下面一段代码:

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public abstract class HttpFilter implements Filter

{

   private FilterConfig config;

   public void init(FilterConfig config) throws ServletException

   {

       this.config = config;

       init();

   }

   public void init() throws ServletException

   {

   }

   public String getInitParameter(String name)

   {

       return config.getInitParameter(name);

   }

   public ServletContext getServletContext()

   {

       return config.getServletContext();

   }

   public final void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

               throws ServletException, IOException

   {

       doFilter((HttpServletRequest)request, (HttpServletResponse)response, chain);

   }

   public abstract void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)

               throws ServletException, IOException;

   public void destroy()

   {

   }

}

请问: 该类就这样写了一下,没有包含任何行为,它如何完成过滤工作啊?

3.请看下面代码:
package com.allanlxf.ums.web;

import javax.servlet.*;

//import javax.servlet.http.*;

import com.allanlxf.ums.service.SystemService;

import com.allanlxf.ums.service.StudentService;

public class ServiceListener implements ServletContextListener

{

   public void contextInitialized(ServletContextEvent sce)

   {

       ServletContext application = sce.getServletContext();

       StudentService service = new StudentService();

       application.setAttribute("studentService", service);

       SystemService systemService = new SystemService();

       application.setAttribute("systemService", systemService);

   }

   public void contextDestroyed(ServletContextEvent sce)

   {

   }

}

/*

*本类是该web application的监听器类,在该类中,

*将两个无为本系统提供服务的两个对象写入到了

*application隐含对象中(这样保证在该系统的任何

*地方都能够取得这两个服务类对象的引用)

*在本系统的web.xml文件中对该监听器做了配置

*/

请问: 为什么要将服务类对象写入到程序上下文中呢,直接创建不也一样吗?
     监听器只有这样的功能吗,是否还有其它功能呢?

3.请看下面的配置文件内容:

  
       sessionFilter
       com.allanlxf.ums.web.SessionFilter
  
   
  
       sessionFilter
     * *.do
     * REQUEST
     * FORWARD
  
       
  
       com.allanlxf.ums.web.ServiceListener
   

请问: 加*号的三项是什么意思?

当初老师讲的时候,许多基本的原则原理尚不清楚,这些根本没有听明白,当然,老师也未细讲,只说会用即可, 可是若不能明白其本质,用也只能用这一点儿, 怎么成呢, 希望您能够比较详悉的讲一下. thank you very much!



BeanSoft 2007-11-09 15:05 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/09/159374.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(263) | 评论 (0)编辑 收藏

这是 MyEclipse 帮助文档中的内容的翻译, 点击菜单 Help -> Contents 可以看到 MyEclipse 的全部英文帮助文档.

在线阅读(完整内容含 Flash 动画): http://beansoft.java-cn.org/myeclipse_doc_cn/hibernateintroduction/

下载: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse中文文档/MyEclipseHibernate入门视频中文版.zip 4.07 MB 

友情提示: 下载微软网盘文件时关闭下载工具,  否则你将得到错误的文件, 双击 EXE 会出来 DOS 窗口. 正确操作是点击文件名后能看到显示下载链接和文件大小等信息.

MyEclipse Logo

MyEclipse Hibernate 入门教程中文版(含视频)
翻译: 刘长炯 BeanSoft@126.com
Blog: http://www.blogjava.net/beansoft/
日期: 2007-11-13
声明: 中文文字版权归 刘长炯 所有, 原文及相关的图片等资源的版权归原作者 Genuitec L.L.C 公司所有.

目录

  1. 简介
  2. 建议的听众
  3. 系统需求
  4. Hibernate 介绍
  5. 开始工作
  6. 反向工程
  7. 编写和运行 Hibernate 代码
  8. 小结
  9. 常见问题
  10. 资源
  11. 反馈
 
 

本人原创 MyEclipse 6 帮助文档中文版集中下载

http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/MyEclipse中文文档

 
 
 
 
 
 
 
 


BeanSoft 2007-11-13 18:17 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/13/160288.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(361) | 评论 (0)编辑 收藏

这是 MyEclipse 帮助文档中的内容的翻译, 点击菜单 Help -> Contents 可以看到 MyEclipse 的全部英文帮助文档.

 

下载: http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse_Struts_1.x_Tutorial_zh_CN.pdf  597 KB

 

目录

  1. 前言
  2. 简介
  3. 系统需求
  4. 设置新项目和目录结构
  5. 开始 Struts 项目
    1. Struts 项目的组成部分
    2. 构造我们的应用
  6. 运行示例代码
  7. 小结
  8. 用户反馈

 

页面显示效果:

MyEclipse Struts 1.x Tutorial



BeanSoft 2007-11-16 00:45 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/16/160876.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(412) | 评论 (0)编辑 收藏

MyEclipse 6 实战开发讲解视频入门 6 Web 入门开发 - JSP/HTML/JDBC 登录

本视频介绍了开发中最难而又最容易被轻视的部分: JSP, 部分是因为很多人过分夸大了 Web 层框架例如 Struts 1 or 2, Spring MVC, JSF, Wichet 等等的作用(事实上对于编写复杂的页面, 这些框架都没多大帮助). JSP 是表现层, 实际上不是那么容易做好的, 因为它综合了 Web 层的几乎所有技术, 包括但不限于 DHTML, JavaScript, CSS, AJAX, 缓存等.

友情提示: 下载微软网盘文件时关闭下载工具,  否则你将得到错误的文件, 双击 EXE 会出来 DOS 窗口. 正确操作是点击文件名后能看到显示下载链接和文件大小等信息.

代码: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/6_JSPHelloWorld.zip 445KB

视频(第一部分):  http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_6_1.exe 22分05秒 8.20MB

视频(第二部分):  http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_6_2.exe 40分26秒 10.5 MB

1. 新建 Web 项目
2. 编写首页,登录提交表单页面并加入客户端表单验证 JavaScript, 超链接CSS
3. 编写后台 Java 类 - 业务层(Biz Layer)和数据层(DAO)
4. 编写 JSP, 加入必要的验证并调用后台业务类
5. 测试运行, 验证登录和退出
6. SQL 注入: 用户输入名字为 user' or '1' = '1 拼出的攻击SQL为:
    select * from myuser where user = 'user' or '1' = '1' and password = 'abc'

视频截图:

image

image



BeanSoft 2007-11-19 09:24 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/11/19/161502.html

posted @ 2007-11-30 20:57 J2EE UP UP 阅读(587) | 评论 (0)编辑 收藏