zoukankan      html  css  js  c++  java
  • servlet学习之servletAPI编程常用的接口和类

    ServletConfig接口:

        SevletConfig接口位于javax.servlet包中,它封装了servlet配置信息,在servlet初始化期间被传递。每一个Servlet都有且只有一个ServletConfig对象。

       首先配置信息为:

     

    •     getInitParameter(String name)————此方法返回String类型名称为name的初始化参数值
    •     getInitParameterNames()————获取所有初始化参数名的枚举集合
    •     getServletContext()————用于获取Servlet上下文对象
    •     getServletName()————返回Servlet对象的实例名

       

    public void init(ServletConfig servletConfig) throws ServletException {
            System.out.println("init");
            //获取初始化参数:servlConfig
            String user=servletConfig.getInitParameter("user");
            System.out.println("user:"+user);
            Enumeration<String> names=servletConfig.getInitParameterNames();
            while(names.hasMoreElements()) {
                String name=names.nextElement();
                String value=servletConfig.getInitParameter(name);
                System.out.println("~~"+name+":"+value);
            }
            //获取servletConfig对象   servletContext
            ServletContext servletcontext=servletConfig.getServletContext();
            String driver=servletcontext.getInitParameter("driver");
            System.out.println("driver:"+driver);
            Enumeration<String> names2=servletcontext.getInitParameterNames();
            while(names2.hasMoreElements()) {
                String name=names2.nextElement();
                System.out.println("-->"+name);
            }
            //获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的物理路径
            String realpath=servletcontext.getRealPath("/note.txt");
            System.out.println(realpath);
            //获取当前web应用的名称
            String contextPath = servletcontext.getContextPath();
            System.out.println(contextPath); 
            
            try {
                ClassLoader classLoader=getClass().getClassLoader();
                InputStream is=classLoader.getResourceAsStream("jdbc.servlet");
                System.out.println("1."+is);
            } catch (Exception e) {
                e.printStackTrace();
            }
            //获取当前WEB应用的某一个文件对应的输入流:path的/为当前web应用的根目录
            try {
                InputStream is2=servletcontext.getResourceAsStream("/WEB-INF/classes/jdbc.servlet");
                System.out.println("2."+is2);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    输出结果:

    GET 请求和 POST 请求:

    1). 使用GET方式传递参数:

    1.  在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。
    2. 如果网页中的<form>表单元素的 method 属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。
    3. 使用GET请求方式给WEB服务器传递参数的格式: http://www.boogiever.com/counter.jsp?name=ISEE&password=777
    4. 使用GET方式传送的数据量一般限制在 1KB 以下。




    2). 使用 POST 方式传递参数:

    •  POST 请求方式主要用于向 WEB 服务器端程序提交 FORM 表单中的数据: form 表单的 method 置为 POST
    •  POST 方式将各个表单字段元素及其数据作为 HTTP 消息的实体内容发送给 WEB 服务器,传送的数据量要比使用GET方式传送的数据量大得多。  


    POST /counter.jsp HTTP/1.1
    referer: http://localhost:8080/Register.html
    content-type: application/x-www-form-urlencoded
    host: localhost:8080
    content-length: 43

    name=wangziyi&password=777              --请求体中传递参数.

     Serlvet接口只定义了一个服务方法就是service,而HttpServlet类实现了该方法并且要求调用下列的方法之一:
    doGet:处理GET请求
    doPost:处理POST请求
    当发出客户端请求的时候,调用service 方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或 doPost。如果请求是GET就调用doGet方法,如果请求是POST就调用doPost方法。doGet和doPost都接受请求 (HttpServletRequest)和响应(HttpServletResponse)。

    在实现登陆界面时发现form里面写的是post而逻辑处理页面代码都写在doget()里面依然可以正常运行,思考后发现是由于tomcat自动生成代码时,dopost()里面调用了doget()方法;

       

       

  • 相关阅读:
    数据对齐
    算法面试题集——从各大博客收集
    软件工程师规划
    链栈,顺序栈,单链队列,循环队列,非循环队列的简单实现
    C,C++文件和目录操作的一些整理
    WPF使用笔记-计时器,多线程更新界面,焦点移动等
    Heap Data Structure and Heap Sort
    YUV420P像素数据编码为JPEG图片
    根据txt文件中指定的文件名进行文件分类
    MFC显示图片和写入文件
  • 原文地址:https://www.cnblogs.com/boogie-xy/p/11575059.html
Copyright © 2011-2022 走看看