request&&response转发重定向

登录页面(客户端)

<%--
Created by IntelliJ IDEA.
User: DELL
Date: 2019/3/2
Time: 15:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="doLogin.jsp" method="get">
用户名:<input type="text" name="name" required/><br/> <%--这里的 required 属性是必填项的意思--%>
密码: &nbsp;<input type="password" name="pwd"/><br/>
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;<input type="checkbox" name="xuan" value="love1">哟用、<br/>
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; <input type="checkbox" name="xuan" value="love2">哈哈、<br/>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="checkbox" name="xuan" value="love3">呵呵、<br/>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<input type="checkbox" name="xuan" value="love4">嘻嘻<br/>
&nbsp; &nbsp; &nbsp; <input type="submit" value="注册"/><br/>
<%
String register = (String)request.getAttribute("register");
if(register!=null){
out.print(register);
}
%>
</form>
</body>
</html>
接收页面(服务端)
<%--
Created by IntelliJ IDEA.
User: DELL
Date: 2019/3/9
Time: 11:32
To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<%@ page import="java.net.URLEncoder" %>
<html>
<head>
<title>Title</title>
</head>
<body>
欢迎你
【中文乱码处理】 如:客户端以post方式提交的话
<%
request.setCharacterEncoding("UTF-8");//请求的编码方式设置为utf-8
%>
<%
response.setCharacterEncoding("utf-8");//设置相应时的编码方式为utf-8
%>

<%
//对面客户端提交数据给我这边,我现在要在这个服务端获取客户端提交的数据
//通过一个内置对象 getParameter获取单个值 getParameterValues()获取多个值
String name = request.getParameter("name");//获取单个值
String pwd = request.getParameter("pwd");//获取单个值
String[] xuan = request.getParameterValues("xuan");//获取多个值【区别 getParameter 多了个values】
%>


<br/> 获取到的信息如下:<%=name%> <br/><%=pwd%>
<br>用户选择的多个值内容是(爱好):
<%
if (xuan!=null){
for(String x:xuan){
out.print("<br/>"+x);
}
}else{
out.print("您没有选择多个值,如爱好");
}
%>
<%
//【练习1】需求,模式注册,如果注册成功跳到注册成功页去 如果失败跳回本注册页面继续注册
if(name.equals("admin")){//如果用户名是admin则注册失败,因为已经有了这个用户名
//提示用户注册失败
request.setAttribute("register","注册失败");
//跳转到原注册页面【转发】 通过请求对象 获得一个 内部的分发器,跳转到***.jsp去,并携带我的request && response
request.getRequestDispatcher("login.jsp").forward(request,response);
//原理注意,当使用dispatcher的时候,它的页面并不会直接到login.jsp去,而是服务器内部默认到login.jsp 去,实际
// 上你还是在本页面(doLogin.jsp)中访问 login.jsp 属于一次 请求 服务器行为

}else{//如果不是admin则注册成功,跳到注册成功页
//提示用户注册成功
// request.setAttribute("register","注册成功"); 【注意使用这样的方式在response例是拿不到att值的所以使用如下方式】
String info="成功了";//以这样参数传递的方式获取这个值 ?号就是参数的意思
info= URLEncoder.encode(info,"utf-8");//这里意思是将中文按一定的格式编码传过去,因为直接传中文会乱码出现
//跳到成功页面 redirect 重新发送的意思
response.sendRedirect("loginSucceed.jsp?info="+info);
//原理注意,这里是实际上就跳到了loginSucceed.jsp上去了,并不会像转发一样还是在本页面(doLogin.jsp)访问loginSucceed.jsp
//属于二次请求 客户端行为
}
//request.getContextPath() 这个方法是获取当前页面的位置的上下文路径
%>




</body>
</html>

注册成功页面(登录成功后端页面)
<%--
Created by IntelliJ IDEA.
User: DELL
Date: 2019/3/9
Time: 14:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录成功</title>
</head>
<body>
注册成功页面
<%=request.getParameter("info") %>
</body>
</html>
 
posted @ 2019-03-09 15:19  java_code_zx  阅读(261)  评论(0)    收藏  举报