java Web第三章学习内容(内置对象(请求request,响应response,会话seession))

学习内容:
1.请求对象request
2.解决中文乱码
3.请求中保存属性或获取属性
4.转发及重定向
5.保存用户数据session




一.请求对象request


在form表单中可以通过请求对象
request获取值,要给表单起个名字,通过名字转换为String类型
    例:
    String name = request.getParameter("username");
    String pwd = request.getParameter("pwd");


在form表单中可以通过请求对象 request获取集合,要给表单起个名字,通过名字转换为String类型
    例:
    String [] str = request.getParameterValues("spots");


二. 解决中文乱码

用于通过请求对象获取值时可能出现乱码,需要调用方法设置编码格式
   
     例:
    request.setCharacterEncoding("utf-8");

    response.setCharacterEncoding("utf-8");



三.请求存储数据

在请求中保存属性及获取属性,跟set,get类似

        例:
       
        request.setAttribute("mess","用户或密码错误");
        request.getAttribute("mess");

        注意:
        获取存取属性的时候,要加判断,例如:


        



四.转发及重定向

    转发
    
    例:
     request.getRequestDispatcher("index.jsp").forward(request,response);


    重定向

    例:
    
     response.sendRedirect("welcome.jsp?pwd="+pwd);



区别:
        转发是一次请求,如客户端访问服务器,服务器直接返回信息给客户端


        重定向是二次请求,如客户端访问服务器,服务器返回地址给客户端,客户端再访问该地址

        



五.session
       
    保存用户数据并获取,作用域是一次会话,保存到服务器的
    
    例:
    session.setAttribute("username",name);                      保存用户信息,键-值
    session.getAttribute("username");                               获取用户信息
    session.getId();                                                             获取sessionid;

    会话清除和过时:
     session.invalidate();                                        设置会话失效
     session.removaAttribute("username")            移除会话的一个属性
    
     session.setMaxInactiveInterval(30*60);           根据时间过期,秒为单位,如30*60=30分钟

参考案例:
表单:
<form method="post"action="doLogin.jsp">
    <p>用户<input type="text"name="username"><span><%=request.getAttribute("mess")==null?"":request.getAttribute("mess")%></span></p>
    <p>密码<input type="password"name="pwd"></p>
    <p>
        <input type="checkbox"name="spots" value="篮球">篮球
        <input type="checkbox"name="spots" value="Basketball">足球
        <input type="checkbox"name="spots" value="Billiards">台球
    </p>
    <p><input type="submit"value="确定">
        <input type="reset"value="重置"></p>
</form>

判断登录信息:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--处理异常返回界面时使用--%>
<%--<jsp:forward page="index.jsp"></jsp:forward>--%>
<%--请求,响应--%>
<%
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
        String name = request.getParameter("username");
        String pwd = request.getParameter("pwd");
    String [] str = request.getParameterValues("spots");
    if (name.equals("admin")&&pwd.equals("123456")){
        out.print("登录成功");
        /*重定向*/
       /* response.sendRedirect("welcome.jsp?pwd="+pwd);*/

        /*保存用户数据*/
        session.setAttribute("username",name);
        response.sendRedirect("welcome.jsp");
    }else{
        out.print("登录失败");
        /*键值存储*/
        request.setAttribute("mess","用户或密码错误");
        /*转发*/
        request.getRequestDispatcher("index.jsp").forward(request,response);
    }
%>
<%
   /* for (String str1:str){
            out.println(str1);
    }*/

%>
登录后的欢迎界面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>欢迎登录<%=session.getAttribute("username")%>></h1>
<%--<%
    out.print(request.getParameter("pwd"));
%>>--%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值