黑马程序员技术交流社区

标题: 学习让我快乐 [打印本页]

作者: 胡金超    时间: 2019-8-30 15:35
标题: 学习让我快乐

        1.servlet的收尾
                a)继承体系
                        extends HttpServlet
                        重写doGet或者doPost
                b)路径写法
                        1. /user/login
                        2. /info
                        3. *.do
                        4. /hello.do
                        5. /*.do(报错)
        2.request
                Http
                        格式
                       
                                请求行
                                请求头
                                请求体
                               
                        注意:
                                get没有请求体.数据在url处拼接
                                post有请求体
                               
                        get和post去别
                                1.安全
                                2.地址栏
                                3.数据长度
                                4.上传只能时post
                request的原理
                        一次访问对应一次请求和一次响应
                        一次访问到服务器,服务器针对这次访问创建一个request和response对象把参数传给servlet的service方法
                       
                request的作用
                        1.获取请求参数
                                getMethod(0
                                getContextPath()
                                getRequestUri()
                                getRequestUrl()
                                getHeader()
                                getParameter()
                                getParameterValues()
                                getParameterMap()
                                setCharacterEncoding()
                        2.作为域对象进行数据共享(只能请求转发时使用!!!!)
                                setAttribute()
                                getAttribute()
                                removeAttribute()
                        3.进行页面的请求转发
                                request.getRequestDispatcher("路径").forward(request,response)
                               
                               
                        请求转发的特点
                                1.地址栏不发生改变
                                2.只能访问服务器内部资源(包括/WEB-INF)
                                3.只有一次请求
                               
                               
                                注意事项:
                                        a->b  a是post  b是post
                                        a->web-inf中内容
                                                req.getRequestDispatcher("/WEB-INF/hehe.jsp").forward(req,resp);
                                                注意:/WEB-INF/只能通过请求转发访问
                               
                       
路径写法
        相对路径
                要把当前路径和目标路径写出来,以当前路径作为参考系,写目标路径
                        ./                当前路径
                        ../                上一级
                        ./可以省略
               
        绝对路径
                基于浏览器的绝对路径
                        /虚拟路径/访问路径
                       
                       
BeanUtils
        把服务器接收的数据自动封装到一个实体类中
       
        1.获取浏览器传到后台请求参数
        Map<String,String[]> map = request.getParameterMap();
        2.创建一个空的对象
        User u = new User();
        3.使用BeanUtils进行封装
        BeanUtils.populate(u,map)
       
       
        属性和成员变量
       
                User
                        name        --> 成员变量
                       
                        setUsername(String name){                属性是username
                                this.name = name;
                        }
                       
        属性时根据set和get方法来的!!!!!!!
       
       
        反射        ->    内省
       
############################################################################
响应
   状态码
                200                        成功
                302                        重定向
                304                        缓存                get请求 图片 js css
                400                        坏的请求(框架!!!)
                403                        权限不足
                404                        页面无法访问                最常出现问题之一
                405                        方法不支持
                500                        服务器内部资源错误        最常出现的问题之一
               
                404                ->                路径写错
                500                ->                代码写错
               
        重定向和请求转发的区别!!
                请:一次请求 重:二次请求
                请:地址栏不变 重:地址栏改变
                请:访问服务器内部资源 重:访问外部和服务器内部资源(不能访问/web-inf下的资源)
                请:在request域中数据共享 重:不能在request域中谁共享
               
       
        常见的相应头
                content-type                                设置响应编码,设置内容mime类型
                content-disposition                        场景:下载
       
        响应头和请求头的区别
                请求头:        发送请求时浏览器携带到服务器的数据
                响应头: 服务器处理完请求后,将数据回写时携带回浏览器的数据
               
               
        response
                1.往浏览器回写数据
                        response.getWriter().write()
                        response.getOutputStream().write()
                2.控制页面跳转
                        response.sendRedirect()
                3.解决响应乱码
                        字符流
                                response.setContentType("text/html;charset=utf-8");
                        字节流
                                response.setContentType("text/html;charset=utf-8");
                                response.getOutputStream().write(字符串.getBytes("utf-8"))
                               
                               
                        response.setContentType("text/html;charset=utf-8")作用?
                                1.告诉浏览器以utf-8的形式去接收数据
                                2.把数据写回到浏览器的时候用utf-8的格式输出
                       
                       
                       
        路径
       
                绝对路径
                        找根路径!!!
                基于服务器端的绝对路径(请求转发中使用)
                        /访问路径
                        注意:!!!!不加虚拟路径
               
                基于浏览器端的绝对路径
                        /虚拟路径/访问路径
       
        验证码
                防止恶意提交表单
               
               
                实现步骤
                        1.创建图片对象
                        2.画框
                        3.填背景色
                        4.生成验证码
                        5.画干扰线

                验证码生成
                        随记生成
                                A-Za-z0-9
                               
                       




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2