加強政府網(wǎng)站建設(shè)的總結(jié)/西安seo代運營
一、Servlet
1.Servlet的工作過程:
Servelt的工作流程示意圖
(1)客戶端發(fā)起一個Http請求到服務(wù)器,請求特定的資源或者是要執(zhí)行特定的操作
(2)服務(wù)器在接收到請求后,根據(jù)請求相應(yīng)的URL將請求分發(fā)給相應(yīng)的Servlet容器
(3)Tomcat加載并初始化Servlet,然后調(diào)用service()方法處理請求,根據(jù)請求的類型執(zhí)行相應(yīng)的操作處理,最后將生成內(nèi)容返回給服務(wù)器,服務(wù)器再把它發(fā)送到客戶端,
ps:也就是說Servlet的工作過程是接收客戶端請求、處理請求然后生成響應(yīng)返回給客戶端,從而實現(xiàn)動態(tài)的web頁面與用戶交互
2.常用的Servlet配置方法:
(1)@WebServlet注解方式
web.xml文件中使用<servlet>和<servlet-mapping>標簽來配置Servlet。
- 在<servlet>標簽中指定Servlet類的名稱和路徑。
- 在<servlet-mapping>標簽中指定Servlet的URL映射。
<servlet><servlet-name>MyServlet</servlet-name><servlet-class>com.example.MyServlet</servlet-class> </servlet><servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/myservlet</url-pattern> </servlet-mapping>
(2)web.xml文件
在Servlet類上使用@WebServlet注解來指定Servlet的URL映射和其他配置信息。比如:
@WebServlet(name = "MyServlet", urlPatterns = {"/myservlet"}) public class MyServlet extends HttpServlet {// Servlet code }
(3)自定義容器
如果使用Spring框架,可以通過配置文件或注解來配置Servlet。在Spring配置文件中使用<bean>標簽來配置Servlet,或者在Servlet類上使用@Controller或@RequestMapping注解來指定URL映射。
<bean id="myServlet" class="com.example.MyServlet" />
@Controller @RequestMapping("/myservlet") public class MyServlet {// Servlet code }
3.Servlet生命周期方法:
(1)初始化調(diào)用init()方法
當Servlet被實例化時調(diào)用,用于初始化Servlet。在這個方法中通常進行一些初始化操作,比如加載配置文件、建立數(shù)據(jù)庫連接等。
(2)請求Servlet服務(wù)調(diào)用service()方法
每次有請求到達Servlet時都會調(diào)用這個方法。在這個方法中處理請求并生成響應(yīng)。
(3)銷毀實例前調(diào)用destory()方法
當Servlet被銷毀時調(diào)用,用于釋放資源。在這個方法中通常進行一些清理操作,比如關(guān)閉數(shù)據(jù)庫連接、釋放內(nèi)存等。
二、會話管理
1.對比session與cookie的異同。
相同點 session和cookie都是同于保存會話數(shù)據(jù)的對象,并且都能用于客戶端與服務(wù)器之間數(shù)據(jù)傳遞,通常會話會將用戶的id號以cookie的方式存放在瀏覽器中進行用戶的身份識別,而且兩者都與一個用戶對應(yīng)只是在不同的作用域工作。 不同點 cookie session 存儲在瀏覽器的緩沖區(qū) 存儲在服務(wù)器端 相對不安全,因為內(nèi)容可以被用戶修改 用戶沒有權(quán)限修改,因此安全性高 可以設(shè)置過期時間,可以長期保存在客戶端 會隨著用戶的下線或關(guān)閉瀏覽器、超時而失效 存放在客戶端可以減輕服務(wù)器負擔 存放在服務(wù)器端對服務(wù)器的性能要求更高
2.與過濾器有關(guān)的3個接口:
javax.servlet.Filter 過濾器接口 定義了過濾器的生命周期方法和過濾方法,包括init()、doFilter()和destroy()。 javax.servlet.FilterChain 過濾器鏈接口 用于在過濾器中調(diào)用下一個過濾器。它的doFilter()方法允許過濾器將請求傳遞給下一個過濾器,或者如果沒有下一個過濾器,則將請求傳遞給Servlet。 javax.servlet.FilterConfig 過濾器配置接口 用于獲取過濾器的初始化參數(shù)和ServletContext。它的方法可以讓過濾器獲取在部署描述符中配置的初始化參數(shù),以及訪問ServletContext對象。
常用方法有三個:
getFilterName()、getInitParameter(String name )和 getServletContex()
?3.Servlet監(jiān)聽器是個可以監(jiān)聽web應(yīng)用程序內(nèi)部事件的Java類.
????Serlet有幾種監(jiān)聽器?各實現(xiàn)哪些監(jiān)聽功能?
Servlet上下文事件
ServletContexListener接口 對servletcontext創(chuàng)建和刪除 ServletContextAtrributeListener接口 Servletcontext屬性增刪改 會話事件
HttpSessionAtrributeListener接口 用于監(jiān)聽Http會話中屬性設(shè)置 HttpServletListener接口 用于監(jiān)聽會話的創(chuàng)建和銷毀 HttpSessionBingdingListener接口 用于監(jiān)聽對象本身綁定或刪除到一個會話 請求事件
ServiceRequestListener接口 用于監(jiān)聽每次請求到來 ServletRequestAttributeListener接口 用于跟蹤請求屬性的增刪改
三、JSP
1.JSP的隱式對象:
JSP的隱式對象有九個,它們分別是:
out對象 向客戶端發(fā)送文本內(nèi)容 request對象 存儲客戶端的請求 response對象 存儲響應(yīng)客戶端時要發(fā)送的信息 session對象 存儲用戶會話信息 application對象 作用在JSP頁面所屬的應(yīng)用程序 pageContext對象 使用戶在訪問頁面作用域中可以定義所有的隱式對象 page對象 正在運行的JSP頁面所產(chǎn)生的類對象 config對象 存儲Servlet信息(編譯JSP頁面過程中所創(chuàng)建的) exception對象 處理異常信息
2.JSTL標簽有哪些優(yōu)點?
第一,可以簡化JSP和WEB程序的開發(fā),讓本來需要大量代碼才能實現(xiàn)的功能可以通過少量JSTL代碼便可以實現(xiàn);
第二,可讀性高,在團隊開發(fā)中方便他人查看代碼,并且易于理解;
第三,在JSTL代碼下編寫的web程序易于后期維護;
四、JavaBean
1.JavaBean的編碼規(guī)范
首先:
- 必須要具有一個公共的(public)
- 無參的構(gòu)造方法(可以是編譯器自動產(chǎn)生的缺省構(gòu)造方法)
然后:
提供公共的(public)setter方法和getter方法——這里是為了能夠使得外部的程序獲取或者設(shè)置JavaBean的屬性
2.Spring容器支持多種形式的Bean的三種裝配方式
(1)基于XML的顯式裝配:
設(shè)值注入與構(gòu)造注入
(2)基于注解(Annotation)的裝配:
使用注解來標識Bean,包括@Component、@Service、@Repository、@Controller等,同時使用@Autowired、@Resource等注解來自動裝配Bean。
(3)自動裝配
將一個Bean自動的注入到到其他Bean的Property中。 Spring的<bean>中包含一個autowire屬性,通過設(shè)置autowire的屬性值來自動裝配Bean。
3.Spring實例化Bean有三種方式
構(gòu)造器實例化 Spring容器通過建立的Bean類中的默認構(gòu)造器來實例化Bean 靜態(tài)工廠方式實例化 Spring容器通過建立的Bean類中的默認構(gòu)造器來實例化Bean 實例化工廠方式實例化 直接創(chuàng)建Bean實例,在配置文件里面利用factory-bean屬性配置實例工廠,通過factory-method屬性來確定使用哪個方法,也是自行通過創(chuàng)建Bean類和工廠類,但這里和上面的不同的是,是通過非靜態(tài)方法去獲取Bean類的實例 以上三個方法在創(chuàng)建并實例好后,都需要創(chuàng)建Spring配置文件,(配置Bean類/工廠類),最后進行測試