servlet2 单元测试、转发、重定向


在这里插入图片描述

  解决服务端接收数据乱码问题。服务器默认采用 ISO8859-1 编码响应内容。

// 1
req.setCharacterEncoding("utf-8");

// 2
    byte[] bytes = req.getParameter("username").getBytes("iso-8859-1");
    System.out.println("username:" + new String(bytes,0,bytes.length,"utf-8"));

  解决服务端发送到客户端数据乱码问题。


// 1 text/html,响应数据类型;
     resp.setContentType("text/html;charset=utf8;");
     
// 2
     resp.setCharacterEncoding("utf-8");
     resp.setHeader("Content-type","text/html;charset=utf8");

  单元测试。
  src 同级目录创建 test 文件夹,右键 -> Mark Directory as ->Sources Root,文件名采用测试的模块名 + Test。

  转发。转发的作用在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求的处理。使用forward跳转时,是在服务器内部跳转,地址栏不发生变化,属于同一次请求。


request.getRequestDispatcher(“/目标URL-pattern”).forward(request, response);

// 存数据
request.setAttribute(key,value);
// 取数据
request.getAttribute(key);

  重定向。重定向作用在客户端,客户端将请求发送给服务器后,服务器响应给客户端一个新的请求地址,客户端重新发送新请求。
  重定向可以指向任何的资源,包括当前应用程序中的其他资源、同一个站点上的其他应用程序中的资源、其他站点的资源。


response.sendRedirect(“目标URI”);
// 带数据
response.sendRedirect(“目标URI?username=tom&ps=123”);
// 接收数据
request.getParameter(“username”);

  servlet 用户管理系统。
  目录结构。
在这里插入图片描述

在这里插入图片描述


public class AddUserServlet extends HttpServlet {

    private IUserService userService = new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf8");

        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String age = req.getParameter("age");
        String sex = req.getParameter("sex");

        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.setAge(Integer.valueOf(age));
        user.setSex(Integer.valueOf(sex));
        int i = userService.AddUser(user);
        if (i == 0) {
            resp.getWriter().write("添加失败");
        } else {
            resp.getWriter().write("添加成功");
            resp.getWriter().write("<br><a href=\"GetUserListServlet\">查询所有用户</a>");
        }
    }
}


public class DeleteUserServlet extends HttpServlet {

    private IUserService userService = new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf8");

        String username = req.getParameter("username");

        int i = userService.DeleteUser(username);
        if (i == 0) {
            resp.getWriter().write("删除失败");
        } else {
            resp.getWriter().write("删除成功");
            resp.getWriter().write("<br><a href=\"GetUserListServlet\">查询所有用户</a>");
        }
    }
}


public class GetUserListServlet extends HttpServlet {

    private IUserService userService = new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf8");

        
        List<User> userList = userService.getUserList();

        // 转发数据
        req.setAttribute("userList",userList);
        // 转发对象
        req.getRequestDispatcher("ViewUserServlet").forward(req,resp);

        // 重定向 最好不带参数
        // resp.sendRedirect("ViewUserServlet?username=zs&password=123");
        // resp.sendRedirect("http://www.baidu.com");
    }
}


public class LoginUserServlet extends HttpServlet {

    private IUserService userService = new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf8");

        String username = req.getParameter("username");
        String password = req.getParameter("password");

        User user = userService.login(username, password);

        if (user == null) {
            resp.getWriter().write("用户名或密码错误..");
        } else {
            resp.getWriter().write("欢迎【" + req.getRemoteAddr() + username + "】登陆");
            resp.getWriter().write("<br><a href=\"GetUserListServlet\">查询所有用户</a>");
        }

    }
}


public class SelectUserServlet extends HttpServlet {

    private IUserService userService = new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf8");

        String username = req.getParameter("username");
        User user = userService.SelectUser(username);

        StringBuffer buffer = new StringBuffer();
        buffer.append("<html>");
        buffer.append("<body>");
        buffer.append("<table border=\"1\">");

        buffer.append("<tr>");
        buffer.append("<th>ID</th>");
        buffer.append("<th>用户名</th>");
        buffer.append("<th>密码</th>");
        buffer.append("<th>年龄</th>");
        buffer.append("<th>性别</th>");
        buffer.append("</tr>");

        if (user != null) {
            buffer.append("<tr>");
            buffer.append("<td>" + user.getId() + "</td>");
            buffer.append("<td>" + user.getUsername() + "</td>");
            buffer.append("<td>" + user.getPassword() + "</td>");
            buffer.append("<td>" + user.getAge() + "</td>");
            buffer.append("<td>" + user.getSex() + "</td>");
            buffer.append("</tr>");

        }
        buffer.append("</table>");
        buffer.append("</body>");
        buffer.append("</html>");
        buffer.append("<a href=\"GetUserListServlet\">查询所有用户</a>");
        resp.getWriter().write(buffer.toString());
    }
}


public class UpdateUserServlet extends HttpServlet {

    private IUserService userService = new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @O
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值