A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© CHNing 初级黑马   /  2018-5-21 16:01  /  609 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Servlet和浏览器协议
常见WEB服务器:
        Apache        :发布PHP
        IIS                :发布ASP
        WebSphere:IBM公司研发,收费大型服务器软件,支持EE所有规范
        WebLogo        :BEA,收费大型服务器软件,支持EE所有规范
        Tomcat          :Apache,免费小型服务器软件
协议:
        HTTP:规定浏览器和服务器之间要遵守的规则
        请求和响应模型
        先有请求后在有响应,请求响应成对出现
        默认端口号:80
        HTTP协议版本:
                1.0 :每次响应后即可关闭连接
                1.1 :响应后不会理解关闭链接,等到指定时间没响应后才会关闭链接
        WEB动态资源目录结构
                ----静态资源
                ----WEB-INF
                ----web.xml
                ----classes                class类文件
                ----lib                        jar包
                WEB静态网站可以没有WEB-INF
                发布WEB工程到Tomcat三种方式:
                        1.把工程复制到tomcat安装路径下/webapps
                        2.配置虚拟路径:tomcat/conf/server.xml中配置(不推荐 )
                                Host 节点下添加<Context path='/虚拟路径' docBase='盘符路径'>
                        推荐:
                        tomcat路径下:conf/Catalina/localhost/创建xml文件,文件名代表虚拟路径,<Context docBase='盘符路径' />
                tomcat路径下:webapps/**.war
                        1.把项目打包,扩展名改成.war
                        2.放到webapps下 ,服务器启动会自动解压
                配置好需要重启Tomcat
                启动服务:tomcat/bin/startup.bat


        Http协议:
                请求部分
                请求行:GET[请求方式] /**/*.xx[盘符路径] HTTP/1.1[协议版本]
                请求头:
                        User-Agent        :        浏览器类型
                        Referer                :        网页来源
                        IF-Modified-Since:        查找本地缓存
                        Refresh                :        定时刷新/定时跳转(配合Location属性使用)
                请求体:
                        Post会有请求体,Get没有
                        状态码:
                                200                : 成功
                                302                :重定向(配合Location使用)
                                304                :查找本地缓存
                                404                :资源不存在
                                500                :服务器内部错误
                响应头:
                        Last-Modified                :与请求中的IF-Modified-Since一起使用查找本地缓存
                        Content-Dispostion        :文件下载使用的头信息
                        Location                        :重定向的跳转路径
                        Refresh                                :定时刷新/定时跳转
                Tomcat:
                        bin                        :tomcat执行的文件
                        conf                        :tomcat配置文件
                        lib                        :运行的jar包
                        logs                        :运行日志文件
                        temp                        :产生的临时文件
                        webapps                :发布的web路径
                        work                        :JSP翻译成Servlet文件
        创建WEB项目:
                Java ReSources
                        SRC                                        JAVA文件
                WebContent                        资源文件
        Tomcat 常用问题
                1.JRE不能正常运行
                2.端口号冲突
        设置端口号:
                conf/Server.xml
                        Connector节点 Port="端口号"
                查看端口号:netstat -ano
        3.配置文件错误
        Servlet概述
                运行在服务器上的小JAVA程序,处理客户端发送过来的请求和响应。
        Servlet作用:
                处理从客户端发送来的请求,在响应给客户端
        创建Servlet:
                创建一个类,实现Servlet
        ServletRequest
                String getParameter(String name)                接受一个名称对应一个值
                String[] getParameterValues(String name) 接受一个名称对应多个值
                Map<String,String>        getParameterMap()                                接受表单中所有数据,key参数名称,value值
                Map<String,String[]> Enumeration getParameterMap()
        ServletResponse
                OutputStream getOutputStream()                //获取输出流


        XML配置
                web.xml
        1.配置Servlet
        <servlet>
                <servlet-name>Servlet类自定义名称</servlet-name>
                <servlet-class>字节码路径</servlet-class>
        </servlet>
        <servlet-mapping>
                <servlet-name>和Servlet类自定义名称一致</servlet-name>
                <url-pattern>/xxx映射虚拟路径</url-pattern>
        </servlet-mapping>
       
        Servlet实现关系
                Servlet                        :接口
                GenericServlet        :通用的Servlet
                HttpServlet                :针对Http协议的类
        WEB导包直接把jar包添加到lib文件中
        传统三层:
                Web层/控制层(Servlet)
                        作用:处理流程
                业务逻辑层(Service)
                        作用:处理各种业务逻辑
                数据访问层(Dao)
                        作用:所有操作数据库动作
        Servlet
                Servlet 生命周期
                        声明周期:一个对象从创建到销毁的过程
                                第一次访问Servlet时创建Servlet实例
                        任何一个请求访问Servlet都会创建一个线程访问Servlet下的servlet,根据请求方式不同,调用doPost和doGet
                        当项目中在服务器移除时,或者正常关闭时调用destroy方法
                        Servlet有且只有一个
                        配置Servlet服务器启动时创建好Servlet对象
                web.xml中servlet标签中配置
                        当页面加载费时间的动作的时候,可以把这个动作写在服务器启动时执行
                        <load-on-startup>2以上数字</load-on-startup>                                                        1是默认c配置,管理默认页面(页面出错弹出的页面)
        url-pattern路径匹配
                1.完全路径匹配                :以 / 开始                        /xx/xxx/xxxx
                2.目录匹配                        :以 / 开始,* 结束                /xx/xxx/*
                3.扩展名匹配                        :不能以 / 开始,以 * 开始   *.xxx文件(指定扩展名文件)
                匹配优先级                        :完全路径匹配 > 目录匹配 > 扩展名匹配
        开发中路径编写
                尽量用绝对路径(不带协议绝对路径):                        /工程名/具体页面
        HttpServletResponse
                响应头
                        设置页面状态码
                        setStatus(int sc)
                响应行
                        针对设置多个值时
                        addDateHeader(String name,long date)
                        addHeader(String key,String value)
                        addIntHeader(String key,int value)
                        针对一个值是
                        setDateHeader(String name,long date)
                        setHeader(String key,String value)
                        setIntHeader(String key,int value)
                响应体
                        ServletOutputStream getOutputStream()               
                        PrintWriter getWriter()
                几种页面跳转方式:
                        协议跳转
                                Refresh 秒,URL=网址
                        meta 头部分
                                equiv="Refresh" Content="秒,URL=网址"
                        JS实现 cation.href跳转到指定网页
                解决响应时页面出现乱码问题:
                        设置响应内容类型。可以包含编码
                        setContentType("  text/html;charset='UTF-8'    ");
                       
        ServletContext对象
                作用:存取数据,两个类之间共享数据
                作用域:整个WEB工程
                创建:服务器启动时候,tomcat在为每个项目创建一个ServletContent对象(且一个项目只有一个ServletContent对象)
                销毁:服务器关闭时或者移除当前项目时销毁。
                作用:
                        1.用来获取全局初始化参数
                        2.用来获取文件的MIME类型
                        3.作为域对象的存储数据
                setAttribute(String name)                                传入数据
                Object getAttribute(String name)                        获取数据
                removeAttribute(String name)                        移除数据
                String getServletName()                                获得XML中设置的name的值
                Enumeration getInitParameterNames()        获得所有Servlet的初始化参数名称
                Servlet中不能设置成员属性,因为多线程访问Servlet对象,有资源抢占问题
        ServletConfig
                作用:获取Servlet配置
                        String getInitParameter("名称")
                web.xml中配置
                <servlet>
                        <init-param>
                                <param-name>名称</param-name>
                                <param-value>        值</param-value>
                        </init-param>
                </servlet>

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马