JavaWeb(一)Servlet
一、Servlet簡介
Servlet 是J2EE的一個規範,為Java提供統一的web應用規範。
廣義的Servlet 是指實現了servlet的類
二、Servlet工作原理
1、原理: 一個http請求到來,容器將請求封裝成servlet中的request對象,在request對象中可以打得到http信息,處理完這個請求後,將數據封裝成servelt的repsonse對象,應用容器將response對象解析之後封裝成http response;
2、Servlet生命周期
初始化init(): 服務器啟動時(web.xml中配置load-on-startup=1,默認為0)或者第一次請求該servlet時,就會初始化一個Servlet對象,也就是會執行初始化方法init(ServletConfig conf)
service(運行): 該servlet對象去處理所有客戶端請求,在service(ServletRequest req,ServletResponse res)方法中執行
destroy(銷毀): 最後服務器關閉時,才會銷毀這個servlet對象,執行destroy()方法。
3、web服務器通過Servelt處理動態請求,本質上是幫助程序
Servlet工作流程分為三個階段。init(初始化),service(運行),destroy(銷毀)Servlet沒有main方法,所有行為由Container控制。Container就是一個java程序。在加載Servlet的.class後,Servlet會由構造函數生成一個實例,然後Container調用init()方法完成參數的初始化,接著調用service()方法,service會根據網頁的請求,調用doGet或者doPost方法,最後調用銷毀方法。整個流程如下圖:
鏈接:https://www.zhihu.com/question/21416727/answer/82511153
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。]
三、Servlet開發流程
0、目錄
1、先在Tomcat目錄下建立一個 WEB-INF文件夾;
2、在WEB-INF文件夾下面建立一個web.xml文件,記錄網站配置信息;
建立類文件集,存放servlet(就是目錄下面的com.web文件夾)
創建一個servlet --- AdminAddProductService類
package com.web; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.sql.Date; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Map; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.BeanUtils; import com.domain.Product; import com.service.AdminProductService; /** * Servlet implementation class AdminAddProductServlet */ public class AdminAddProductServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); Map<String, String[]> properties = request.getParameterMap(); Product product = new Product(); try { BeanUtils.populate(product, properties); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } product.setPid(UUID.randomUUID().toString()); private String pimage; product.setPimage("products/1/c_0033.jpg"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String pdate = format.format(new Date(0)); product.setPdate(pdate); product.setPflag(0); AdminProductService service = new AdminProductService(); try { service.addProduct(product); } catch (SQLException e) { e.printStackTrace(); } response.sendRedirect(request.getContextPath()+"/adminProductList"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
web.xml 自動配置以下信息
<servlet> <description></description> <display-name>AdminAddProductServlet</display-name> <servlet-name>AdminAddProductServlet</servlet-name> <servlet-class>com.web.AdminAddProductServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AdminAddProductServlet</servlet-name> <url-pattern>/adminAddProduct</url-pattern> </servlet-mapping>
一個完整教程鏈接:
https://www.cnblogs.com/whgk/p/6399262.html
JavaWeb(一)Servlet