javaweb:servlet
? 1. 每一個servlet都必須實現Servlet接口,GenericServlet是個通用的,不特定于任何協議的Servlet,它實現了Servlet接口,而HttpServlet繼承了GenericServlet,因此HttpServlet也實現了Servlet接口,所以我們定義的Servlet只需要集成HttpServlet父類即可。
? ?2. Servlet接口中定義了service方法,HttpServlet對該方法進行了實現,實現方式是將ServletRequest和ServletResponse轉換為HttpServletRequest和HttpServletResponse.
? ?3. HttpServlet類中所提供的doGet, doPost等方法都是直接返回錯誤信息,所以我們需要在自己定義的service類中override這些方法。
?
?4. 在Servlet接口中,定義了五個方法,其中三個方法代表了Servlet的生命周期 :
? ? ? 1). init方法,負責初始化Servlet對象
? ? ? 2). service方法,負責響應客戶的請求
? ? ? 3). destroy方法,當Servlet對象退出聲明周期時,負責釋放占用的資源。
?
5. 某些Servlet在web.xml文件中只有<servlet></servlet>元素而沒有<servlet-mapping></servlet-mapping>元素,這樣我們就無法通過url地址的方式訪問這個Servlet, 這種Servlet通過會在<servlet></servlet>元素中配置一個<load-on-startup></load-on-startup>子元素,讓容器在啟動的時候自動加載該Servlet,并且調用其init方法完成一些全局性的初始化工作。
?
6. ServletContext和Web應用關系
? ?當Servlet容器啟動Web應用時,并為每個web應用創建唯一的ServletContext對象。可以把ServletContext看成是一個Web應用的服務器端組件的共享內存。
import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;@WebServlet(name = "CounterServlet") public class CounterServlet extends HttpServlet {private int count = 0;protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {ServletContext servletContext = request.getServletContext();Object obj = servletContext.getAttribute("count");if(null != obj){count = (int)obj;}count++;response.setContentType("text/html;charset=UTF-8");response.setCharacterEncoding("utf-8");servletContext.setAttribute("count",count);PrintWriter out = response.getWriter();out.println("<html>");out.println("<head> <title>計數器</title></head>");out.println("<body>訪問人數:");out.println(count);out.println("</body>");out.println("</html>");} }?
總結
以上是生活随笔為你收集整理的javaweb:servlet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsp:请求转发和重定向
- 下一篇: IntelliJ IDEA启动Tomca