Java学习笔记之---Servlet
(一)如何实现Servlet
1.实现javax.servlet.Servlet接口;
2.继承javax.servlet.GenericServlet类;
3.继承javax.servlet.http.HttpServlet类;
(二)Servlet的生命周期
(1)init() 方法:初始化
只被调用一次,在创建servlet的时候被调用
(2)service()方法:处理客户端的请求
执行实际任务的主要方法,在适当的时候调用doGet(),doPost(),doPut(),doDelete()等方法
(3)destroy()方法:销毁
只被调用一次,在Servlet生命周期结束时被调用
(三)servlet配置
(1)在web.xml中配置路径和参数
(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. 方法:
(五)jsp内置对象在Servlet中如何使用
(六)转发与重定向
区别:
- 转发时地址栏不发生变化,重定向时地址栏发生变化
- 转发只向服务器发起一次请求,重定向向服务器发起两次请求
- 转发可以携带数据,重定向只能借助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")%>