JSP数据交互(一)补充

来源:互联网 发布:淘宝前端属于ucd 编辑:程序博客网 时间:2024/06/08 19:03

 什么是转发?

        转发在服务器端发挥作用,指在服务器内部控制权的转移,通过forward( )方法将提交信息在多个页面间进行传递。浏览器的地址栏不会显示出转向后的地址,可以共享上一次请求中的request内的数据        (url地址不变,请求一次,不允许站外链接)


什么事重定向?

        重定向在客户端发挥作用,通过浏览器重新请求地址,通过新的地址实现页面转向,在地址栏中可以显示转向后的地址,不能共享上一次请求中的request内的数据。

        (url地址改变,请求两次,允许站外链接)  


什么是会话对象?

          会话对象session可以保持每个用户的会话信息,为不同的用户保存自己的数据,主要通过一个唯一的标识sessionid来区分每个用户,而sessionid存储在客户端


JSP提供了文件引用指令include。可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件,从而降低代码的冗余问题,并且修改也更加方便。


作用域:作用范围:

                               request    一次请求

                               session     N次请求


--------------------------------------------------与页面------------------------------------

 <body>
   <form action="dy002/two.jsp" method="post">
   用户名:<input  type="text" name="uname" />
   密码:<input type="password" name="pwd" />
   <input  type="submit"  value="提交" />
   </form>
  </body>

-------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<% 
   //1.解决乱码
    request.setCharacterEncoding("utf-8");
    
   //2.接受数据
   String  name=request.getParameter("uname");
   String   pwd=request.getParameter("pwd");
    
     
     
   //3.跳转
   if("1".equals(name)&&"1".equals(pwd)){


   //记录session  ,用Session记录登录身份

    session.setAttribute("uname", name);


    //记录cookie
    Cookie  cook=new Cookie("uname",name);

    Cookie   cookpwd=new Cookie("pwd",pwd);


    //response  添加
        response.addCookie(cook);

        response.addCookie(cookpwd);

      request.getRequestDispatcher("/dy002/there.jsp").forward(request, response);
   }else{

       response.sendRedirect("/Day002/dy002/one.jsp");
   }

%>


---------------------------------------------------------------------------------------------------

<body>
   欢迎您:<%=session.getAttribute("uname") %>  
   <hr/>
   <a href="<%=path %>/dy002/clear.jsp">注销</a>
   
  </body>




--------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%  
  //1.清除session
  session.removeAttribute("uname");
  
  //2.跳转到登陆
      response.sendRedirect("/Day002/dy002/one.jsp");

%>


--------------------------------------------------------------------------------------------------------------


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


    <title>图书列表</title>
    

  </head>
  
  <body>
    <%@  include  file="have.jsp" %>
    <h1>图书列表----必须登陆</h1>
  </body>
</html>

---------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


    <title>添加图书</title>

  </head>
  
  <body>
    <%@include   file="have.jsp" %>
    <h1>添加图书</h1>
  </body>
</html>

-------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%  
   //判定session是否有值
   Object  name=session.getAttribute("uname");
   if(name==null){
     response.sendRedirect(path+"/dy002/one.jsp");
   }




%>


0 0