Servlet学习了解

来源:互联网 发布:机器码算注册码软件 编辑:程序博客网 时间:2024/05/20 03:44

Http协议: 掌握一些头信息
请求头

Accept: text/html,image/*          --支持数据类型  text/htmle  text/css  text/javascript  大类型/小类型   mine类型  *代表全部
Accept-Charset: ISO-8859-1     —字符集  拉丁一,不支持 中文
Accept-Encoding: gzip              --支持压缩
Accept-Language:zh-cn            --语言环境
Host: www.itcast.cn:80              --访问主机
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT       --缓存文件的最后修改时间
Referer: http://www.itcast.com/index.jsp      --来自哪个页面、防盗链
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)浏览器内核  MSIE:IE  chrome:谷歌
Cookie
Connection: close/Keep-Alive        --链接状态
Date: Tue, 11 Jul 2000 18:23:51 GMT     --时间


响应头
Location: http://www.it315.org/index.jsp      --跳转方向
Server:apache tomcat               --服务器型号
Content-Encoding: gzip                --数据压缩
Content-Length: 80                --数据长度
Content-Language: zh-cn           --语言环境
Content-Type: text/html; charset=GB2312           --数据类型
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT     --最后修改时间
Refresh: 1;url=http://www.it315.org          --定时刷新
Content-Disposition: attachment; filename=aaa.zip     --下载
Set-Cookie:SS=Q0=5Lb_nQ; path=/search
Expires: -1                         --缓存
Cache-Control: no-cache                 --缓存
Pragma: no-cache                       --缓存
Connection: close/Keep-Alive                  --连接
Date: Tue, 11 Jul 2000 18:23:51 GMT

案例1 — 完成登陆案例
        收集用户数据
        需要:属性:   name  
                   提交的地址: action
                    请求方式: post
        

servlet : 动态的web开发技术,本质就是一个类,运行在服务端的一个java小程序
                    可以处理业务逻辑,生成动态的web内容

编写servlet:
                    1.编写一个类: 继承与httpServlet,重写dopost方法
                    2.编写配置文件,注册servlet,绑定路径
                    3.访问,主机名称:端口/项目/路径

编写一个servlet步骤:
                    1 编写一个类:a 继承httpservlet类
                                             b 重写doGet或者dopost方法
                    2 编写配置文件(wen-inf/web-xml)
                                            a.注册servlet
                                            b.绑定路径
                    3 访问 : http://主机:端口/项目名/路径

                    4    接受参数: 格式 key=value
                                             通过request.getparam(“key”)       
                    5  会写内容:
                                response.getWrite.print(“数据”)        
                   6 中文乱码
                                response.setContentType(“text/html; charset=utf-8”);  

步骤分析:
               1.现有数据库和表
                    create  dataSource  web09;
                    use web09;
                    create table user {
                            id Int primary key out_incement
                            username varchar(20),
                            password  varchar(20),
                            email  varchar(20),
                            name varchar(20),
                            sex varchar(20),
                            birthday archer(20),
                            hobby  archer(20)      
                    }
               2.复制页面
                        修改login.xml
                        给用户和密码添加name属性
                        修改表单的action属性
                                            action=“http://locahost/8080/login"
               3. 创建servlet
               4.导入jar包:
                                驱动   dbUtls  c3p0
                5 导入工具栏和配置文件:
                     dataSourceUtils
                    才p9-config.xml
                6 创建server(loginServlet : 路径login)
                            接受用户名和密码
                            调用service层,完成登陆操作
                            提示信息
                7 userService
                        login (userName, passWord)



   servlet总结: 体系了解
         servlet : 接口
            
            httpServlet: 抽象类

                                            自定义的Servle 
                                            Servlet的常用方法:       Servlet 生命周期    是单实例多线程的 默认第一次访问的时候,服务器创建Servlet,      并调用init方法,并调用一次service方法  
                                                                                  void init(servlet  config) 初始化方法   执行一次,第一次访问的时候执行
                                                                                  void service(ServletRequest request, ServletResponse response) 服务,业务逻辑   请求一次,执行一次,请求来的时候执行
                                                                                 void destroy() : 销毁   Servlet被移除或者服务器被关闭的时候
             
                                                               servletConfig getServletConfig

           GenericServlet: 抽象类
                                    除了service方法没显现,其他的都实现了

            httpServlet常用方法:
                                service方法做了实现,把参数强转,重载service方法
                                重载的service发放获取请求方式,根据请求方式的不同调用不同的doXXX方法
                  
            在servlet标签有一个子标签 load-on-startup     :  作用:用来修改servlet的初始化时机
                                                                                             取值:正整数  值越大优先级越低      

            当我们的配置文件里面没有指定配置的话,就查找tomcat的web.xml

            路径的写法: 相对路径:
                                        当前路径
                                        上一级路径
                                   绝对路径:
                                            带主机和协议的绝对路径:(访问站外资源)
                                                        http//:www.baidu.com/XXX
                                             不带主机和协议的绝对路径
                                                        /day/hello

              定时刷新:
           常见的响应头-refresh
                    响应头格式: 
                                        refresh:描述; url=跳转的路径
                           设置响应头: 
                                                   response.setHeader(string key, string value) ; 设置字符串形式的响应头
                                                   response.addHeader(String,String value); 追加响应头,若之前设置过这个头,则追加;    
                                                                若没有设置过,则设置
                                        设置定时刷新:
                                                 response.setHeader(“refresh”,”3;url=/login.html”)
            
               统计登陆成功的总人次数:
                            在一个用户登陆成功之后,获取之前登陆成功的总人次,将次数加1
                            在访问另一个Servlet的时候,显示登陆成功的总人次

                
               ServletContext(全局管理者) 上下文:
                            常用的方法:
                                                setAttbute(String  key, object value) 存取值
                                                 object       getAttbute(string key) 获取值
                                                removeAttbute(String key) 移除值
                            获取全局管理者:
                                            1. 项目启动的时候,初始化登陆次数,在loginServlet的init方法中,将次数初始化为0,放入ServletContent上
                                            2.getServletContent();
                                            3.登陆成功之后,在loginServlet中获取全局管理者,获取登录成功的总数,然后加1,然后设置回去
                                            4.当访问showServlet的时候,获取全局管理者,获取登陆成功的总次数,然后在页面打印出来即可

                ServletConfig: Servlet的配置对象 
                servletContext : 一个项目的引用,代表的当前项目
                                            当项目启动的时候,服务器会为每个web项目创建一个ServletContext对象
                                            当项目被移除的时候或者服务器关闭的时候,ServletContext销毁
                                            作用:   1.获取全局的初始化参数
                                                          2.共享资源
                                                          3.获取文件资源
                                                                      getRealPath("/1.txt"):获取项目发布到服务器上位置的根目录
                                                                       getResourceAsStream("/1.txt"):以流的形式返回一个文件
                                             获取方式: 1.ServletConfig.getServletContext()
                                                                 2.getServletContext 

                 servletContext : 域对象  共享的数据
                                              当成map集合  常用方法   XXXattbute
                                              
                                              
                            
        
 



            
                        

            
                                    
                    
  
                    


0 0