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()方法;

       

       

  • 相关阅读:
    ClickOnce發布經驗
    reporting Server組件不全引起的致命錯誤
    異步調用
    Usercontrol Hosted in IE
    MATLAB命令大全(转载)
    一种保护眼睛的好方法
    关于oracle自动编号
    An Algorithm Summary of Programming Collective Intelligence (1)
    An Algorithm Summary of Programming Collective Intelligence (3)
    An Algorithm Summary of Programming Collective Intelligence (4)
  • 原文地址:https://www.cnblogs.com/boogie-xy/p/11575059.html
Copyright © 2011-2022 走看看