servlet常用的方法

了解servlet

要使用servlet的方法,首先我们要了解什么是servlet,通俗的讲,servlet就是在服务器端运行的java程序,可以接受用户的请求并做出响应。

servlet的生命周期

总共分为四个周期:

1、实例化-------Servlet 容器创建 Servlet 的实例

      初始化-------该容器调用 init ( ServletConfig ) 方法

      服务------如果请求 Servlet,则容器调用 service() 方法

      销毁-------销毁实例之前调用 destroy() 方法

servlet的方法

在我看来,servlet中的方法,就分为两种,一种是请求的方法,另一种是响应的方法

Request

  处理乱码:request.setCharacterEncoding("utf-8");

 接受客户端数据: request.getParameter("客户端name属性");

@WebServlet("/servlet")
public class Servlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
        //获取客户端传递的参数
        String uname = request.getParameter("uname");
        String upwd = request.getParameter("upwd");
        System.out.println("用户名:" + uname);
        System.out.println("密码" + upwd);

    }
}

设置请求域数据

request.setAttribute(String str,Objest obj);

转发(转发是不携带数据的)

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

@WebServlet("/servlet")
public class Servlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
       
        //设置请求域数据

        request.setAttribute(String str,Objest obj);

        //转发

        request.getRequestDispatcher("要转发得servlet或html").forward(request, response);
    }
}

获取请求域数据

request.getAttribute(String str);只能在一个请求中传递数据,作用域是一次请求

@WebServlet("/servlet")
public class Servlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
       
        //设置请求域数据

        request.getAttribute(String str);

    }
}

Response

处理乱码

        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

获取字符输出流

        PrintWriter out = response.getWriter();

@WebServlet("/servlet")
public class Servlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
       
        //获取字符输出流
        PrintWriter out= response.getWriter();
        //输出数据
        out.print("Hello Servlet");
        
        out.close();
    }
}

一定要记得释放资源!!!

重定向
        response.sendRedirect("重定向servlet或html");


@WebServlet("/servlet")
public class Servlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
       
        //重定向
        response.sendRedirect("重定向servlet或html");
    }
}

response.addCookie(Cookie c);


@WebServlet("/servlet")
public class Servlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
       
        Coolie c = new Coolie(String name,String value);
        response.addCookie(Cookie c);
    }
}

重点,圈起来,要考!

转发和重定向的区别:

1、转发的url不变,重定向的url会变。

2、转发只有一次请求,重定向有两次请求。

3、转发不携带数据,重定向携带数据。

4、转发是服务器端的,重定向是客户端和服务器端进项


 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值