BlogJava-当Johnica遇上Java-随笔分类-Web开发http://www.blogjava.net/johnica/category/14048.html人生因踏实而非凡zh-cnTue, 27 Feb 2007 13:27:47 GMTTue, 27 Feb 2007 13:27:47 GMT60基于Struts的jsp+javabean系统一般开发流程和技巧http://www.blogjava.net/johnica/archive/2006/09/06/68146.htmlJohnicaJohnicaWed, 06 Sep 2006 15:18:00 GMThttp://www.blogjava.net/johnica/archive/2006/09/06/68146.htmlhttp://www.blogjava.net/johnica/comments/68146.htmlhttp://www.blogjava.net/johnica/archive/2006/09/06/68146.html#Feedback0http://www.blogjava.net/johnica/comments/commentRss/68146.htmlhttp://www.blogjava.net/johnica/services/trackbacks/68146.html 1把系统细分模块
2模块----(分析)------>有什么功能-----(决定)------>有什么请求点------(分析)------->有哪几个Action及ActionForm----(
深入分析)-----> 一个Action须调入哪些业务逻辑-----(处理)------>返回结果给客户端

业务逻辑设计技巧:
最好基于对象来设计,里面包括它的属性和方法。
举个例子,设计Book.java这个业务逻辑,里面有
属性:
id
name
author
sort(所属分类)
price
descript(描述)
image(图书封面图片存放路径)
.
.
中间是属性的get和set方法,构造对象方法
.
.
其他方法:
SearchBook(*,*,*)---依据查询条件,搜索图书信息
GetDetail(*,*,*)---获取指定图书编号的图书详细信息的方法
GetBookCount(*,*,*)---获取满足条件的图书记录总数量的方法



Johnica 2006-09-06 23:18 发表评论
]]>
java web 开发入门好书http://www.blogjava.net/johnica/archive/2006/08/16/64001.htmlJohnicaJohnicaWed, 16 Aug 2006 13:18:00 GMThttp://www.blogjava.net/johnica/archive/2006/08/16/64001.htmlhttp://www.blogjava.net/johnica/comments/64001.htmlhttp://www.blogjava.net/johnica/archive/2006/08/16/64001.html#Feedback0http://www.blogjava.net/johnica/comments/commentRss/64001.htmlhttp://www.blogjava.net/johnica/services/trackbacks/64001.html 大家如果是SSH(Struts+Spring+Hibernate)的入门者的话,我想推荐以下这两本书:
Struts开发入门与项目实践》 张桂元,贾燕枫编
《精通Hibernate 刘洋编,电子工业出版社

而同类的书中,卖到很火的有孙卫琴姐姐的<<精通struts:基于MVCJava Web设计与开发>>和《精通HibernateJava对象持久化技术详解》。卫琴的书火的原因其中一个就是她为自己的书搞了个技术售后服务网,也即是javathinker.org

为什么我不推荐卫琴的呢?我想我推荐的那两本书更适合初学者的阅读习惯和更快速的入门,更加通俗生动易懂。而且分别基于Struts1.2Hibernate3来讲解的。怎么看这两本书就是好点,如果你认真读过的话。

以下是引用china-pub网友对卫琴的书评:
《精通Struts:基于MVCJava Web设计与开发》
http://www.china-pub.com/computers/common/info.asp?id=19876
精通HibernateJava对象持久化技术详解
http://www.china-pub.com/computers/common/info.asp?id=24485



另外Struts2就快出台了,官方网说也就是这个月,基本上是基于灵活便利的WebWork2为核心,而Struts1.x的分量很少。Struts是使用时间最长的mvc框架,webWork是最喜欢的。两者的合并真的是振奋人心呀,相信不久的将来,Struts Ti将成为j2ee mvc框架中的翘首。

Web 层方面我现在非常看好Struts TiWebwork从技术上是非常前卫的,最新发布的2.2版本提供了很不错的AJAX功能,并且易学易用,再加上BeehivePageFlow优势,实在是非常有威胁。WebWork2的主要问题在于文档缺少,社区小,用户少。个人认为Spring MVC功能强大,但有点复杂了!没WebWorkMVC简单

综观市场:现在很多企业都仍然用Struts,一些就改用JSF或干趣用SpringMVC框架。你的选择呢?
Struts2
的相关新闻,http://wiki.apache.org/struts/StrutsTihttp://cwiki.apache.org/WW/home.html


 



Johnica 2006-08-16 21:18 发表评论
]]>
Johnica笔记系列之终极解决Struts国际化问题http://www.blogjava.net/johnica/archive/2006/08/13/63266.htmlJohnicaJohnicaSat, 12 Aug 2006 16:26:00 GMThttp://www.blogjava.net/johnica/archive/2006/08/13/63266.htmlhttp://www.blogjava.net/johnica/comments/63266.htmlhttp://www.blogjava.net/johnica/archive/2006/08/13/63266.html#Feedback5http://www.blogjava.net/johnica/comments/commentRss/63266.htmlhttp://www.blogjava.net/johnica/services/trackbacks/63266.html 1 .解决资源包中的中文问题
jsp 要调用资源包中的信息,我们需要这些信息是中文的,但是资源包中是不能直接写入中文的。否则会有乱码。
步骤:1) 先将资源包的信息写成自己需要的中文信息,保存成 ApplicationResources_zh.properties
2)
运行cmd到资源包所在目录,运行jdk命令:
native2ascii -encoding gb2312 ApplicationResources_zh.properties temp.txt
  运行后会将编码转换成ascii,储存在temp.txt。复制temp.txt中的内容,用它覆盖ApplicationResources_zh.properties原来的内容。
3) 不需要更改struts-config.xml中的资源包设置,它会根据浏览器的设置判断,选择相应的资源包。比如在IE的工具-INTERNET选项-语言,选择你需要的语言。你可以选择多种语言,但系统会根据先后关系选择资源包。如果把中文放在前面,系统就会使用ApplicationResources_zh.properties的资源包。

或者借助辅助软件Unicode,输入中文,将显示二进制码,如资源文件中:button.logon=\u767b\u9646  其中\u767b\u9646表示登陆,用软件Unicode就可以快速查到。

2
.对按钮国际化
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix=" bean " %>
<td><html:submit property="submit">< bean:message key=" button.logon "/></html:submit></td>

3
.设置字符编码
为了保证现一个JSP页面能支持多种语言,可以将所有JSP页面的字符编码统一设为UTF-8。并且把所有的文字信息都放到resource文件中。
<%@ page language="java" pageEncoding="UTF-8"%>

4 .采用Servlet过滤器设置请求数据的字符编码 (此过滤器已用涉及session的三个页面传递参数的例子验证过)

明:jsp 中文 bean, 再由bean 传给 jsp, 示出 乱码 SetCharacterEncodingFilter.java是一 个过滤 器,事先 对请 中文字符 预处 理, 然后在web.xml里面配置SetCharacterEncodingFilter 过滤 ,它将 预处 理所有的URL

 

首先设计过滤器 SetCharacterEncodingFilter.java ,代码如下

 

package characterfilter;         // 表示在包 characterfiter

 

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.UnavailableException;

public class SetCharacterEncodingFilter implementsFilter {

    public void destroy() {}

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

             throws IOException, ServletException {

              request.setCharacterEncoding("GB2312");

        // 传递控制到下一个过滤器

              chain.doFilter(request, response);}

    public void init(FilterConfig filterConfig) throws ServletException {}

}

 

将上面的 java 文件编译成 SetCharacterEncodingFilter.class 后放到 myapp\WEB-INF\classes\characterfilter\ 里面

 

然后在web.xml里面配置SetCharacterEncodingFilter 过滤 器, 它将预处 理所有的URLweb.xml添加代 如下:

 

<filter>

<filter-name>Set Character Encoding</filter-name>

<filter-class>characterfilter.SetCharacterEncodingFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>Set Character Encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

 

5. 对数据库国际化(以 mysql 为例子)

需要 3 步:

1.   数据库的字符集设为 UTF-8, 最好连表的字符集也设为 UTF-8

2.   在涉及连接数据库的 jsp 页面顶部设 <%@ page language = "java" pageEncoding = "UTF-8" %>

(其实这个在前面也提到了,所有页面都设UTF-8,涉及中文显示时就写在资源文件里)

3.   在连接数据库的URL上添加参数:(这是保证能写中文数据进去数据库时不会乱码)

String Url =  "jdbc:mysql://localhost:3306/bookdb ?useUnicode=true&characterEncoding=UTF-8 "



Johnica 2006-08-13 00:26 发表评论
]]>
Tomcat5.5下如何配置mysql的数据库连接池http://www.blogjava.net/johnica/archive/2006/08/13/63264.htmlJohnicaJohnicaSat, 12 Aug 2006 16:00:00 GMThttp://www.blogjava.net/johnica/archive/2006/08/13/63264.htmlhttp://www.blogjava.net/johnica/comments/63264.htmlhttp://www.blogjava.net/johnica/archive/2006/08/13/63264.html#Feedback0http://www.blogjava.net/johnica/comments/commentRss/63264.htmlhttp://www.blogjava.net/johnica/services/trackbacks/63264.html 第一种方法(非常简便)

1 )登陆 ADMIN-> 填写相关参数 ( 有关如何在 tomcat5.5 下进入 ADMIN 界面,请参考《怎样安装和配置 Tomcat Admin )

ADMIN 数据源配置界面参数如下:

JNDI Name: jdbc/BookDB

Data Source URL: jdbc:mysql://localhost:3306/ bookdb ?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8

JDBC Driver Class: com.mysql.jdbc.Driver

User Name: mysql 的用户名

Password: mysql 的密码

Max. Active Connections: 4

Max. Idle Connections: 2

Max. Wait for Connection: 5000

Validation Query: 不填

2 )在 conf 下找到 context.xml, </Context> 前加入 <ResourceLink

<ResourceLink global=" jdbc/BookDB " name=" jdbc/BookDB " type="javax.sql.DataSource"/>

――――――――――――――――――――――――――――――――――――――――――

上面的

1 jdbc/BookDB 对应你的 jsp 应用程序里的名称,即 ctx.lookup("java:comp/env/jdbc/TestDB")

2 bookdb 是数据库名,后面跟的参数是保证 struts 国际化,有关国际化请参考我的另外的笔记 johnica 国际化问题 .doc

 

说明:

driveClassName: JDBC 驱动类 的完整的名称;
maxActive
:同 接池中被分配的可用 例的最大数 ,默认为4
maxIdle
:可以同 时闲 置在 接池中的 接的最大数 ,默认为2
maxWait
:最大超 时时间 ,以毫秒 ,默认为5000
password
:用
url
:到 JDBC URL 接;
user
:用 名称;
validationQuery
:用来 查询 池中空
 

<ResourceLink> 元素的有效属性如下:

属性

描述

global

被连接的连接全局资源的名称

name

创建的资源连接的名称,相对于java:comp/env context

type

web应用在该资源连接上进行查找时,返回的Java类名的全称

 

 

  第二种方法(繁琐一点)就先不说了



Johnica 2006-08-13 00:00 发表评论
]]>