/**
* 转发和重定向的区别:
* 1.转发只发送一次请求,重定向发送两次或多次请求
* 2.转发只能跳转站内资源,重定向可以跳转站外资源
* 3.转发地址栏没有变化,重定向有变化
* 4.转发是在服务器完成的,重定向是在口客户端完成的
* 5.转发可以共享同一个request
*/
package servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(“/doReg”)
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//统一设置请求字符集
request.setCharacterEncoding("UTF-8");
//获取请求表单中的单值元素
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
String sex=request.getParameter("sex");
String age=request.getParameter("age");
String city=request.getParameter("city");
String comment=request.getParameter("comment");
//获取请求表单中的多值元素
String[] habbitArr=request.getParameterValues("habbit");
System.out.println("RegisterServlet初步处理获取用户名:"+name);
if(null==name||"".equals(name)){
//转发到注册失败页面
//通过request对象获取转发对象(包含指定转发资源)
RequestDispatcher reqDisp=request.getRequestDispatcher("regError.html");
//使用reqDisp对象的forward方法进行跳转
reqDisp.forward(request, response);
}else {
name=name+"ABC";
//使用request作用域存储数据
request.setAttribute("formatName", name);
//转发到注册成功页面
// request.getRequestDispatcher(“regSuccess.html”).forward(request, response);
//用户名验证通过,继续验证密码
//request.getRequestDispatcher(“checkpwd”).forward(request, response);
response.sendRedirect(“checkpwd”);
}
}
}