zoukankan      html  css  js  c++  java
  • JSP实现数据传递(web基础学习笔记三)

    get和post的区别:

    JSP内置对象:

    1)out内置对象:out内置对象是在JSP开发过程中使用得最为频繁的对象,然而其使用起来也是最简单的。out对象用于向客户端浏览器输出数                                                         据,out对象常用的方法是:print()或者println()方法,这两个方法用于在页面中打印出字符串信息。

     

    2)request内置对象:request对象,JSP中的request内置对象对应了Servlet中的HttpServletRequest类的对象,是最常用的JSP内置对象之一,这个内置                                         对象当中封装了有关浏览器请求的信息,比方说,我们在页面上填写的用户名、密码等信息就封装在request当中。request对象的主要作                                         用就是用来处理客户端请求。

    3)response内置对象:response对象和request对象相对应,它用于响应客户端的请求并向客户端输出信息。 JSP中的response内置对象对应了Servlet中的                                            HttpServletResponse类的对象,这个对象封装了JSP产生的响应,然后被发送到客户端以响应客户的请求。

    4)application内置对象:application对应了Servlet中的ServletContext类的对象。它在每个Web项目中只有一个实例,常被用来实现不同用户之间的数据共享。因                                     为不同的用户在访问application的时候,都是访问的同一个对象,这样的话,一个用户可以把需要共享的数据放到application对象中,然后                                 其他用户就可以在这个对象中获得想要的共享数据了。

    5)session内置对象:session是客户端浏览器和web服务器之间的会话,这个对象和request内置对象一样,都是我们平时开发JSP过程中最常用的内置对象之一,它                               最常见的作用就是进行访问控制,这个session对象是Servlet中HttpSession类的实例。

    6)pageContext内置对象:pageContext对象是javax.servlet.jsp包中PageContext类的对象,他提供了对JSP页面中所有的对象及命名空间的访问,使用这个对象                                   可以访问application对象,session对象,exception对象等等。也就是说这个对象可以访问除了本身之外的8个JSp内置对象。还可以访问                                     绑定在page、request、session、application这些对象上的Java对象,它相当于JSP程序中所有对象功能的集成者。

    7)page内置对象:page对象是java.lang.Object类的示例,他指的是一个JSP页面在翻译阶段翻译成Servlet之后,这个Servlet实现类的示例,也就是说它是JSP页面                         本身,因此,此对象的作用域范围仅仅限于当前JSP页面本身

    8)config内置对象:config对象对应Servlet中的ServletConfig接口,它用来表示Servelt的配置。当Servlet容器初始化一个Servlet对象的时候,Servlet容器会把某                            些初始化信息通过这个对象传递给Servlet。

    9)exception内置对象:exception对象是java.lang.Throwable类的一个实例。他指的是运行时的异常,也就是被调用的错误页面的结果,只有在错误页面(在页面                                  指令里设置了isErrorPage=true的页面)才可以使用。

     Request:

    //JSP接收客户端注册信息并输出
    <%
      String username = request.getParameter("username");
      String password = request.getParameter("password");
      String con_password= request.getParameter("con_password");
      String email = request.getParameter("email");
    %>
         用户名:<%=username  %><br/>
           密码:<%=password  %><br/>
    确认密码:<%=con_password  %><br/>
    电子邮箱:<%=email  %>

    请求对象方法:

    方法名称 方法说明
    getCookies() 获得客户端发送的Cookie
    getSession() 返回和客户端关联的Session,如果没有给客户端分配Session则创建一个Session并返回
    getSession(Boolean create) 和上面方法类似,不同的是如果没有给客户端分配Session则根据参数判断是否创建一个新的Session并返回
    getParameter(String name) 获得请求中名为name的参数的值,如果请求中没有这个参数,返回null
    getParameterValues(String name) 返回请求中名为name的参数值,这个值往往是checkbox控件提交的,因此返回的是一个String数组
    getMethod() 返回这个请求使用的HTTP方法(例如:GET、POST、PUT)
    getHeader(String name) 返回一个请求头域的值,这个值是一个字符串
    getIntHeader(String name) 返回一个请求头域的值,这个值被转换成一个整
    getPathInfo() 返回在这个请求的URL的Servlet路径之后的请求URL额外的路径信息

    支持中文的编码格式:

    GB2312,GBK,UTF-8

    请求出现乱码:

    post:设置请求和响应的的编码方式来解决筹码:

    请求:

    request.setCharcterEncoding("utf-8");

    响应:

    response.setCharcterEncoding("utf-8");

    或者在jsp页面声明部分:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

     //请求设置编码
      request.setCharacterEncoding("UTF-8");
    //响应设置编码
      response.setCharacterEncoding("UTF-8");
    //响应在声明部分设置可以不写上面的
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

    get:

    //接收用户名
      String un = request.getParameter("username");
    //get方式解决乱码
       String username = new String(un.getBytes("iso-8859-1"),"UTF-8");

    在Tomcat中conf/server.xml文件

        <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

    页面跳转:

    没有参数的跳转 和 有参数的跳转:

     

    if(username.equals("admin")){
           //不允许注册
           //直接跳转
           //response.sendRedirect("userCreate.jsp");
           //带返回信息的跳转,设置信息
           request.setAttribute("mess", "注册失败,请更换用户名");
           request.getRequestDispatcher("userCreate.jsp").forward(request, response);  
       }
       else{
           //注册成功
           //直接跳转
          // response.sendRedirect("index.jsp");
         //带返回信息的跳转,设置信息
           request.setAttribute("mess", "注册成功");
           request.getRequestDispatcher("index.jsp").forward(request, response);
       }

     

    response.sendRedirect和 request.getRequestDispatcher("index.jsp").forward(request, response)区别:

  • 相关阅读:
    机器学习笔记
    使用pelican创建静态博客
    farbox editor是个好东西
    MamBa项目的插件编写-TikiTorch生成器
    通过rundll32运行C#DLL转储内存
    通过调用Windows本地RPC服务器bypass UAC
    浅谈python反序列化漏洞
    [转载]SQL Server提权系列
    certutil在传输payload中的新奇技巧
    AVIator -- Bypass AV tool
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4231229.html
Copyright © 2011-2022 走看看