`
frank1998819
  • 浏览: 764350 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Servlet 学习 (转)

 
阅读更多
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class RequestTestServlet extends HttpServlet {
   
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
       
       
        //读取表单参数
       
        request.setCharacterEncoding("utf-8");//使用什么编码读客户端发过来的二进制数据,需要与HTML编码保持一致。在TOMCAT中,如果是get方法传过来的数据,可能不起作用。
       
        String sno=request.getParameter("sno");//获取单个、指定参数的值
        System.out.println("-----request.getParameter('sno'):"+sno);
       
        String sname=request.getParameter("sname");//获取单个、指定参数的值
        System.out.println("-----request.getParameter('sname'):"+sname);
       
        String grade[]=request.getParameterValues("grade");//获取单个、指定参数的所有值。(一个参数可能有多个值的情况)
        System.out.println("-----request.getParameterValues('grade'):"+grade[0]+","+grade[1]);       
       
        Enumeration enume= request.getParameterNames();//返回一个枚举类型(Enumeration)的实例,值为表单的所有参数名
       
        Map map=request.getParameterMap();//返回一个Map实例,键-值成对的形式,键为参数名,值为参数值
        System.out.println("-----request.getParameterMap():"+map);   
       
       
       
        //其它信息
       
        String encoding=request.getCharacterEncoding();//    返回请求所用的字符编码。
        System.out.println("-----request.getCharacterEncoding(): "+encoding);           
       
        String protocol=request.getProtocol();//返回发送请求所使用的名字和版本号,如:HTTP/1.1
        System.out.println("-----request.getProtocol(): "+protocol);   
       
        String ip=request.getRemoteAddr();//返回客户端的IP地址
        System.out.println("-----request.getRemoteAddr(): "+ip);           

        String scheme =request.getScheme();//返回请求使用的方法的名字,如http,https,ftp等。
        System.out.println("-----request.getScheme(): "+scheme);           
       
        String serverName=request.getServerName();//返回服务器的名字
        System.out.println("-----request.getServerName(): "+serverName);       
       
        int port=request.getServerPort();//返回请求被接收的端口号。
        System.out.println("-----request.getServerPort(): "+port);
       
        String uri=request.getContextPath();//获取标示请求内容的URI的请求部分。
        System.out.println("-----request.getContextPath(): "+uri);
       
        String method=request.getMethod();//返回该请求的HTTP方法名字,如GET/POST
        System.out.println("-----request.getMethod(): "+method);       
       
        String pathInfo=request.getPathInfo();//返回发出请求的URL客户的相关额外路径信息
        System.out.println("-----request.getPathInfo(): "+pathInfo);       
       
        String queryString=request.getQueryString();//获取发出请求的URL的路径之后的查询串。
        System.out.println("-----request.getQueryString(): "+queryString);       
       
        String reURI=request.getRequestURI();//获取在HTTP请求的第一行中的,请求URL中从协议名到查询串的部分。
        System.out.println("-----request.getRequestURI(): "+reURI);       
       
        StringBuffer reURL=request.getRequestURL();//重构一个发出该请求的URL对象
        System.out.println("-----request.getRequestURL(): "+reURL);       
       
        String servletPath=request.getServletPath();//获取调用servlet的请求URL部分
        System.out.println("-----request.getServletPath(): "+servletPath);
       
        Enumeration lang=request.getHeaders("Accept-Language");//返回指定报头的所有值
       
       
       
        /*什么是cookie
        
            出于安全考虑,动态网站开发语言,无法存储和操作客户端电脑的文件/数据。避免病毒传播        
        
           HTTP提供了一种机制,指定了一个特殊的存储空间,允许服务器向客户端电脑存储少量数据
       
        到该空间 ,该空间被有效的安全控制,对客户端电脑不会造成影响。        
           
           它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,
       
        网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,
       
        或者让你不用输入ID、密码就直接登录等等。
       
        */
       
        //打印所有cookies的值:只有本网站留的cookie才会被带回,其它网站不返回
       
        Cookie [] cook = request.getCookies(); //返回cookie类型的数组
        if (cook != null){
            for(int i =0; i<cook.length; i++){
                Cookie c=cook[i];
                System.out.println(c.getName()+":"+c.getValue());
            }
        }
       
       
//        读取cookie值
       
        String cookieName="userID";         //要读取的cookie名为userID
        String cookieValue="";                 //存放读出的cookie值
        Cookie [] cook2 = request.getCookies(); //返回cookie类型的数组
        if (cook != null){
            for(int i =0; i<cook2.length; i++){
                Cookie c=cook2[i];
                if (cookieName.equals(c.getName())){
                    cookieValue=c.getValue();
                    System.out.println("cookieValue:"+cookieValue);
                }
            }
        }

       
       
       
        //向客户端安装一个cookie
       
    /*    Cookie cookie = new Cookie("userID" , "1234");       
        cookie.setMaxAge(60*60*24*7); //保留7天时间。如果设为0则删除该    cookie。无设置则为当前会话       
        response.addCookie(cookie);
       
        */
       
       
       
        // session机制
       
        HttpSession session = request.getSession();//返回当前会话,如果会话不存在,则创建一个新的会话
       
        session.invalidate();
       
       
       
        /*           

        public ServletInputStream getInputStream() throws IOException//用ServletInputStream得到请求的二进制数据
        public BufferReader getReader() throws IOException//用BufferReader读取请求体文本           
        public RequestDispatcher getRequestDispatcher(String path)//返回指定路径上的资源的RequestDispatcher对象   
   
        public long getDateHeader(String name)//返回指定报头的值,作为长整型的日期值返回(毫秒)
        public String getHeader(String name)
        public Enumeration getHeaderNames()
        public Enumeration getHeaders(String name)//返回指定报头的所有值
        public int getIntHeader(String name)//返回指定报头的值,作为整型返回       
   
        public String getRequestedSessionId()//返回客户的essionID号
        public HttpSession getSession()//获取和当前请求相关联的session对象。如果没有则创建一个
        public HttpSession getSession(true)//获取和当前请求相关联的session对象,如果没有则创建一个
        public HttpSession getSession(false)//获取和当前请求相关联的session对象,如果没有则返回null
   
        */
       

        //response.setContentType("text/html;charset=utf-8");//指定发送的文件类型为HTML,指定HTML文档编码格式为UTF-8       
       
        response.setContentType("text/html");//指定发送的文件类型为HTML,指定HTML文档编码格式为UTF-8   
       
        //response.setCharacterEncoding("gbk");
       
       
        PrintWriter out = response.getWriter();       
       
        out.println("<HTML>\n"
                + "<HEAD><TITLE>Hello</TITLE></HEAD>\n"
                + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1>Hello java91 你好</H1>\n"
                + "</BODY></HTML>");
    }
   
   
   
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       
        doGet(request,response);
    }
   
}
分享到:
评论

相关推荐

    林学良Jsp&Servlet学习笔记

    **林学良Jsp&Servlet学习笔记**: 这份学习资料可能是对JSP和Servlet基础知识的系统性讲解,涵盖了上述概念和原理,适合初学者入门。通过阅读这份笔记,你可以了解JSP和Servlet的基本语法、生命周期、以及如何将它们...

    JSP&Servlet学习笔记.pdf

    由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...

    吉林大学珠海学院JSP&Servlet学习笔记(第二版)课后答案

    吉林大学珠海学院JSP&Servlet学习笔记(第二版)课后答案 本资源为吉林大学珠海学院JSP&Servlet学习笔记(第二版)的课后答案,涵盖了JSP和Servlet相关的知识点。本笔记共分为九章,每章节都包含了相关的问题答案,...

    [JSP&Servlet;学习笔记(第2版)]

    **JSP(Java Server Pages)与Servlet...这个**[JSP&Servlet学习笔记(第2版)]**会涵盖这些主题,并可能包括示例代码、最佳实践和常见问题解答,帮助读者全面掌握JSP和Servlet的使用技巧,进一步提升Java Web开发能力。

    jsp/servlet个人学习笔记

    学习 JSP 和 Servlet 要注重理论与实践相结合,不仅要理解它们的工作原理,还要通过编写实际项目来提升技能。同时,不断关注新技术,如 Spring Boot 和微服务架构,这将有助于你更好地适应 Java Web 开发的未来趋势...

    servlet学习手册

    本“Servlet学习手册”将深入探讨Servlet的基础概念、工作原理以及实际应用。 首先,我们需要理解Servlet的基本概念。Servlet是在Java平台上运行的小程序,它们在Web服务器中运行,可以扩展服务器的功能,比如处理...

    JSP与Servlet学习课件

    **JSP(Java Server Pages...通过系统学习JSP与Servlet,你可以构建出功能丰富的、响应式的Web应用程序,为你的职业生涯开辟新的可能。在实际项目中,理解它们的协同工作原理和最佳实践,将有助于提高开发质量和性能。

    精华servlet学习例子

    本资源"精华servlet学习例子"显然是为了帮助开发者深入理解和掌握Servlet技术。以下是对Servlet技术的详细阐述: 一、Servlet基本概念 Servlet是Java Servlet API的一部分,它是一个接口,定义了Web服务器如何与...

    Servlet 和 Jsp 学习指南+ 代码

    这份"Servlet 和 Jsp 学习指南+ 代码"资源包显然旨在帮助开发者深入理解和掌握这两项技术。 Servlet是Java提供的一种用于扩展服务器功能的接口,它允许开发者编写Java代码来处理HTTP请求。Servlet生命周期包括加载...

    Servlet &JSP学习笔记NetBeans源代码

    在这个"Servlet & JSP学习笔记NetBeans源代码"压缩包中,你将找到一系列与Servlet和JSP相关的示例代码,这些代码是基于NetBeans IDE编写的,并且是在Tomcat服务器上运行的。 Tomcat是一个开源的轻量级Web服务器和...

    JSP Servlet 学习笔记源码

    本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练掌握JSP和Servlet。 1. **JSP基础**: JSP是一种服务器端的脚本语言,它将HTML、CSS、JavaScript与Java代码...

    JavaWeb的servlet学习的帮助文档

    Servlet是Java Web开发中的核心组件,它是一种Java类,用于扩展服务器的功能,处理来自...J2EE 1.5和Java EE API的中英文对照版文档是学习Servlet的重要参考资料,可以帮助开发者更深入地理解Servlet及其工作原理。

    servlet学习demo

    在本“Servlet学习demo”中,我们将探讨三种不同的方法来实现Servlet开发,并深入理解Servlet的生命周期。 首先,我们来了解一下Servlet的基本概念。Servlet是一个Java类,它扩展了Java平台的`javax.servlet....

    JSP servlet 学习资料

    **学习JSP和Servlet时,你将深入理解Web应用程序的工作原理,学会如何编写动态网页,处理HTTP请求,以及管理用户会话。通过实践这些教程和讲义,你将能够构建功能丰富的Java Web应用。** 本压缩包中的"jsp培训讲义...

    servlet基础与servlet容器模型

    Servlet是Java Web开发中的核心组件,它用于处理HTTP请求并生成动态响应。Servlet技术始于1995年,由Sun Microsystems推出,现在已经成为Java EE规范的一...通过深入学习和实践,开发者可以构建出高效、可靠的Web服务。

    《Servlet和JSP学习指南》源码

    《Servlet和JSP学习指南》源码是一份深入学习Java Web开发的重要资源,它涵盖了Servlet和JSP技术的核心概念、实现方法以及实际应用。Servlet是Java服务器端编程的基础,而JSP则是用于创建动态网页的Java技术。这两个...

    Servlet和JSP学习指南.pdf

    这份"Servlet和JSP学习指南.pdf"将深入讲解这两个关键概念,帮助开发者掌握它们的基础知识和高级应用。 Servlet是Java编程语言的一个接口,由Sun Microsystems(现为Oracle)定义,它允许程序员创建能够响应来自Web...

    jsp&servlet;学习笔记_第2版_光盘(看评论酌情下载)

    学习笔记"及提供的源码,开发者可以全面了解JSP和Servlet的工作原理,学会如何创建动态Web应用,同时提升解决问题和实际开发的能力。结合实际项目练习,能够更好地将理论知识转化为实践经验,从而在Java Web开发领域...

    servlet学习

    在这个"Servlet学习"资料集合中,我们可以深入探讨以下几个关键知识点: 1. **Servlet生命周期**:Servlet在Web服务器中的生命周期包括加载、实例化、初始化、服务、销毁五个阶段。每个阶段都有特定的任务,例如...

    servlet和jsp学习指南.pdf

    提到的“servlet和jsp学习指南.pdf”是一本专注于Java Web开发的教材,它主要面向初学者。servlet和JSP(JavaServer Pages)是Java平台上的两项重要技术,它们共同支撑着传统的Java Web应用开发。了解并掌握这两项...

Global site tag (gtag.js) - Google Analytics