JSP 数据交互(一)

    Jsp 常用内置对象有以下五种:

out、request、response、session、application


request对象

               request对象的常用方法

方法名称说明
String getParameter(String name)根据网页表单组件名称获取网页交接数据
String [] get ParameterValues(String name)获取一组以相同名称命名的表单组件交接数据
void setCharacterEncoding(String charset)指定每个请求的编码,在调用requsert.grtParameter()方法之前进行设定,可以用于解决中文乱码问题
RequestDispatcher getRequestDispatcher(String path)返回一个 javax.servlet.RequestDispatcher 对象,该对象的forward(request,response)方法用于转发请求;

实现简单的实现传值如下:

实现效果图:

shangjiyi.jsp文件里面的编码如下:

<body>
  <form action="shangjiyi2.jsp" method="post">
   <table>
     <tr><td>用户名:</td><td><input type="text" name="name"></td></tr>
      <tr><td>密码:</td><td><input type="password" name="mima"></td></tr>
       <tr><td>确定密码:</td><td><input type="password" name="mima2"></td></tr>
        <tr><td>性别:</td><td>
        <input type="radio" name="xuan" value="男" checked>男
         <input type="radio" name="xuan" value="女">女
        </td></tr>
         <tr><td>电子邮箱地址:</td><td><input type="email" name="youxiang"></td></tr>
         <tr><td>出生日期:</td><td>
          <input type="text" name="nian">年
       
   <select name="yue">
   <option value="0">1月</option>
   <option value="1">2月</option>
   </select>月
  
    <select name="ri">
   <option value="1">1日</option>
   <option value="2">2日</option>
   </select>日
           
         </td></tr>
        
       <tr><td><input type="submit" value="注册"></td></tr> 
        
        
   </table>
  
   </form>
  </body>


shangjiyi2.jsp文件里面的代码如下:


 <body>
    <%
       request.setCharacterEncoding("UTF-8");
     String name=request.getParameter("name");
     String mima=request.getParameter("mima");
    String mima2=request.getParameter("mima2");
    String  xuan= request.getParameter("xuan");
   String  youxiang= request.getParameter("youxiang");
     String  nian= request.getParameter("nian");
     String  yue= request.getParameter("yue");
      String  ri= request.getParameter("ri");
  
    %>
  
       <table>
     <tr><td>用户名:</td><td><%=name%></td></tr>
      <tr><td>密码:</td><td><%=mima%></td></tr>
       <tr><td>确定密码:</td><td><%=mima2%></td></tr>
        <tr><td>性别:</td><td>      
         <%=xuan%>
          </td></tr>
         <tr><td>电子邮箱地址:</td><td><%=youxiang%></td></tr>
         <tr><td>出生日期:</td><td>
         <%out.print(nian+"年"+"\t"+yue+"月"+"\t"+ri+"日"); %>
      

  

           
         </td></tr>
        
       <tr><td><input type="submit" value="注册"></td></tr> 
        
        
   </table>
  </body>


编码乱码的时候转换如下:

String name=request.getParameter("name");

name = new String(name.getBytes("ISO-8859-1"),"UTF-8");


response对象

                                                   response 对象的常用方法

方法名称说明
void addCookie(Cookie cookie)向客户端添加Cookie
void setContentType(String type)设置 HTTP 响应的 contentType 类型
void setCharacterEncoding(String charset)设置响应所采用的字符编码类型
void sendRedirect(String location)将请求重新定位到一个新的 URL 上

实现小型登陆效果如下:

实现效果图:

shangjier.jsp文档里面的代码如下:

  <body>
  <form action="shangjier2.jsp" method="post">
   <table>
      <tr><td>用户名:</td><td><input type="text" name="name"></td></tr>
      <tr><td>密码:</td><td><input type="password" name="mima"></td></tr>
      <tr><td><input type="submit" value="登陆"></td></tr>
   </table>
   </form>
  </body>


shangjier2.jsp文档里面的代码如下:

  <body>
  <%
     request.setCharacterEncoding("UTF-8");
   String name= request.getParameter("name");
  String mima= request.getParameter("mima");
  if("lucky".equals(name)&&"123456".equals(mima)){
    request.setAttribute("name", name);
     request.getRequestDispatcher("shangjier3.jsp").forward(request, response);
    
  }else{
    
     response.sendRedirect("shangjier.jsp");
 
  }
 
  %>
   
  </body>


shangjier3.jsp文档里面的代码如下:

  <body>
    <%
     request.setCharacterEncoding("UTF-8");
     out.print("你好:"+ request.getAttribute("name"));
     %>
  </body>

      转发 与 重定向

 转发(

 request.getRequestDispatcher("路径").forward(request,response); 来跳转网页

转发使用来传值request.setAttribute("name2", name);     name2是变量名   name是给他的值

在转发的网页上使用 request.getAttribute("name2");     来获取值 他说Objeck类型

  )

 response.sendRedirect("路径");  来跳转网页

 response.sendRedirect("路径?name1="+name); 使用?传值name1是变量名     name是给他的值

response.sendRedirect("路径?name1="+name+"&name2="+an) 传多个参数的时候用&实现多个值传送

)

session对象

                                                            session对象的常用方法


方法名称说明
String getId()获取 sessiond
void setMaxInactiveInterval(int interval)设定 session 的非活动时间
int getMaxInactiveInterval()获取 seeion 的有效非活动时间,以秒为单位
void invalidate()设置 session 对象失效
void setAuttribute(String key,Object value)以 key/value 的形式将对象保存到 session 中
Object getAuttribute(String key);通过key 获取 session 中保存的对象
void removeAttribute(String key)从 session 中删除指定 key 对应的对象
       1.jsp文档里面的代码如下:
把用户名密码 存储与session对象     
    if(request.getParameter("name").equals("lucky")&&request.getParameter("mima").equals("123456")){
       String name=request.getParameter("name");
       String mima=request.getParameter("mima");      
         Uset u=new Uset(name,mima);
                 
        session.setAttribute("an",u);       
         session.setMaxInactiveInterval(10);
       request.getRequestDispatcher("2.jsp").forward(request,response); 
       
      
    }else{
       response.sendRedirect("shangjisan.jsp");
    
    }


2.jsp文档里面的代码如下:

      判断 如果直接访问2.jsp 就返回1.jsp

          if(session.getAttribute("an")==null){
           response.sendRedirect("1.jsp");
       
        }else{
           Uset an=(Uset)session.getAttribute("an");
           String name=an.getName();
  
             out.print(an.getName());
        }
     


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值