功能:request -向客户端请求数据
response-封装jsp产生的响应,然后被发送到客户端以相应客服请求
这里是课上老师举的例子,体会一下request 和response的用法:(简单的用户登录注册提交跳转网页)
Login.jsp (登录注册页面)
<body> <div class="container"> <div class="row"> <div class="col-md-12"> <form action="loginAction2.jsp" method="post"> //这里的action是要跳转的页面 <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input type="email" name="email" class="form-control" id="exampleInputEmail1" placeholder="Email"> </div> <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" name="password" class="form-control" id="exampleInputPassword1" placeholder="Password"> </div> <div class="checkbox"> <label> <input type="checkbox" checked="checked" name="checkbox" value="me1"> Check me out </label> <label> <input type="checkbox" name="checkbox" value="me2"> Check me out </label> </div> <button type="submit" class="btn btn-default">Submit</button> </form> <% String type = request.getParameter("type"); if("1".equals(type)) { %> <div class="alert alert-danger" role="alert">邮箱或密码错误</div> <% } %> </div> </div> </div> </body>LoginAction.jsp(响应页面) <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String email = request.getParameter("email"); //接收参数的时候,通过request.getParameter("a"),方法参数是参数名称 String password = request.getParameter("password"); //这种传参方式叫URL重写传参,而且参数只能是字符串 String[] strs = request.getParameterValues("checkbox");//getArribute只能接收setAttribute的参数可以传递对象,getParameter可以接受a标签和form表单的参数 , for(int i=0; i<strs.length; i++) { //getParameter的参数,1.如果是URL重写是参数名称 2.如果表单提交,是input标签的name值 System.out.println(strs[i]); } if("111@qq.com".equals(email)&&"123".equals(password)) { //验证通过 request.setAttribute("userName", "tom"); //response.sendRedirect("demo1.jsp"); request.getRequestDispatcher("demo1.jsp").forward(request, response); } else { //信息错误 response.sendRedirect("login.jsp?type=1"); } %>跳转有两种:1.重定向跳转 response.sendRedirect
2.存储转发跳转:request.getRequestDispatcher("demo1.jsp").forward(request,response);
