-
response.sendRedirect(request.getContextPath()+"/login_success.jsp");
查看全部 -
Servlet頁(yè)面跳轉(zhuǎn)的兩種方式:
1、請(qǐng)求重定向方式跳轉(zhuǎn)
2、服務(wù)器內(nèi)部跳轉(zhuǎn)
查看全部 -
@Servle——(一)Servlet概述——Servlet的路徑跳轉(zhuǎn) 一、JSP跳轉(zhuǎn)到Servlet 1、相對(duì)路徑,如href="servlet/TestServlet" ***注意:如果寫(xiě)成"/servlet/TestServlet"會(huì)報(bào)錯(cuò),因?yàn)榈谝粋€(gè)'/'表示的是【服務(wù)器根目錄:http://localhost:8080/】 2、絕對(duì)路徑,通過(guò)內(nèi)置成員變量path實(shí)現(xiàn),如href="<%=path%>/servlet/TestServlet"。 ***注意:這里的path得到的是項(xiàng)目根目錄,如【http://localhost:8080/Servlet002_GetFormDemo】 二、Servlet跳轉(zhuǎn)JSP 1、請(qǐng)求重定向:response.sendRedirect(request.getContextPath()+"/xxx.jsp");這里通過(guò)request.getContextPath()方法獲得項(xiàng)目根目錄,或者通過(guò)"../xxx.jsp"取得上層路徑得到 2、服務(wù)器內(nèi)部轉(zhuǎn)發(fā):request.getRequestDispatcher("../xxx.jsp").forward(req,resp); ***小結(jié):都可以通過(guò)../xxx.jsp得到
查看全部 -
1. HttpServlet類(lèi)擴(kuò)展了GenericServlet類(lèi),實(shí)現(xiàn)了GenericServlet類(lèi)的抽象方法service(). 2. HttpServlet類(lèi)有兩個(gè)service( )方法.分別是: ? void ?service(ServletRequest req, ServletResponse res); ? protected void ?service(HttpServletRequest req, HttpServletResponse resp); 3. 我們自己編寫(xiě)的Servlet繼承了HttpServlet類(lèi),一般只需覆蓋doPost或者doGet方法, 不覆蓋service()方法,不是因?yàn)樵摲椒ㄊ强眨且驗(yàn)閟ervice( )方法會(huì)調(diào)用doPost或者doGet方法。查看全部
-
HttpServlet實(shí)現(xiàn)了Servlet接口,所以也就實(shí)現(xiàn)了HttpServlet中的所有方法。 在HttpServlet類(lèi)中有兩個(gè)service()方法: void service(ServletRequest req, ServletResponse res); protected void service(HttpServletRequest req, HttpServletResponse resp); 其中只有void service(ServletRequest req,ServletResponse response)方法是由tomcat自動(dòng)調(diào)用,它將接收的客戶端請(qǐng)求轉(zhuǎn)交給HttpServlet中的另一個(gè)protected void service(HttpServletRequest req,HttpServletResponse res)方法,此保護(hù)類(lèi)型的service方法再把將請(qǐng)求分發(fā)給doPost()、doGet()方法進(jìn)行下一步處理。如果你重載了該方法,默認(rèn)操作被覆蓋,不再進(jìn)行轉(zhuǎn)發(fā)操作!我們可以重寫(xiě)受保護(hù)的service()方法來(lái)代替doPost()和doGet()方法。
查看全部 -
通過(guò)Servlet獲取表單數(shù)據(jù): 1.建立JavaBean類(lèi); 2.在Servlet類(lèi)中的 doPost方法內(nèi)編寫(xiě)代碼; a)實(shí)例化JavaBean對(duì)象,通過(guò) getParameter(String param);獲取表單值,通過(guò) getParameterValues(String param); 獲取多個(gè)同name的表單值;通過(guò)setter()方法給JavaBean對(duì)象傳值; b)將JavaBean對(duì)象保存到session中; c)進(jìn)行頁(yè)面跳轉(zhuǎn)。 3.jsp頁(yè)面中創(chuàng)建Servlet對(duì)象,通過(guò)<jsp:getProperty />或?qū)ο蟮膅et()方法獲取值。 <jsp:useBean id="idName" class="classPath" scope="session"></jsp:useBean> <jsp:getProperty name=" idName " property="propertyName"/> <% String[] favorites=userReg.getFavorites(); ? for(String favorite:favorites){ %> <%=favorite %> <% }%> 注意事項(xiàng): 1.在 jsp 頁(yè)面中可以使用<% %> 寫(xiě) java 代碼; 2.日期轉(zhuǎn)換時(shí)需要注意格式 '-'; 3.復(fù)選框需要使用 getParameterValues 方式獲取; 4.注意復(fù)選框是否為 null ; 5.注意javaBean屬性名不與表單屬性名沖突!
查看全部 -
@JavaWeb---Servlet與九大內(nèi)置對(duì)象
out返回JspWriter類(lèi)型,而resp.getWriter返回PrintWriter類(lèi)型,不同;
request、response通過(guò)service()方法中的req、resp來(lái)獲?。?br />session可以通過(guò)request.getSession()來(lái)獲取;
application可以通過(guò)getServletContext()來(lái)獲取;
exception可以通過(guò)Throwable 來(lái)獲得;
page對(duì)應(yīng)this對(duì)象;
pageContext對(duì)象對(duì)應(yīng)PageContext對(duì)象;
config可以通過(guò)getServletConfig()來(lái)獲取。查看全部 -
Servlet的裝載三種情況: 1、自動(dòng)裝載:某些Servlet如果需要在Servlet容器啟動(dòng)時(shí)就加載,需要在web.xml下它的<Servlet>標(biāo)簽里中,添加優(yōu)先級(jí)代碼: <Servlet> <load-on-startup>1<load-on-startup> </Servlet> 數(shù)字越小表示該servlet的優(yōu)先級(jí)越高,會(huì)先于其他自動(dòng)裝載的優(yōu)先級(jí)較低的先裝載 2、Servlet容器啟動(dòng)后,客戶首次向某個(gè)Servlet發(fā)送請(qǐng)求時(shí),Tomcat容器會(huì)加載它 3、當(dāng)Servlet類(lèi)文件被更新后,也會(huì)重新自動(dòng)加載 Servlet是長(zhǎng)期駐留在內(nèi)存里的。某個(gè)Servlet一旦被加載,就會(huì)長(zhǎng)期存在于服務(wù)器的內(nèi)存里,直到服務(wù)器關(guān)閉 Servlet被裝載后,Servlet容器創(chuàng)建一個(gè)Servlet實(shí)例并且調(diào)用Servlet的init()方法進(jìn)行初始化。在Servlet的整個(gè)生命周期內(nèi),init()方法只被調(diào)用一次
查看全部 -
周期包括查看全部
-
編寫(xiě)Servlet的doPost方法時(shí),需要拋出ServletException和IOException異常,不會(huì)拋出HttpServletException異常。
查看全部 -
servlet的生命周期:初始化-->加載-->實(shí)例化-->服務(wù)-->銷(xiāo)毀 1、初始化--init();整個(gè)周期中只執(zhí)行一次,初始化servlet對(duì)象。 2、服務(wù)--service();屬于Servlet的核心,負(fù)責(zé)響應(yīng)客戶的請(qǐng)求。注:該階段能夠產(chǎn)生多線程。 3、銷(xiāo)毀--destroy();整個(gè)周期只執(zhí)行一次,負(fù)責(zé)釋放占用的資源。注:但會(huì)受到多線程的影響,需要確認(rèn)這些線程已經(jīng)終止或完成。
查看全部 -
@Servle——(一)Servlet概述——執(zhí)行流程
1.客戶端發(fā)送請(qǐng)求給服務(wù)器。 2.服務(wù)器開(kāi)始接受,先判斷該請(qǐng)求的servlet實(shí)例是否存在,如果不存在先裝載一個(gè)servlet類(lèi)并創(chuàng)建實(shí)例。如果存在則直接調(diào)用該servlet的service方法,之后進(jìn)行判斷是調(diào)用doGet方法還是doPost方法。 3.servlet創(chuàng)建實(shí)例后,調(diào)用init方法進(jìn)行初始化。之后調(diào)用servce方法,判斷是調(diào)用doGet方法還是doPost方法。 4.最后判斷服務(wù)是否關(guān)閉,如果關(guān)閉則調(diào)用destroy方法。
查看全部 -
假設(shè)在helloapp應(yīng)用中有一個(gè)HelloServlet類(lèi),它在 web.xml文件中的配置如下: ?<servlet> ? ?<servlet-name>HelloServlet</servlet-name> ? ? ? <servlet-class>org.javathinker.HelloServlet</servlet-class> </servlet> ? <servlet-mapping> ? ?<servlet-name>HelloServlet</servlet-name> ? ?<url-pattern>/hello</url-pattern> </servlet-mapping> ? 那么在瀏覽器端訪問(wèn)HelloServlet的URL是什么? 解析 正確的URL地址是:http://localhost:8080/helloapp/hello,其中l(wèi)ocalhost是服務(wù)器主機(jī)名,也可以是IP地址127.0.0.1;8080是tomcat服務(wù)器的端口號(hào);helloapp是web工程的上下文地址ContexRoot(一般情況下與web工程名一致);最后是<url-pattern/>標(biāo)簽中的內(nèi)容。
查看全部 -
MyEclipse編寫(xiě)第一個(gè)Servlet 1. src ->new Servlet 2. 重寫(xiě)doGet()或者doPost() 3. 部署運(yùn)行
查看全部 -
Servlet層級(jí)關(guān)系: Servlet(接口)-->GenericServlet(抽象類(lèi),與協(xié)議無(wú)關(guān)的Servlet)-->HttpServlet(抽象類(lèi),實(shí)現(xiàn)了Http協(xié)議的Servlet)-->Custom Servlet(自定義的Servlet)。 創(chuàng)建一個(gè)Servlet需要經(jīng)過(guò)以下步驟: (1)新建一個(gè)Java類(lèi),繼承“javax.servlet.http.HttpServlet”; (2)實(shí)現(xiàn)“doGet()”方法和“doPost()”方法; (3)在應(yīng)用配置文件“web.xml”中注冊(cè)新建的Servlet;查看全部
舉報(bào)