jsp数据交互

1、jsp有那些内置对象:

    jSp  九大内置对象:
    
        * 不常用的内置对象:
            pageContext        :页面内容对象,也叫页面的全局对象
            config            :配置文件对象 学习到servlet的时候会学到,详细讲。
            page            :页面对象。很少用。
            Exception        :集中处理异常的一个类,将来我们会把很多可能出现异常的代码写这里面。


        * 常用的内置对象:
            out        
                    print和println方法,本质上就是把任意数据类型,转换成String类型,进行输出。
                    out.print();
                    out.println();
                        toString();
                            <br>
                        print和println方法,都可以输出任意数据类型。
                    
                    
                    write、方法,本质上就是把任意数据类型,转换成char字符类型,进行输出。
                    out.write();
                        write、方法,仅可以输出int,String ,char char[],有这几个重载的方法。
                    
                        
                        通过查看api发现,out.write()方法输出int类型数据的时候,会出现乱码
                                 write()方法本身是输出流,
                                 write() 方法的所有字符,则立即将它们写入预期目标。然后,
                                 如果该目标是另一个字符或字节流,则将其刷新。因此,一次 flush() 
                                 调用将刷新 
                                 所有的内容会当成字符处理, int类型 对应ASCII码表进行转义成对应的字符了。
                                 Writer 和 OutputStream 链中的所有缓冲区。
                                 
                                 HASHCode 底层依赖于 ASCII码表,ASCII是计算机的字符对应表。123 ——>对应字符 { 
                                            +
                    
2、request: 请求对象
        
    1、如何查看浏览器请求信息
            浏览器查看工具:httpWatch    网页查看工具。shift + F2 或者 工具——>httpWatch
            通过httpwatch工具,可以看到当我们访问一个网页的时候,请求带有很多的数据信息。
            request作为内置对象,可以获取到这些信息。
            
            所有浏览器,也有内置的httpWatch ,可以按F12 呼出来。
        
    
    2、request内置对象的方法
    
            String getParameter(name);                    获取参数值(通过参数名)
            String[] getParameterValues();                获取参数名对应的多个值
            setCharacterEncoding();                        设置请求编码格式,UTF-8,post方式请求的时候设置
            
            getRequestDispatcher();                        返回一个RequestDispatcher对象,
                                                        该对象的forward( )方法用于转发请求

    3、request请求方式分两种:
    
            1、get方式    :把所有要传输的信息,都通过url 链接携带。有长度限制。不安全。    
                    http://localhost/day03/reginfo.jsp?name=amin&psw=123&
                    channel=%E7%BD%91%E7%BB%9C&channel=%E7%94%B5%E8%A7%86
            2、post方式    : 通过request对象,内部进行传输。用户看不到,相对来说安全。
                    数据包的形式进行传递。
        

    4、request对象,post方式进行请求页面。
        
            * 乱码出现原因:中文导致
                    request.setCharacterEncoding("UTF-8");
                    post方式携带的数据。传递给另一个页面接收到这些信息进行展示发现,
                    乱码!!!
        
            * 分析
                    jsp页面是否有乱码,页面设置编码的两种方式如下:
                        contentType="text/html; charset=UTF-8"
                        pageEncoding="UTF-8"
                        这两个都可以设置页面编码方式,设置其中一个,另一个编码方式默认相同。
                                                
                    
                    浏览器渲染是否有乱码
                        浏览器本身也没有问题,都是支持中文。                            
                    
                    
                    服务器接收信息是否造成乱码!
                        1、post请求方式,产生的乱码问题解决方案
                            通过reqeust对象设置
                                request.setCharacterEncoding("UTF-8");
                        
                        2、get方式请求,产生乱码问题解决方案
                            发现:
                                get方式请求,用request的setCharacterEncoding("UTF-8")方法无法解决中文乱码问题。
                            解决方案:
                            
                                1、可以在接收信息页面,通过将接收到的数据,改变编码方式来操作。
                                    当我们请求页面register的请求方式是get的时候,接收到的数据改变,编码用如下方式。
                                    String newName = new String(name.getBytes("ISO-8859-1"),"utf-8");
                            
                                2、修改服务器tomcat中server.xml中的URI编码格式来设置。
                                    打开tomcat的安装目录——> conf ——> server.xml(记事本打开)
                                                        ——> 找到Connecter标签 ——>
                                    
                                    在里面设置如下:
                                        添加一条属性:    
                                            URIEncoding = "UTF-8"
                                    (完美解决get方式请求,获取到的数据解析出现乱码问题。)
    
    
            
            
response 响应  服务器响应客户端。 针对服务器来说
        概念:
            当我们客户端向服务发起请求数据后,
            服务把对应页面及数据返回的   过程就叫响应
            
            
        response有一个方法,重定向
        
            sendRedirect()
                服务器接收到了请求,然后把请求返回给客户端,让客户端重新请求别的页面。
                重新确定了方向,叫重定向。客户端重新请求,(请求两次)
                    类似快递寄错地方了,返回来,重新寄出去。
                    
                弊端:
                    重定向之后的页面,无法获取到之前的请求携带的数据。
                    请求了两次,第二次不携带数据。
                        怎么解决这个问题 : session对象来解决。
                    
                    
            
        request有一个方法,叫转发
            getRequestDispatcher();    
                服务器接收到了请求,然后把这个请求拿到,换一个页面返回给客户端。
                    转发,服务器来完成转发任务。(请求。)
                        类似快递帮你转寄。
                    
            RequestDispatcher    request.getRequestDispatcher(要请求的页面); 这个方法,可以获取一个转发对象。
            
                    转发对象,有个方法: forward(request,response)。
                        参数里面要写request对象,和response对象。进行转发跳转。
                        练习:
                            请求一次
                            http://localhost/day032/result.jsp?name=sa&psw=sa

常见状态码
    1 开头的状态码:  请求失败,由客户端产生问题,例如,断网。
    2 请求成功相关
    3 重定向,请求被转移等。
    4 服务器没有找到你要的资源文件,无法访问。
    5 服务器发生故障,可能断网,网关卡死等问题。
------------------------------------------------    
    200 访问成功、
    404 未找到页面或者访问的文件资源
    407 页面被重定向
    500 服务器无响应
            
            
            
session    服务器的会话机制。
    每次我们访问服务器的时候,服务器就会给我们创建一个session对象。
    服务器和浏览器之间对话的媒介。我们经常用它来携带数据。
    
    
    1、每个浏览器,独占一个session对象。
        不同的浏览器,有不同的session对象。
        session.getId();
            通过演示“:
                session 同一个浏览器,不同标签页,不同窗口都显示相同session对象的id
                
                不同浏览器,显示的session的id是 不同的,即,session不同。
    
    
    2、session 是有有效时间,过了有效时间就失效。
        //通过下面方法设置,最大的有效时间,也就是过了这个时间就失效。
        //参数是,设置  秒值。
        session.setMaxInactiveInterval(10);
        
        //获取session对象,最大的有效时间。
        int session.getMaxInactiveInterval();

        //让我们的session对象,立刻失效。
        session.invalidate();
        
    
    
    3、session 可以携带数据。进行数据交互。
    
        // 设置参数。key value
        void setAttrbuite(key,value);
        
        // 获取session携带的 对应参数名的值。
        value getAttrbuite(key);
        
        //移除所有,带参数,就是移除制定参数名的值。
        removeAttrbuite(key);

    
    4、session对象的销毁。
        (1)、通过代码设置,销毁时间。
            设置一个销毁时间,
                session.setMaxInactiveInterval(10);
            立刻销毁。
                session.invalidate();


        (2)项目设置session失效时间。web.xml
                <session-config>
                        <session-timeout>10</session-timeout>
                </session-config>


        (3)服务器tomcat设置session失效时间。web.xml
                
                <session-config>
                        <session-timeout>30</session-timeout>
                </session-config>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值