选择显示字体大小

java servlet 编程及应用之四

 httpservlet 是从genericservlet 继承而来,因此它具有genericservlet 类似的方法和对象,是我们使用servlet编程经常用到的包,它支持http 的post 和 get 等方法。

  编程思路:下面的例子,运行结果是输出简单地返回客户发送给服务器的请求行和头部信息,以及一些可访问的http 信息等。


  snoopservlet.java 的源代码如下:

import java.io.ioexception;
import java.io.printwriter;
import java.util.enumeration;
import javax.servlet.*;
import javax.servlet.http.*;


public class snoopservlet extends httpservlet {

  public void doget(httpservletrequest request, httpservletresponse response)
  throws servletexception, ioexception
  {
   printwriter out = response.getwriter();
   response.setcontenttype("text/plain");

   out.println("snoop servlet");
   out.println();
   out.println("servlet init parameters:");
   enumeration e = getinitparameternames();
   while (e.hasmoreelements()) {
    string key = (string)e.nextelement();
    string value = getinitparameter(key);
    out.println(" " + key + " = " + value);
   }
   out.println();

   out.println("context init parameters:");
   servletcontext context = getservletcontext();
   enumeration enum = context.getinitparameternames();
   while (enum.hasmoreelements()) {
    string key = (string)enum.nextelement();
    object value = context.getinitparameter(key);
    out.println(" " + key + " = " + value);
   }
   out.println();

   out.println("context attributes:");
   enum = context.getattributenames();
   while (enum.hasmoreelements()) {
    string key = (string)enum.nextelement();
    object value = context.getattribute(key);
    out.println(" " + key + " = " + value);
   }
   out.println();

   out.println("request attributes:");
   e = request.getattributenames();
   while (e.hasmoreelements()) {
    string key = (string)e.nextelement();
    object value = request.getattribute(key);
    out.println(" " + key + " = " + value);
   }
   out.println();
   out.println("servlet name: " + getservletname());
   out.println("protocol: " + request.getprotocol());
   out.println("scheme: " + request.getscheme());
   out.println("server name: " + request.getservername());
   out.println("server port: " + request.getserverport());
   out.println("server info: " + context.getserverinfo());
   out.println("remote addr: " + request.getremoteaddr());
   out.println("remote host: " + request.getremotehost());
   out.println("character encoding: " + request.getcharacterencoding());
   out.println("content length: " + request.getcontentlength());
   out.println("content type: "+ request.getcontenttype());
   out.println("locale: "+ request.getlocale());
   out.println("default response buffer: "+ response.getbuffersize());
   out.println();
   out.println("parameter names in this request:");
   e = request.getparameternames();
   while (e.hasmoreelements()) {
    string key = (string)e.nextelement();
    string[] values = request.getparametervalues(key);
    out.print(" " + key + " = ");
    for(int i = 0; i < values.length; i++) {
      out.print(values[i] + " ");
    }
    out.println();
   } 
   out.println();
   out.println("headers in this request:");
   e = request.getheadernames();
   while (e.hasmoreelements()) {
     string key = (string)e.nextelement();
     string value = request.getheader(key);
     out.println(" " + key + ": " + value);
   }
   out.println();
   out.println("cookies in this request:");
   cookie[] cookies = request.getcookies();
   if (cookies != null) {
    for (int i = 0; i < cookies.length; i++) {
     cookie cookie = cookies[i];
     out.println(" " + cookie.getname() + " = "+ cookie.getvalue());
    }
   }
   out.println();

   out.println("request is secure: " + request.issecure());
   out.println("auth type: " + request.getauthtype());
   out.println("http method: " + request.getmethod());
   out.println("remote user: " + request.getremoteuser());
   out.println("request uri: " + request.getrequesturi());
   out.println("context path: " + request.getcontextpath());
   out.println("servlet path: " + request.getservletpath());
   out.println("path info: " + request.getpathinfo());
   out.println("path trans: " + request.getpathtranslated());
   out.println("query string: " + request.getquerystring());

   out.println();
   httpsession session = request.getsession();
   out.println("requested session id: " +
   request.getrequestedsessionid());
   out.println("current session id: " + session.getid());
   out.println("session created time: " + session.getcreationtime());
   out.println("session last accessed time: " +session.getlastaccessedtime());
   out.println("session max inactive interval seconds: " + session.getmaxinactiveinterval());
   out.println();
   out.println("session values: ");
   enumeration names = session.getattributenames();
   while (names.hasmoreelements()) {
    string name = (string) names.nextelement();
    out.println(" " + name + " = " + session.getattribute(name));
   }
  }
}

  编程技巧说明:

  程序输出init parameters(初始化参数)、attribute names in this request、parameter names in this request、headers in this request、cookies in this request 和 session information等信息。
方法getrequesturi返回的对象uri 是作为url 的一部分,是去掉url 中用于指定机器的那部分;方法getpathinfo 返回的字符串是客户向servlet 传送的各种选项,这些选项是跟在servlet 的url 之后的,方法getpathtranslated 返回的字符串是servlet 的自己的绝对路径名,snoopservlet.class 文件位置是c:\jswdk-1.0.1\examples\web-inf\servlets\snoopservlet.class,则方法getpathtranslated 返回的字符串值就是它。

  在浏览器中输入如下的地址:

http://localhost:8080/examples/servlet/snoopservlet
  则会输出结果。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons