JavaWeb九大内置对象之request

Try hard every day!

注意事项1.jsp页面要注意导包

request

           它表示的是用户所发起的一个请求,然后请求中封装了用户请求的所有信息,当服务端箱客户端响应后请求对象销毁.

常用方法:

                getParameter()

                getParameterValues()

                getParameterNames()

                                                

                                                       得到的是所有的Parameter的名字,要遍历

                getAttribute()

                getSession()            

                请求转发(对应同一个request):

                               把getList的值塞进去。结合请求转发

                                request.setAttribute("userList",getList());(相当一个Map值,通过  getAttribute()的key值来拿到)(可以放对象的一些属性)

                           

                                 实现请求转发

                                 requestDispatcher rd=reg.getRequestDispatcher("xxx.jsp")  

                                 rd.forward(reuest,response);

                          

                              重定向

                               response.sendRedirect("xxx.jsp")


                 getParameter() 与 setAttribute() 的区别:

                       getParamenter是从客户端与服务器的交互,getAttribute()是服务器与客户端之间的交互,而且没有setParement()方法。

                  做请求转发过程:

                   form表单点击提交得到request对象,封装的request的信息  提交的所写的对象(sevlet.java)

                   其中我们用了setAttribute()方法,塞了一些信息给request对象,继续请求转发到一个页面(success.jsp)

                  

              --------------------------------------------------------------------------- 获取请求参数时乱码问题--------------------------------------------------------------------------
            浏览器发送的请求参数使用什么编码呢?当初浏览器打开网页时使用什么编码,发送就用什么编码。
            服务器端获取到发过来的请求参数默认使用ISO8859-1进行解码操作,中文一定有乱码问题
            对于Post方式提交的数据,可以设置request.setCharacterEncoding("UTF-8");来明确指定获取请求参数时使用编码。但是此种方式只对Post方式提交有效。
            对于Get方式提交的数据,就只能手动解决乱码:String newName = new String(name.getBytes("ISO8859-1"),"gb2312");此种方法对Post方式同样有效。
            request.setCharacterEncoding("gb2312");对GET方式提交无效的原因是:该代码只设置请求实体的编码,而GET提交的数据是存放在请求行中的[资源名?param1="张三"&param2=123],所以对GET请求的方式无效。
            在tomcat的server.xml中可以配置http连接器的URIEncoding可以指定服务器在获取请求参数时默认使用的编码,从而一劳永逸的决绝获取请求参数时的乱码问题。也可以指定useBodyEncodingForURI参数,令request.setCharacterEncoding也对GET方式的请求起作用,但是这俩属性都不推荐使用,因为发布环境往往不允许修改此属性。


                       --------------------------------------------------------------------------地址的写法--------------------------------------------------------------------------

绝对路径(以斜线开头的路径,代表相对与当前web应用):
    如果地址是给服务器用的,web应用的名称可以省略。如果地址是给客户端用的,必须写上web应用名
    request.getRequestDispatcher("/index.jsp").include(request, response);


    response.setHeader("Location","/Day05/index.jsp");
    response.sendRedirect("/Day05/index.jsp");
    this.getServletContext().getRealPath("/index.jsp");
    this.getServletContext().getResourceAsStream("/index.jsp");


    <a href="/Day05/index.jsp">
    <from action="/Day05/index.jsp">
    
    类加载器加载资源的时候,相对于WEB-INF下的classes目录
    this.getClass().getClassLoader().getResource("");
    this.getClass().getClassLoader().getResourceAsStream("");
相对路径(不以斜杠开头的路径,要参考当前所在的路径去拼新的路径)---除了在必须使用的情况外,都不要使用相对路径:
    如果直接写相对路径或写./相对路径的话,相对路径替换当前路径最后一级
    如果写../相对路径,则替换当前路径的最后一级路径的上一级路径。
    如果想替换更高层,则写多个../










评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值