您的位置:首页 > 产品设计 > UI/UE

12.26-Jsp学习之内置对象(request,response;转发与重定向)

2017-12-27 14:29 681 查看
今天学习的内置对象主要有:

输出对象: out

请求对象: request

响应对象:response

Out 用法:

a. out.print();

b.
out.println();

Request用法

1.读取表单的值:request.getParameter
; 如果是多个值(如:复选框)用 request.getParameterValues;

2.转发request.getRequestDispatcher("").forward(request,
response);可以与request.setAttribute()
一起使用。Response用法

1.重定向response.sendRedirect()可与session.setAttribute()一起使用。

转发与重定向的区别

转发:服务器内部处理,可以携带参数,一次请求(不可以跳转到第二个项目),地址不会改变。(如“查询”)

重定向:(客户端)可以携带参数(基本不使用),二次请求,地址会发生改变(跳转到第二个项目)(如:增删改成功后要跳转的页面)

举例

/*
index .jsp*/

<body>

<formaction="welcome.jsp"method="post">

用户名:<inputtype="text"name="name">

密码:<inputtype="password"name="pwd">

<inputtype="checkbox"name="hobby"value="basketball">篮球

<inputtype="checkbox"name="hobby"value="football">足球

<inputtype="checkbox"name="hobby"value="pingpang">乒乓球

<inputtype="submit"value="提交">

<inputtype="reset"value="重置">

</form>

</body>

/*
welcome.jsp*/

<body>

<%

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

%>

<%

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

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

String[]
hobbys=request.getParameterValues("hobby");

out.println("用户名:"+username+"</br>");

out.println("密码:"
+pwd+"</br>");

for(String
str:hobbys){

out.print(str+"</br>");
}

request.setAttribute("name",
username);

request.setAttribute("pwd",
pwd);

//*转发到
login.jsp 页面,带参数。*

request.getRequestDispatcher("login.jsp").forward(request,
response);

%>

/*
login.jsp */

<%

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

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

String
pwd=(String)request.getAttribute("pwd");

out.print(name+"\n"+pwd);

%>

运行结果:

地址不变:http://localhost:8080/webtest/welcome.jsp

显示:nn
123

//重定向
/* welcome.jsp*/
<body>

  <%

  request.setCharacterEncoding("UTF-8");

  response.setCharacterEncoding("UTF-8"); 

   %>

   <%

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

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

    String[] hobbys=request.getParameterValues("hobby");

    out.println("用户名:"+username+"</br>");

    out.println("密码:" +pwd+"</br>");

    for(String str:hobbys){

    out.print(str+"</br>");

    }

if(username.equals("admin")&& pwd.equals("123456")){
    //重定向:如果用户名,密码正确跳转到登录成功页面(新页面)

    session.setAttribute("name", username);

    response.sendRedirect("MyJsp.jsp");

   

    }else{

    //转发:如果错误,返回登录页面(自己页面)

    request.getRequestDispatcher("index.jsp").forward(request, response);

    }

/* Myjsp.jsp*/
<body>

  <%

  String str=(String)session.getAttribute("name");

  out.print(str);

 

   %>

   </br>

    登录成功!

  </body>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐