Java学习笔记之---Servlet

(一)如何实现Servlet

1.实现javax.servlet.Servlet接口;

2.继承javax.servlet.GenericServlet类;

3.继承javax.servlet.http.HttpServlet类;

Java学习笔记之---Servlet-LMLPHP

(二)Servlet的生命周期

Java学习笔记之---Servlet-LMLPHP

(1)init()  方法:初始化

只被调用一次,在创建servlet的时候被调用

(2)service()方法:处理客户端的请求

执行实际任务的主要方法,在适当的时候调用doGet(),doPost(),doPut(),doDelete()等方法

(3)destroy()方法:销毁

只被调用一次,在Servlet生命周期结束时被调用

(三)servlet配置

(1)在web.xml中配置路径和参数

Java学习笔记之---Servlet-LMLPHP

(2)利用注解配置

@WebServlet("/LoginServlet")

(四)servlet的四大域对象

(1)ServletContext

1. 作用域:web应用期间

2.一个应用中只创建一个ServletContext对象

3. 方法:

ServletContext application = this.getServletContext();

application.setAttribute();    application.getAttribute();

application.removeAttribute();

(2)Servletrequest

1. 作用域:当前请求中

2. 方法:

request.setAttribute();    reuqest.getAttribute();

request.removeAttribute();    request.getParameter();

(3)HttpSession

1. 作用域:整个会话期间

2. 服务器会为每一个会话创建一个Session对象,所以Session中的数据可供当前会话中所有Servlet共享

3. 方法:

HttpSession session = request.getSession();

session.setAttribute();    session.getAttribute();

session.removeAttribute();

(4)PageContext

1. 作用域:页面执行期间

2. 方法:Java学习笔记之---Servlet-LMLPHP

(五)jsp内置对象在Servlet中如何使用

Java学习笔记之---Servlet-LMLPHP

(六)转发与重定向

区别:

  1. 转发时地址栏不发生变化,重定向时地址栏发生变化
  2. 转发只向服务器发起一次请求,重定向向服务器发起两次请求
  3. 转发可以携带数据,重定向只能借助ServletContext

转发:request.setAttribute("count",co);

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

<%=request.getAttribute("count")%>

重定向:ServletContext s=this.getServletContext();

s.setAttribute("count",co);

response.sendRedirect("count.jsp");

<%=application.getAttribute("count")%>

05-06 03:59