魔兽争霸与Struts

2008-03-21 – 21:04 - 398 views

最近在学习Struts,但是一直进展不大,对看书没什么耐心,感觉自己对视频教学接受能力比较好,但是不是所有技术都有视频的,所以学会看书学习才是正途!

在网上找到了一段比较有意思的对Struts的理解,感觉有点帮助:

13100750477

解释:这里涉及到了以下几个东东:金矿、金子、人族农民、人族农民脑子里的意识、人族基地。我的比喻分析如下:

  1. 金矿就好比Web页面,里面装满了客户需要处理的数据。
  2. 金子理所当然就是客户数据了。
  3. 人族农民就好比起封装数据、数据传输作用的ActionForm了。
  4. 人族农民脑子里的意识,它决定这金子要往基地里放,就好比Struts-config.xml文件,控制着ActionForm的跳转以及与相应Action类的对应关系。
  5. 人族基地获得农民运来的金子后,然后进行处理转化成战争资源,好比对应的Action类,对获得的数据后进行业务处理。

  农民从金矿里背着金子放基地里,这个非常不引人注意的过程归结到我们技术的说法是,ActionForm封装了客户Web页面表现层上的数据,然后通过配置文件的设置,找到ActionForm与Action的对应关系,把数据传递给对应的Action类,再由Action类做相关的业务处理。

 Tags: , , ,

Java CodeConventions

2008-03-14 – 14:54 - 1,325 views

I spent much more time on finding the java code conventions because of my poor english ! Maybe I need practice english more~

JavaCodeConventions

 Tags: , ,

Servlet程序设计

2008-03-07 – 19:27 - 666 views

Java Servlet是一种使用Java编写的CGI程序

  • CGI:通用网关接口
  • 与传统的CGI不同,Servlet是一种多线程处理模式--性能较高
  • 在Servlet中可以控制输出HTML代码,则所有的HTML代码必须使用out.println()一行一行输出

Servlet的生命周期

  1. 初始化(1次) 
    • public void init(ServletiConfig config) throws ServletException
      Servlet初始化有两种方式
      • init():当不需要传递初始化参数时使用
      • init(ServletConfig config) :如果使用这种初始化方法,则上面的无参初始化方法无效,这种方式适用于需要传递初始化参数
  2. 服务(多次)
    • doGet();表单和地址输入都为GET请求
    • doPost(); 只有表单输入为POST请求
  3. 销毁(1次)
    • 服务器关闭
    • 此Servlet长时间不使用

简单Servlet编写

  1. Servlet直接继承直HttpServlet
  2. 在doPost(doGet)方法中写入相应的程序代码
  3. 配置WEB.XML文件
    • JSP程序的功能与Servlet一致,意味着Servlet程序同样可以被外部所访问,就必须有一个地址,这只能通过WEB映射解决
      • 修改web.xml文件可以配置映射地址
        //表示要使用一个Servlet
        <servlet> 
              //在web.xml文件内部起作用的名字 
              <servlet-name>Simple</servlet-name> 
              //servlet程序所在包.类名称 
              <servlet-class>net.hialex.Servlet.SimpleServlet</servlet-class>      
        </servlet>
        //servlet映射地址
        <servlet-mapping> 
             //在web.xml文件内部起作用的名字,与上面的名字一致 
             <servlet-name>Simple</servlet-name> 
             //具体映射路径,前面必须要有一个/ 
             <url-pattern>/demo</url-pattern>      
        </servlet-mapping>
  4. 注意:
    • 在编译servlet时可能会遇到找不到servlet包的问题,这是因为servlet为JDK的扩展包,所以在使用时需要指定classpath
    • 若不指定classpath可以将servlet.jar文件拷贝到JSK安装路径下的jre\lib\ext下
  5. 结论:在Tomcat中,存在servlet的全部库文件(%Tomcat_HOME%\lib\servlet-api.jar)

HttpServlet类

  • 继承自GenericServlet类并增加了doGet()、doPost()等七个方法
  • doGet()方法:当客户端发送get请求时就调用doGet()方法,HTTP缺省的就是Get
  • doPost()方法:当客户端发送HTTP请求调用POST方法调用doPost()方法

对于一个基本的Servlet程序必须注意以下几点:

  1. 首先一定要符合Servlet程序的开发框架
  2. 配置web.xml文件
  3. Servlet的缺点是不适合输出大量的HTML代码

Read the rest of this entry »

 Tags: , , , , , ,

Oracle故障两例

2008-03-04 – 17:44 - 330 views

由于在学JSP的过程中会用到Oracle,所以我在自己的机器上装上了Oracle 10g,但是在安装使用过程中遇到两个问题。

1.OracleDBConsole服务不能启动,访问“http://机器名:1158/em”不能进入EM界面,系统事件查看器里面记录“Agent process exited abnormally during initialization.”

  • 网上有很多这个问题的解决方案,我也试了不少,对我这么个Oracle菜鸟来说实在太痛苦了,因为自己不知道怎么解决,所以这个说法要试一试,那个说法也要试试,但是一直没解决,今天终于搞定了,下面给出我的情况的解决方法:
  • 网上解决Oracle服务不能启动最多的做法是修改host文件,即%ORACLE HOME%\db_1\NETWORK\ADMIN\listener.ora文件,修改其中的HOST=内容,我也试了下,但是也没解决,今天我突然发现listener.ora文件中的HOST =XXX的XXX与我的机器名不一致,但是我自从安装oracle之后就没有改变过机器名,但是我还是照着网上的做法修改了HOST=机器名,重新启动OracleDBConsole服务,发现还是不能解决问题,后来我又撤销了修改,把机器名改成了HOST=XXX的XXX,启动服务,发现服务能正常启动,故障排除,后来我想了想可能是因为我在安装Oracle过程中选择的是高级安装模式,而在机器名中使用了默认的localhost而不是自己实际的机器名称,所以会出现这样的问题。

2.在打开EM登陆页面之后,用SYS登陆,发现首页有个错误,提示“java.lang.Exception: Exception in sending Request :: null”,继续上网寻找,在Oracle论坛上终于找到了解决方法:

  • 打开$ORACLE_HOME/<global_db_name>_<db_sid>/sysman/config/emd.properties文件,在其中查找agentTZRegion将后面的GMT修改成你所在时区,比如说agentTZRegion=Asia/Shanghai,重新启动OracleDBConsole服务,OK!
  • 关于时区的列表参考:10.2.0\db_1\sysman\admin\supportedtzs.lst

P.S 512Mb的机器跑Oracle 10g真痛苦!~

 Tags: , , ,

革命尚未成功

2008-03-03 – 22:03 - 234 views

今天又是公布CET成绩的时候,去年12月份的考试自我感觉还可以,虽然准备还是那么地不充分,但是去年的阅读感觉比较简单所以又给我一丝信心,所以今天查成绩还是有点期待的。

上午是有课的,9:00出成绩,没法上网查,所以只能用手机发短信查,一块钱一条,可能是因为查的人比较多,我发出短信等了很长时间都没有收到回信,所以我又发了一条,也就是说今天查成绩花了2块钱,如果最后查出来过了,我觉得这2块钱会很值,但是很不幸,仍然没过,甚至继续没过4!

距离大学毕业考CET的机会只剩下2次了,但是如果我想要拿着CET-6成绩单的话,我必须要在6月份的考试中通过,只有这样我才能在明年4,5月份找工作的黄金时间能有CET6成绩单给我壮胆!

我高中的一个同学,她大一上学期就把CET-4过了,然而今天她才将CET-6过了,呵呵,她考了好多次的六级,今天她的成绩很强大--563!额,我在想匀100分给我多好啊,呵呵!~

六月的六级,破釜沉舟,必须拿下!!!!

革命尚未成功,同志仍需努力!!!

 Tags: , , , ,