服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java servlet 编程及应用之八

ad_qqread_mid_big">
  编程技巧说明:

  首先定义上传文件最大字节为1024k(1m),上传文件保存在根目录(/)下,从请求的inputstream 读取实体数据,根据请求头content-type 和contenlength 等值,从实体数据中解析出表单form 数据中的filename 和content-type 等值,然后将实体数据中真正属于上传文件的内容保存到服务器上的根目录文件中。

  其中用到涉及中文输出:

string filestr=new string(databytes,"iso8859_1");
fileout=new fileoutputstream(rootpath+filename);
fileout.write(filestr.getbytes("iso8859_1"),0,filestr.legth());

  uploadfile.html 的源代码如下:

<!doctype html public "-//ietf//dtd html//en">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb_2312-80">
<title>upload a file</title>
</head>
<body>
<h1>文件上传 </h1>
<h2>提示:您的浏览器必须能支持文件上传!</h2>
<form action="servlet/uploadservlet" method="post" enctype="multipart/form-data">
<div align="left">
<pre>发送文件:<input type="file" size="40" name="upl-file"> </br>
<input type="submit" value="开始发送" now>
<input type="reset" value="重 设"></pre>
</div>
</form>
</body>
</html>

  小结:

  (1) servlet 编程要求读者已经掌握了java 语言程序设计,最好对面向对象也有一定的了解。java 语言程序设计最主要的是对java 的类库的使用,同样掌握servlet 编程也要求熟练使用sun 公司提供的jsdk。

  (2) 一个好的servlet 程序必须要考虑得全面。由于servlet 在服务器上执行,为客户提供服务,有时可能会有多个客户同时向一个服务器发请求,这就要求servlet 程序必须能够保证良好的并发性。允许servlet 并发执行,就要解决servlet 中变量和同步访问以及共享的问题,尤其要特别注意服务器的一些昂贵的资源。另一方面,servlet 要把处理结果返回给客户,要求servlet 充分考虑响应的速度和响应结果的简洁明了,同时对客户的错误请求有一定的容错性。

  (3) 解决servlet 中文输出问题

  当servlet 输出的文档中有中文时,需要在servlet 中使用下面的语句来指明:

response.setcontenttype("text/html;charset=gb2312");

  在jsp中使用:

<%@page contenttype="text/html;charset=gb2312"%>

  这两者是等效的。

  如果在servlet 中文显示有问题,可从以下几方面来考虑:

  * 修改区域设置---在控制面板中选择区域设置,如设为英语(美国)。

  * 在编译servlet 时加入代码选项,如:javac -encoding iso8859-1 ghqservlet.java

  * 在源程序中加入编码转换函数,如:out.println(new string("请输入用户名").getbytes("gbk"),"iso8859_1"));

  或者使用下面的方法:

string str="请输入用户名";
byte[] tempbyte=str.getbytes("iso8859_1");
string tempstr=new string(tempbyte);

  这样tempstr 中的中文就可以正确显示了。

  由于servlet 采用不同的引擎,其中文的解决方法可能不同;因此,当出现中文显示问题时,建议一定要多实验,最终总会得到解决。

  (4) java servlet 程序弥补了 applet 程序的不足, servlet 主要应用在http servlet 接收请求(httpservletrequest接口)和产生响应(httpservletresponse接口)、使用cookies 及会话管理(httpsession 接口)应用、java servlet 在网络上的编程应用如利用servlet 上传和下载文件、servlet 的数据库编程、在servlet 中发送和接受邮件以及java servlet 在rmi和xml等方面的应用,因此servlet 的编程应用还是比较广泛的。

  通常 servlet 可以使用以下的方法调用:

  * 客户通过访问 servlet 产生的文档来调用

  server 得到一个访问文档的请求后,查找配置参数,就会发现所需文档不是一个静态文档,而是由 servlet 对象产生的,于是服务器就会把请求传给 servlet,servlet 调用 "service" 方法产生输出。这种方法与传统的调用 cgi 的方法类似。

  * 直接通过 url 调用 servlet

  客户(浏览器)使用以下格式的 url 调用:

http://servlet_host_name/servlet/<servlet url>

<servlet url>是指向 servlet 位置的普通的url,它的格式如下所示:

name?para1=value1&para2=value2...

  其中,name 是 servlet 的名字,"?" 后面跟的是一串参数,para1 是第一个参数名,value1是它的值,para1 是第二个参数名,value2是它的值,以此类推。通常servlet 存放的位置可能与服务器不在同一台机器上,这时服务器就要动态加载、初始化和执行servlet 类。

  * 通过 ssi(server-side includes) 标志调用

  任何一个以.sthml 为扩展名的文件都是服务器要分析的文件。在该文件中,如果出现了servlet标志,那么服务器就会运行该servlet,并把它的输出结果插入标志所指示的地方。

  * 把 servlet 放在/servlet/目录下

  如果一个 servlet 的类文件被放在/servlet/目录下,那么就可以直接使用它的类名调用它。

  * 通过 filter chain 调用

  这种方法一般要把 servlet 配置成当一个特定的 mime 类型被设置为响应时再调用。

  但servlet 也有它的缺点:

  * 在复杂的html 网页中,加入的动态部分如果用servlet 来处理的话,那对程序员来说简直是一场噩梦。

  * servlet 要进行编译、放入执行码等复杂的调用过程。

  正是由于servlet存在的缺点,才出现使用jsp 技术来解决上面的问题,这也正是jsp 的优点。 >>>更多专题请看java的类  java网络专题
上一页 1 2 
相关内容:邮件  数据库  设计  技巧  服务器  
【收藏此页】【大 中 小】【打印】【关闭】
上一篇:使用java api压缩和解压缩数据
下一篇:通过struts应用mvc设计模型


10万个软件免费高速下载
教育教学 安全相关 游戏娱乐 源码下载 编程开发 数码软件 其它类别
网络软件 联络聊天 系统工具 媒体工具 图形图像 应用软件 行业软件
·浅析c#中图形编程
·浅析c#中的套接字编程
·编程新手选择开发语言的注意事项
·c# 编程规范
·我的程序生涯:棋、人生、编程
·udp编程
·七年之后我逃离编程
·编程指南:c语言编程易犯毛病集合
·dbgrid中的下拉列表和查找字段编程方
·编程本质论
 
·接口和抽象类的定义方式举例说明
·用maven制作java项目发行包
·java 基础入门 pom.xml 元素描述
·用jbuilder2007开发扩展jsf标签的插
·抽象类对象类和对象包装类
·使用java实现在文件中添加字符串
·instanceof和回调概念
·java变量的赋值与传递
·java se6调用java编译器的两种新方法
·weblogic运用db的java控件访问数据库

扫描关注微信公众号