免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1049 | 回复: 0
打印 上一主题 下一主题

tomcat web开发下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-09 21:13 |只看该作者 |倒序浏览
lesson 20 ant
1.tomcat和ant都不需要java_home
,还是那样,tomcat只需要设置jdk本身的设置即可.
2.ant的安装:
path变量需要安装.../ant/bin
即只需要自身的变量即可.
3.
  
  
  :::显示红色的字,说明是系统默认字符不能改变,蓝色的字也是.
  根据字体的颜色判断
  还有:
  

  一个简单的JMail Web实例
  
  
  
  
  
  
   
   
  
  
  //自动设置了路径的信息.
  
   
   
   
   
   
   //路径的联合效果.
  
  
  
  
   
   
   
   
     
         
            
            
            
         
      
  
  
   
   
    //添加路径信息.注意这里不能使用
   
   
   
   
   
   
     
     
     
   
   

   
   
  
  
   
  
  
   
   
  
   
   
   target list
init:make dir and copy file
compile: compile java file
copyjar:prepar jmail enviroment
deploy:deploy jmail web
clean:delete temp dir
   


4.activation.jar
mail.jar是在Javamail-1_2.zip 文件中,在java.sun下载.

5.利用ant打包到tocat/webapp下时,会自动生成相应的应用文件,这可能是系统自带的.
6.ant是为java而创建,可移植性的,make不能移植.
:在doc下,进入相应的目录输入ant,执行默认的build.xml的target.可以自己指定target和构建文件.
一般情况下,一个工程即一个build.xml.
:使用ant发布web应用.
:build.properties文件的书写
  src.dir=./src,注意这是当前目录下,/
  ::在xml中一律用/,当然\也可以.
  
:build.xml的encoding不能为utf-8,应该改为GBK.!!!
:非常重要的一点,利用ant的javcac如果源文件是package cn.ac.ict形式,
  而在编译的时候不需要批定-d,即会在指定的destdir下生成包文件.
  
  
:几种常的task元素
  :
   /
   
  :
   
   
   
   ::注意,一定要确保classname的名字在其指定的classpath路径下,否则不成功.
   
  :
  :::的两种方式
   :全局定义path,然后引用.
   
    见上例
   :
   
   
   
    ::注意
     
     //不能两者混用,既嵌套,又设定内容是不行的.
    //这种形式是不支持的.
   
7.build.properties:
配置文件,key=value没有引号,而且以#作为注释.

lesson21 log4j

1.用于日志管理
:几个关键的类,
  logger日志写出器,
  Appender,layout
2.两种配置方式,
:最简单的.properties
  以log4j.开头,注意其格式.
:最流行的xml
  固定的格式.
:实例
   建立相应的servlet,并从web.xml中getInitParameter("..");
   和配置文件.properties相结合的方式.
   
   lessoon 11 ssi
   
1.ssi,服务端包含
是html页面中的指令,在页面被提供时由服务器进行运算,以对现有地HTML页面增加动态生成的内容,
而无须JSP程序提供其整个页面,或者其他动态技术.
:由服务器提供的一种功能
:在服务器端进行的.
:对于复杂的大型的动态网页,必须由asp,jsp搞定
:对于一些html页面上简单的动态功能,SSI轻松搞定.
:在服务端直接执行SSI会产生相应的HTML代码,所以对客户端没有限制,由流产器无关

2.主要的用途
:显示服务器环境变量
:将文本内容直接插入到文档中
:显示web文档相关信息
:直接执行服务器上的各种程序
:设置SSI信息显示的格式
3.echo
:大小写不分

显示当前文档的最后更新时间,相当实用的功能.
注意,只能写在注释中才能生效.
记住这样的固定格式.
4.include
:这个整个SSI的关键所在,它将文字或图片插入到当前被解析的文档中.
两个不同的参数
  :virtual:给出到服务器端某个文档的虚拟路径,如
   
  :file给出到当前目录的相对路径,其中不能使用../,也不能使用绝对路径
   
   这要求每一个目录都包含一个header.html.
   
5.让tomcat支持SSI
修改web.xml,设置一个servlet即可.只要将相关的注释去掉即可.
::ssi命令只能在后缀名为shtml的文件中才能被正确执行,它与JSP命令不能同时被执行,
  即它不能放在JSP文件中执行.
  因为:从web.xml中的servletMapping中就可以看出.
::To use the SSI servlet, you also need to rename the     
          $CATALINA_HOME/server/lib/servlets-ssi.renametojar file
          to $CATALINA_HOME/server/lib/servlets-ssi.jar
  
  
  lesson12 中文显示
  :::::html不会有这样的问题,它不需要TOM的参与!!!!!
1. javac -encoding指定源程序的编码格式.
2.java的编译过程
如果没有javac -encoding形式指定源程序的编码方式,则javac首先利用file.encoding获得系统的编码方式
如GBK;JDK将源程序从File.encoding格式转化为内部的unicode放在内存中.这样.class就是unicode格式,
存放在内存中;操作系统中存在的.class即为unicode编码格式的;java时,将再次使用file.encoding输出.
3.jsp的编译过程:与上述稍有不同
:tomcat首先调用JSP编译器
:JSP编译器先查看JSP文件中是否设有编码格式,如果没设,则它调用JDK先把JSP文件用JVM默认的编码格式
  即WEB窗口所在的操作系统默认的file.encoding,转换为临时的servlet类,然后把它编译成UNICODE格式的
  class类,并保存在临时的文件夹下.
:客户请求时,JVM则在内在中运行servlet类,如果它在运行中接收用户的字符如表单的输入,URL参数等,
  如果程序中没有指定编码格式,则TOM采用iso8859-1,然后转化为UNICODE在内存中,servlet运行后输出,
  输出的字串(string)是UNICODE的.TOM将这个字串发送给客户的流产器,如果指定(page)发送时编码则按指定的,
  如果没有,则IOS88..
  因此要注意三点:
   设置JSP的编码格式
   设定接收参数的编码格式
   设定响应时的编码格式.
  
4.实例
:JSP页面的乱码(JSP页面本身的中文字符)
  原因:以默认的file.endoing即GBK编码为servelt,.class,输出时为iso格式.所以不匹配.
   
    一个很好的例子.
     
   
  解决:
  注意:这从而也指定了输出HttpservletResponse的编码格式.
   即指定了所有向该JSP页面的输出数据的编码格式.
   .
:表单提交时的乱码即,request.getParameter()方法得到乱码.
  原因:对POST方法,处理参数时采用默认的ISO
  解决:对POST方法提交的表彰通过编写一个过滤器GBK
  GET方法:
   在server.xml下
  ::这样在JSP页面必须指定相应的编码格式!!!
  个人验证:对于post方法,可以采用request.setCharacterEncoding("gb2312");
   方法搞定,这种方法比较简单.
:数据库:
  方法一:
   MYsql,my.ini文件,
   [mysqld]下的语句default-character-set=latin1
   变为gbk
   在[client]下增加default-character-set=gbk
   方法二:
    MY不支持UNICODE  
字符编码知识::
utf-8:并不能显示中文,中文以方框显示了.
  response.getCharacterEncoding():返回值如果没有指定编码则返回ISO..
  request.getCharacterEncoding():如果没有指定则返回null
  :补自动转换为字串,显示为10.

class EncodeTest
{
  public static void main(String[] args) throws Exception
  {
   String a ="碁";
   //a.getBytes()利用平台的gbk编码.
   String b = new String(a.getBytes(),"ISO8859_1");
   //这时候c就是gb2312编码的,输出即可.
   String c = new String(a.getBytes(),"gb2312");
   
   System.out.println("b="+b+" c="+c);
   //因为b已经是iso编码的,这时用iso编码,然后再用gbk解码
   String bb = new String(b.getBytes("ISO8859_1"),"GBK");
   //采用平台默认gbk进行解码字节数组.
   String bbb = new String(b.getBytes("ISO8859_1"));
   //因为a是gbk解码,用gb编码,再用gbk解码.
   String cc = new String(a.getBytes("gb2312"),"GBK");
   
   System.out.println("bb="+bb+" cc="+cc+"bbb="+bbb);
   //用iso编码放在内存,输出时用默认的gbk解码.所以不显示.
   
   //a是gbk解码,现在iso编码,所以这个式子无论用什么解码都不显示.
   String d=new String(a.getBytes("ISO8859-1"));
   String dd=new String(a.getBytes("iso8859-1"),"gbk");
   System.out.println("d="+d+"dd="+dd);
   //解决办法就是没有办法,因为d本身就不能显示!!
   String ddd=new String(d.getBytes("gbk"),"gbk");
   System.out.println(ddd);
  }
}

这个例子说明:ISO8859_1是个比较特殊的字符集,它是一个8位的编码,
  这就让他成为一个非常好的中介机构,会忠实的将每个字节的数据记录下来而不改变,
  估计这是web传输和jdbc传输使用它为字符集的原因吧。
*****************最重要的部分**********

记住:解码与编码的方式一样要相同!!!!!!
  :一个字串本身的编码是什么,能不能正常显示!!
  如
   getBytest(iso)就是编码,后者就是解码!!!
   request.getParameter("name").getBytes("ISO8859_1")得到的就是字串初始的编码.
   如果初始编码是iso那么显然不能显示中文.
  :mysql的默认编码是iso,指的就是字串的最后解码是iso,比如操作系统的默认编码是GBK
   ,就是说在其下输入"好",那么就等价于:new string("好".getBytes("gbk"),"gbk")
  :request.getParameter("name")等价于:
   name是gbk(输入时的系统)编码,new String(name.getBytes("gbk"),"iso")
   这里的iso就是tomcat默认指定的.也就是书中所说的NUCODE字串
****************************************

问题:::
  JSP页面中的代码如表达式代码,如果是易发生异常的,是否要加以捕获.
  在数据库一章中,在代码段是要trycatch的.但这里的getBytes()表达式却没有声明(JSP中)??
  个人:基于表达式的长相,不容易捕获,所以就不用了.
  在代码段中,经验证也不需要,这说明jsp程序毕竟不是java源程序,要求不严格,因为它只是
  TOM自动调用jsp编译器.
  
  :Unicode 也是一种字符编码方法,不过它是由国际组织设计,
   可以容纳全世界所有语言文字的编码方案。
   Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。
   UCS可以看作是"Unicode Character Set"的缩写。
  :UCS规定了怎么用多个字节表示各种文字。
   怎样传输这些编码,是由UTF(UCS Transformation Format)规范规定的,
   常见的UTF规范包括UTF-8、UTF-7、UTF-16
  :所以从汉字包含来看,简单地可以说:
               GB2312=ASCII+常用汉字+符号
               GBK=GB2312+不常用字(含BIG5繁体汉字)+图形符号
               GB18030=GBK+Ext-A+图形符号
               Unicode=GB18030+Ext-B+……(如未发布的Ext-C及其它国家文字)
               注意:Unicode的汉字编码与前三者不一样
lesson 25 tocmat与hibername
1.hibernate
:是一个面向java环境的对象/关系数据库映射工具,对象/关系数据库映射(orm),这个术语表示一
  种技术,用来把对象模型表示的对象映射到基于SQL的关系型数据结构中.
2.



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/32621/showart_256233.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP