zoukankan      html  css  js  c++  java
  • javaweb小结2

    Tomcat服务器端口

      Tomcat所有配置都在conf文件夹下,server.xml是核心文件
       <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
      可以直接在此修改端口号, 但必须重启后才能生效.

     

    Tomcat服务器虚拟目录映射

    • 方法一: 在server.xml文件的host元素配置(不推荐,须重启)

      <Host name="localhost"  appBase="webapps"
                 unpackWARs="true" autoDeploy="true"
                 xmlValidation="false" xmlNamespaceAware="false">

             <Context path="/JavaWebApp" docBase="F:JavaWebProjectTest" />
    </Host>

    path:用来配置虚似目录,必须以"/"开头

    docBase:配置此虚似目录对应着硬盘上的Web应用所在目录

    目的: 将在F盘下的JavaWebDemoProject这个JavaWeb应用映射到JavaWebApp这个虚拟目录上.访问地址 localhost:8080/JavaWebApp/hello.xml

     

    • 方法二: tomcat自动映射

    tomcat会自动把webapps下所有web应用映射成虚拟目录,供外界访问.

     

    • 方法三: 在confCatalinalocalhost目录下添加一个以xml作为扩展名的文件

    比如建一个apple.xml,内容为<Context docBase="F:JavaWebProjectTest" />,那么访问地址为 localhost:8080/apple/hello.xml

    和方法一类似, context元素的path属性源自于是这个xml文件的名字,docBase是硬盘上的目录.

    该方法无须重启Tomcat服务器

     

    Tomcat配置虚拟主机

      <Host name="www.myTest.cn" appBase="F:JavaWebApps">
    </Host>

    浏览量输入一个域名后访问, 它会映射成IP地址访问, 先本地找域名的映射(windows是在C:WindowsSystem32driversetchosts),如果本地没找到,再从DNS(域名系统)找,只有找到了才能访问,否则无法访问.

     

     

    将JavaWeb应用打包成war包,将这个war包放到Tomcat服务器的webapps目录下,当Tomcat服务器启动时,就会自动将webapps目录下的war包解压

     

     

    HTTP协议

    hypertext transfer protocol(超文本传输协议)

    它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程

     

    在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源.

    在HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源.

     

    一个完整HTTP请求: 一个请求行,若干消息头,实体内容

    • 请求行: 请求方式最常用的get,post

      get: 高效,不安全,参数有限制

        post:
    • 消息头:

     

    Maven坐标

    • groupId : 包名(当前maven项目隶属的实际项目)

    • artifactId :项目名称( 当前实际项目中的Maven模块)

    • version : 使用构件的版本

    • packaging : 项目的打包方式(常见jar和war)

    • scope : 用来控制依赖和编译

      ①compile,缺省值,适用于所有阶段,会随着项目一起打包发布.

        ②provided,类似compile,期望JDK,容器或使用者会提供这个依赖,不会被打包.

      ③runtime,只在运行时使用

      ④test,只在测试时使用,只在测试编译和测试运行阶段可用,不会随项目发布

      ⑤system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它.(不推荐使用)

     

    Servlet接口 源码解析

      public interface Servlet {
       // 当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用
       public void init(ServletConfig config) throws ServletException;
       
       //返回ServletConfig对象, 包含Servlet初始化参数信息
       public ServletConfig getServletConfig();
       
       //每当请求Servlet时,Servlet容器就会调用这个方法
       public void service(ServletRequest req, ServletResponse res)            throws ServletException, IOException;
       
       //返回字符串, 包含servlet创建者,版本,版权等信息
       public String getServletInfo();
       
       //销毁Servlet时调用,释放Servlet对象占用的资源
       public void destroy();
    }

     

    GenericServlet抽象类 ,为Servlet接口中的所有方法提供了默认的实现

    HttpServlet抽象类是继承于GenericServlet抽象类

     

    HttpServlet源码解析

      //将ServletRequest类型对象转换为HttpServletRequest类型对象
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
       HttpServletRequest request;
       HttpServletResponse response;
       try {
           request = (HttpServletRequest)req;
           response = (HttpServletResponse)res;
      } catch (ClassCastException var6) {
           throw new ServletException("non-HTTP request or response");
      }

       this.service(request, response);
    }

    //解析HttpServletRequest的方法参数,分别调用7中不同方法doGet,doPost,doHead等等
    //如果继承HttpServlet并实现具体逻辑时,则不需要覆盖service方法了,只需要覆盖7种doXX方法(实际使用中常用的只有doGet和doPost)
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       String method = req.getMethod();
       long lastModified;
       if (method.equals("GET")) {
           lastModified = this.getLastModified(req);
           if (lastModified == -1L) {
               this.doGet(req, resp);
          }else{
               //省略
          }
      }
       //省略
    }

     

    HttpServletRequest接口

      public interface HttpServletRequest extends ServletRequest {
       public String getAuthType();
       //返回一个cookie对象数组
       public Cookie[] getCookies();
       //返回与这个请求相关的会话对象
       public HttpSession getSession();
       //返回指定HTTP标题的值
       public String getHeader(String name);
       //返回生成这个请求HTTP的方法名称
       public String getMethod();
       //返回请求上下文的请求URI部分
       public String getContextPath();
       //......
    }

     

    Cookie 是客户端技术,程序吧每个用户的数据以cookie的形式写给用户各自的浏览器

     

    JavaBean

    JavaBean是一个遵循特定写法的java类:

      必须具有一个无参构造函数.

    属性必须私有化.

    私有化属性必须通过public类型的方法暴露给其他程序,并且方法的命名遵循约定规范

     

    JavaBean的属性可以使任意类型,并且一个JavaBean可以有多个属性.

    每个属性一般都需要具有相应的setter方法(属性修改器),getter方法(属性访问器)

     

     

     

    JDBC(Java Data Base Connectivity)

    java数据库连接: 用于执行SQL语句的Java API.

    1. Driver接口

      Class.forName("com.mysql.jdbc.Driver");

        Class.forName("oracle.jdbc.driver.OracleDriver")
    2. Connection接口

      Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");

        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", "user", "password");

      Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port; DatabaseName=database", "user", "password");
    • createStatement() 创建向数据库发送预编译sql的statement对象.

    • prepareStatement(sql) 创建向数据库发送预编译sql的PrepareStatement对象.

  • 相关阅读:
    C++的精度控制
    N*N矩阵的旋转 不开辟新空间
    关于内存对齐的探索
    最大公约数,最小公倍数
    冒泡排序,直接选择排序,插入排序实现
    vector function trmplate
    function template
    dijit/_WidgetBase
    DOJO之gridx
    [b0008] Windows 7 下 hadoop 2.6.4 eclipse 本地开发调试配置
  • 原文地址:https://www.cnblogs.com/ShyPeanut/p/13857138.html
Copyright © 2011-2022 走看看