JAVAWeb--内置对象

jsp内置对象(自带的,不需要new 也能使用的对象)
   9大内置对象
        一、out:输出对象 向客户端输出内容
        二、request:请求对象,储存“客户端向服务端发送的请求”
            常见方法
                String getParameter(String name):根据请求的字段名key,返回字段值value
                String[] getParameterValues(String name):根据请求的字段名key,返回多个字段值value
                setCharacterEncoding("编码格式UTF-8"):设置请求post方式的编码
                void getRequestDispatcher(“b.jsp").forward(request,response) :请求转发的方式跳转页面 A-》B
                ServletContext void getServerContext();获取项目的ServletContext对象

            get与post请求方式的区别:
              1.get方式 在地址栏显示请求信息(但地址栏能够储存的信息有限 4.5kb 图片等出现在地址栏无法容纳全部数据而出错) post 不会显示
              2.文件上传操作,必须是post

            统一请求编码 request
                a.get方式请求 如果出现乱码,解决:
                    1.统一每一个变量的编码  new String(旧编码,新编码)
                    2.修改server.xml,一次性更改tomcat默认的get提交的编码(URIEncoding=“UTF-8”)
                b.post
                    setCharacterEncoding("编码格式UTF-8"):设置请求编码

       三、 response:响应对象
            常见方法:
                void addCookie( Cookie cookie ); 服务端向客户端增加cookie对象
                void sendRedirect(String location ) throws IOException; :页面跳转的一种方式(重定向)
                void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)
                示例:登陆
                login.jsp  -> check.jsp  ->success.jsp

                                  请求转发			     重定向

                地址栏是否改变		不变(check.jsp)		改变(success.jsp)

                是否保留第一次		    保留			            不保留		--4种范围对象
                请求时的数据

                请求的次数		    1			            2

                跳转发生的位置		    服务端			客户端发出的第二次跳转


                转发、重定向:

                转发:
                张三(客户端)     ->    【 服务窗口 A (服务端 )    ->  服务窗口B  】


                重定向:
                张三(客户端) 	  -> 	服务窗口 A (服务端 ) ->去找B

                张三(客户端)    -> 	服务窗口 B (服务端 ) ->结束

        四、session(服务端)
            Cookie(客户端,不是内置对象):Cookie是由服务端产生,再发给客户端保存
                相当于本地缓存的作用:客户端-》服务端
                作用:提高访问服务端的效率,但是安全性低
                key=value
                javax.servlet.http.Cookie
                方法:
                    public Cookie(String key ,String value)
                    String getName()获取key
                    String getValue()获取value
                    void setMaxAge(int expiry)设置最大有效期 单位:s
                服务端准备发给客户端
                    response.addCookie(Cookie cookie)
                    方式:页面跳转(转发,重定向)
                客户端获取Cookie: request.getCookie()

                服务端增加cookie:response对象
                客户端获取cookie:request对象
                不能直接获取某个对象,只能全部获取所有cookie

            session :会话
            a.浏览网站:开始-关闭
            b.购物:  浏览、付款、退出
            c.电子邮件:浏览、写邮件、退出
            开始-结束


            session机制:

            session 储存在服务器
            客户端第一次请求服务端时,(jsessionid-sessionid)服务端会产生一个session对象(用于保存该客户的信息);
            并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session);
            服务端由会 产生一个cookie,并且 该cookie的name=JSESSIONID ,value=服务端sessionId的值;
            然后 服务端会在 响应客户端的同时 将该cookie发送给客户端,至此 客户端就有了 一个cookie(JSESSIONID);
            因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID - sessionID)

            客户端第二/n次请求服务端时:服务端会先用客户端cookie种的JSESSIONID  去服务端的session中匹配sessionid,如果匹配成功(cookie  jsessionid和sesion sessionid),说明此用户 不是第一次访问,无需登录;


            例子:
            客户端:		    顾客(客户端)
            服务端: 存包处   -  商场(服务端)

            顾客第一次存包:商场 判断此人是否之前已经存过包(通过你手里是否有钥匙)。
            如果是新顾客(没钥匙) ,分配一个钥匙 给该顾客; 钥匙 会和 柜子 一一对应;

            第二/n次 存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)
            如果是老顾客(有钥匙),则不需要分配;该顾客手里的钥匙 会 和柜子 自动一一对应。


            方法:
            String getId():获取sessionId
            boolean isNew():判断是否是新用户(第一次访问)
            void invalidate():使session失效(退出登录、注销)
            set Attribute();
            get Attribute();
            void setMaxInactiveInterval():设置最大有效非活动时间
            int  getMaxInactiveInterval():获取最大有效非活动时间

            session和cookie的区别
                            session         cookie
            保存位置          服务端            客户端
            安全性            较安全            较不安全
            保存内容          Object           String

        五、application 全局对象
           

        六、pateContext:
        七、config
        八、page
        九、exception




四种范围对象(小->大)
   	pageContext :当前页面有效(页面跳转后无效)
	request 同一次请求有效,其他请求无效(请求转发后有效,重定向无效)
	session 同一次会话有效(无论怎么跳转都有效,关闭或者切换浏览器无效)
	application 整个项目运行期间都有效(切换浏览器依然有效)关闭服务 其他项目无效
以上四个对象共有的方法:
	Object getAttribute(String name):根据属性名获得属性值
	void setAttribute(String name,Object obj):设置属性值(新增、修改)
	     setAttribute(“a","b");//如果对象a之前不存在,则新建一个a对象;如果存在则将a的值改为b
	void removeAttribute(String name) 根据属性名,删除对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值