Java学习笔记:web1

1 篇文章 0 订阅
1 篇文章 0 订阅

web相关概念

  • 软件架构:

        C/S:客户端/服务器端

        B/S:浏览器/服务器端

  • 资源分类:

        静态资源:所有用户访问之后,得到的结果都是一样的。静态资源可以直接被浏览器解析。如html、css、JavaScript

        动态资源:每个用户访问相同的资源之后,得到的结果可能不一样。动态资源被访问之后,需要先转换为静态资源,再返回给浏览器。如servlet、jsp、php、asp。

  • 网络通信三要素

        IP:电子设备(计算机)在网络中的唯一标识

        端口:应用程序在计算机中为唯一标识

        传输协议:规定了数据传输的规则

                基础协议:

                        tcp:安全协议,三次握手。

                        udp:不安全,速度快

web服务器软件

 服务器:安装了服务器软件的计算机

服务器软件:接收用户的请求,处理请求,作出响应

web服务器软件:除了服务器软件的功能,还可以部署web项目,让用户通过浏览器访问项目。

常见Java相关web服务器软件:

webLogic:Oracle公司,大型javaEE服务器,支持所有的JavaEE规范,收费的。

(JavaEE,Java语言在企业开发中的使用的技术规范的总和,一共规范了13项大的规范)

webSphere:IBM公司,大型javaEE服务器,支持所有的JavaEE规范,收费的。

JBOSS:JBOSS公司,大型javaEE服务器,支持所有的JavaEE规范,收费的。

Tomcat:Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范servlet/jsp,开源的、免费的。

Tomcat

 文件夹目录解读:

 启动可能遇到的问题:

黑窗口一闪而过

        原因:未正确配置JAVA_HOME

启动报错:

        找到占用8080端口的进程PID,关掉

                命令窗口:netstat --ano

        或者修改自身的端口

                Tomcat/conf/server.xml


    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

                修改默认端口号

关闭:

        bin/shutdown.bat

        或者命令窗口:Ctrl+c

部署:

        部署项目的方式:

                1、直接将项目放入webapps目录下

                        项目的访问路径===》虚拟目录

                        简化部署:将项目打包成war包,再放入webapps目录下,war包会被自动

                解压缩。

                2、配置文件:server.xml

                        <Host>标签中部署

<!--部署项目-->
<Context docBase="D:\English\IntelliJIDEAProjects\Java\webLearning\hello" path="/aaa"/>

docBase是项目路径

path是访问时的虚拟路径

                3、server是Tomcat核心配置,不建议随意修改。

                        conf\Catalina\localhost目录下创建xml文件,加入代码:

<Context docBase="D:\English\IntelliJIDEAProjects\Java\webLearning\hello"/>

        静态项目和动态项目

               目录结构:

                        java动态项目:

                                根目录

                                        WEB-INF目录

                                                web.xml(web项目核心配置文件)

                                                classes目录:放置字节码文件的目录

                                                lib目录:放置依赖jar包

        集成IDEA

servlet

 1、概念:运行在服务器端的小程序

        servlet是一个借口,定义了java类被浏览器访问的规则

        我们定义一个类,实现servlet接口即可

2、快速入门:

        创建JavaEE项目

        定义一个类,实现servlet接口

        实现接口中的抽象方法

        配置Servlet:在src/main/webapp/WEB-INF/web.xml中配置

    <!--配置servlet-->
    <servlet>
        <servlet-name>demo1</servlet-name>
        <servlet-class>com.zhang.myfirstjavaee.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo1</servlet-name>
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>

3、执行原理:

        当服务器接收到客户端浏览器的请求之后,会解析请求URL路径,获取访问的Servlet的资源路径。

        查找web.xml文件,是否有对应的<url-pattern>标签体内容

        如果有,则再找到对应的<servlet-class>全类名

        Tomcat会将字节码文件加载到内存,创建对象

        调用方法

4、Servlet中的方法:

        inti():初始化方法,在Servlet被创建的时候执行,且只会被执行一次

        getServletConfig():Servlet的配置对象

        service():提供服务的方法,在Servlet被访问时执行,可执行多次

        getServletInfo():获取Servlet的一些信息:版本、作者、...

        destroy():销毁方法,在服务器被正常关闭时执行,且执行一次

5、Servlet中的生命周期:

被创建:执行init方法,只执行一次

        默认情况下,第一次被访问时创建

        可以修改创建时机——在web.xml文件中,<serclet/>标签内,加入<load-on-startup>标签,当值为负数时,表示第一次被访问时就创建,如果为0或者正整数,则表示当服务器启动时被创建。

        Servlet的init方法只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的;多个用户访问时可能存在线程安全问题。尽量不要在Servlet中定义成员变量,及时定义了,也不要赋值。

提供服务:执行service方法,执行多次

        每次访问Servlet时,都要调用

被销毁:执行destroy方法,执行一次

        服务器关闭,Servlet销毁

        只有服务器正常关闭时,才会执行

        一般用于释放资源

6、注解配置(不用写web.xml了)

在类上使用注解代替配置xml文件

7、Servlet体系

可以不用实现Servlet接口,而是继承其实现类,这样就可以不用把每一个Servlet的抽象方法都去重写

实现类有:

GenericServlet:将其他方法作为空实现,只将service方法作为抽象方法

HttpServlet:(主用)

8、Servlet相关配置

        注解里面的值是一个数组,所以可以配置多个访问路径

        路径定义规则:

                /XXX

                /XXX/XXX,多层路径,目录结构

                *.do:do是自定义拓展名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值