zoukankan      html  css  js  c++  java
  • 06Web服务

    1.web开发入门

    1.1 引入

    软件结构分类:

    CS结构:客户端和服务器端

    特点:

    1)必须安装特点的客户端程序

    2)服务器端升级,客户端同步升级

    BS结构:浏览器和服务器端                 

    特点:

    1)不需要安装特点的客户端(只需要浏览器)

    2)服务器端升级,客户端不需要升级的。

    1.2 服务器

    从物理上一台PC机器,配置比较高。

    • web服务器:在PC机器安装web服务软件,提供web服务
    • 数据库服务器:在PC机器安装了数据库软件,提供数据管理服务
    • 邮件服务器:在PC机器上安装了可以收发邮件服务软件

    1.3 web服务软件

    web服务软件作用: 把本地资源文件共享给外部访问

    package cn.jxufe.java.chapter03;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /*
     * socket服务器端程序
     */
    public class Server {
    
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            // 1)创建ServerSocket对象,监听某个端口
            ServerSocket serverSocket = new ServerSocket(8080);
            System.out.println("服务器正在启动....");
            while (true) {
                // 2)接收客户端连接
                Socket socket = serverSocket.accept();
                // 3)把本地的hello.html文件内容发送给socket客户端
                // 3.1 构建数据发送通道
                OutputStream out = socket.getOutputStream();
                // 3.2 读取本地hello.html文件内容
                FileInputStream fis = new FileInputStream("e:/hello.html");
                /**
                 * 输入流 输入字节流: InputStream FileInputStream BufferedInputStream
                 * 
                 * 方法: read(): 读取一个字节 read(byte[] data): 读取多个字节 如何判断文件结束? 返回的长度等于-1
                 * 
                 * 输入字符流: Reader FileReader BufferedReader
                 * 
                 * 方法: read(): 读取一个字符 read(char[] data): 读取多个字符
                 */
                // 边读边写
                /*int len=0;
                while( (len = fis.read())!=-1  ){
                    out.write(len);
                }*/
    
                // 使用字节数组形式
                byte[] buf = new byte[1024];
                int len = 0;
                while ((len = fis.read(buf)) != -1) {
                    out.write(buf, 0, len);// 写出指定的buf数组内容,从0开始写,写到len位置
                }
    
                // 4.关闭资源
                fis.close();
                out.close();
    
            }
        }
    
    }

    1.4 市面上常见的web服务软件

    WebSphere: 是IBM公司。是支持JavaEE规范的。收费的。                                 

    IIS:是微软公司。收费的。和net语言兼容性最好。

    WebLogic:是BEA公司。收费的。支持JavaEE规范的。

    Tomcat: 免费的。和java语言兼容性最好。不完全支持javaEE规范的。支持servlet,jsp.jdbc,javamail,但是不支持ejb

    2.tomcat服务器基本使用

    2.1 基本使用

    1)到apache开源组织下的官网下载

    2)下载的版本:

    安装版: EXE    msi

    压缩版: zip   rar   tag.gz

    3)启动软件

    3.1 找到%tomcat%/bin/startup.bat。双击。

    验证是否成功,打开浏览器:

    http://localhost:8080

    3.2 看到一只猫的页面,证明ok了!

    4)关闭软件

    4.1 找打%tomcat%/bin/shutdown.bat.双击

    2.2 体验tomcat服务器如何共享文件

    规则:把文件拷贝到webappps目录下,不能单独共享文件,必须以目录(网站)形式共享

     

    2.3 URL

    http://localhost:8080/web/hello.html   统一资源定位符

     http://      协议。http协议

    执行流程:

    1) 本地hosts文件,  ip地址 域名 (c:/windows/System32/drivers/etc/hosts)

    2)在hosts文件中找不到,到网络运营商的DNS服务器中找域名对应的IP地址。

    3)找到,访问对应的ip地址的PC机器.

    localhost     域名。

    本地域名: localhost

    外部域名: www.baidu.com

    8080        端口。软件监听端口

    qq: 5555

    tomcat: 8080

    mysql: 3306

    oracle: 1521

    系统默认端口: 80  

    注意: 一个软件监听了默认端口,那么访问这个软件不需要写80.

    web         网站名称。(web应用的名称)

    hello.html    网站中的资源名称。

    2.4 tomcat启动常见的问题

    1)闪退

    原因: tomcat软件使用java语言开发,需要jvm运行。tomcat软件在启动时寻找JAVA_HOME环境变量,JAVA_HOME配置的是jdk的目录。

    解决办法:配置JAVA_HOME环境变量

                      

    2)端口占用的问题

    原因:其他软件在占用端口

    解决办法:

    a)关闭其他软件

    b)修改tomcat软件监听的端口

    3)CATALINA_HOME变量的问题

    4)tomcat启动出现乱码

      原因:Tomcat编码和电脑系统编码不一致

      解决办法:F:apache-tomcat-7.0.94conflogging.properties文件中指定编码方式

      java.util.logging.ConsoleHandler.encoding = GBK(本来是UTF-8)

    3.Tomcat服务器目录结构

             |-bin目录: 存在tomcat软件操作指令。

                                startup.bat   catalina.bat start

                                shutdown.bat   catalina.bat stop

             |-conf目录: 存在tomcat软件的配置文件

             |-lib目录: 支持tomcat软件运行的jar包,因为tomcat使用java语言开发的。

             |-logs目录: 存放tomcat运行的日志信息

             |-temp目录: 存放临时文件

             |-webapps目录: 存放web应用(网站)的目录

             |-work目录: tomcat运行目录,存放jsp页面运行过程中产生的临时文件。

    4.网站(web应用)目录结构

    |-WebRoot         根目录

    |- 普通文件(html,css,js,images)

    |- WEB-INF      目录。固定写法

    |-classes     目录。固定写法。存放class文件

     |-lib          目录。固定写法。存放jar包。

     |-web.xml    文件。

    注意 :

    1)WEB-INF外面的文件是可以直接通过浏览器访问的。

    2)但是WEB-INF里面的文件是不可以通过浏览器直接访问的。如果想让WEB-INF里面的内容提供给外部访问,那么需要在web.xml文件中配置。

    5.如何发布网站(web应用)

    5.1 把整个网站拷贝到webapps目录下

     ROOT是默认网站,访问默认网站是不需要名称的。

     配置首页

    <?xml version="1.0" encoding="utf-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       version="2.5"> 
    
        <!-- 配置网站的首页 -->
        <welcome-file-list>
            <welcome-file>hello.html</welcome-file>
        </welcome-file-list>    
    
    </web-app>

    访问首页不需要名称的!

    弊端: tomcat软件和发布的网站是在一起的。

    5.2 配置虚拟网站

    <!-- 
    #server.xml
    配置虚拟网站
            docBase:网站绝对路径
            path:访问网站的名称
            -->
            <Context docBase="C:web" path="/jxufe"/>

    好处:软件和网站是分离的。

    注意: path可以不写内容,表示当前网站是默认网站,优先于ROOT的网站。

    弊端:修改server.xml文件,风险比较大

    5.3 通过添加xml文件的方式配置虚拟网站(推荐)

    1)在conf/Catalina/localhost  添加jxufe.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="C:web" />

    6.站点配置

     

    name: 表示站点名称。访问站点就是使用站点名称。

    appBases: 表示站点根目录

    站点和网站的关系?

               一个站点可以包含多个网站。

               一个网站就在一个站点中。

    1)在server.xml文件中添加host标签

     

    2)在本地的hosts文件,中添加一个站点和ip地址的映射

     

    3)访问站点的百度音乐项目

    7.动态网站的开发

    html/css/javascript 前端(静态网页)

    静态网站: 只包含静态网页

    动态网站: 既有静态网页,可以有动态网页

    静态网页:用户多个访问这个网页时,网页的源码是不会改变的。

    动态网页:用户多个访问这个网页时,网页的源码是有可能改变的。

    使用servlet技术开发动态网页

    Servlet特点:

    1)servlet就是一个普通java类,继承HttpServlet类

    2)servlet交给tomcat服务器运行(web服务器软件)!!!

    手动开发一个servlet

    1)编写一个普通的java类,继承HttpServlet类,覆盖doGet方法(
    注意: 到tomcat的lib目录下拷贝servlet-api.jar导入到你的项目中
    
    public class HelloServlet extends HttpServlet{
        
        //覆盖doGet
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            resp.setContentType("text/html;charset=utf-8");
            //向浏览器输出内容
            resp.getWriter().write("当前时间为:"+new Date());
        }
        
    }
    
    
    2)把servlet交给tomcat服务器运行!!!!!!
    
    2.1 把servlet对应的class文件拷贝到tomcat的某个项目(bbs)的WEB-INF/classes目录下
    
    2.2 在bbs项目的WEB-INF/web.xml文件配置servlet
    
    <?xml version="1.0" encoding="utf-8"?>
    
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       version="2.5"> 
        <!--配置servlet -->
        <servlet>
            <!-- servlet名称,自定义-->
            <servlet-name>HelloServlet</servlet-name>
            <!-- servlet类的全名:包名+类名 -->
            <servlet-class>gz.itcast.b_servlet.HelloServlet</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <!-- servlet名称,和上面的名称保持一致 -->
            <servlet-name>HelloServlet</servlet-name>
            <!-- 公开给外部访问这个servlet的名称(路径) -->
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    
    </web-app>
    
    
    3.通过URl访问这个servlet
    
    http://localhost:8080/bbs/hello

    用工具开发一个servlet

    1)创建一个bbs的web project
    
    2)在WebRoot下编写静态网页
    
    3)在src下编写动态网页
    
        3.1 在src右键选择 “servlet”
        3.2 写上servlet的包,名,选择覆盖doGet方法 -> next
        3.3 修改servlet的名称,修改访问servlet的url -> finished    
    
    4)myecplise关联tomcat服务器
        4.1 window-> preferences -》 搜索“tomcat” -> 找到“tomcat6.x”
        4.2 选择 tomcat的根目录
        4.3 把disable -> enable
    
    5)部署网站
        5.1 点击发布图标 -> 选择网站- 》 选择发布的tomcat服务器
    -> ok
    
    6)访问:
        静态文件: http://localhost:8080/bbs/index.html
        动态文件: http://locahost:8080/bbs/hello    
  • 相关阅读:
    SAP 增强篇 Method1 BADI增强的查找方法
    增强篇2 生产订单屏幕增强
    增强篇1 PO保存增强
    ABAP DEMO篇21 选择屏幕显示说明TEXT
    ABAP字符串操作1 检查字段小数位的长度
    采购信息记录批导BAPI
    POPUP_GET_VALUES 金额字段不可编辑
    使用弹窗批量修改数据POPUP_GET_VALUES
    Win10手记-取色器ColorPicker的实现
    ASP.NET Web API实现微信公众平台开发(三)自定义菜单
  • 原文地址:https://www.cnblogs.com/xinmomoyan/p/11147328.html
Copyright © 2011-2022 走看看