當(dāng)時(shí)在上JAVA課的時(shí)候,老師就給我們講過(guò)SUN公司的servlet是一個(gè)典型的JAVA語(yǔ)言的應(yīng)用。現(xiàn)在在上網(wǎng)絡(luò)編程課的時(shí)候,終于接觸到了這種服務(wù)器小程序。
現(xiàn)在我們就用servlet來(lái)簡(jiǎn)單實(shí)現(xiàn)一個(gè)用戶登錄的小程序。
首先,servlet也是一個(gè)JAVA類(lèi),新建一個(gè)JAVA類(lèi),它直接繼承了HttpServlet類(lèi):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
@WebServlet (name = "ServletTest" ) public class ServletTest extends HttpServlet { @Override public void init(ServletConfig config) throws ServletException { super .init(config); } @Override public void init() throws ServletException { super .init(); } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { //super.service(req, res); String username=req.getParameter( "username" ); String password=req.getParameter( "password" ); System.out.println(username); System.out.println(password); } @Override public void destroy() { super .destroy(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super .doPost(req, resp); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super .doGet(req, resp); } } |
Servlet作為一個(gè)程序,也會(huì)有它的生命周期,它的生命周期從init()開(kāi)始,有兩種init(),一個(gè)是有參數(shù)的,另一個(gè)是無(wú)參數(shù)的。其中有參數(shù)的init方法會(huì)顯示地調(diào)用無(wú)參的init()方法。從init(ServletConfi,g config)的源代碼中我們也可以看出這一點(diǎn)。init()是在被Servlet被訪問(wèn)時(shí)被調(diào)用
當(dāng)servlet接受用戶提交的表單的時(shí)候會(huì)調(diào)用service方法。
然后編寫(xiě)login.jsp:
1
2
3
4
5
6
|
< form action="<%= request.getContextPath() %>/loginServlet" method="post"> 用戶名:< input type = "text" name = "username" >< br /> 密碼:< input type = "password" name = "password" >< br /> < input type = "submit" value = "登錄" > < input type = "reset" value = "重置" > </ form > |
注意action中要使用request.getContextPath獲取到上下文路徑。
loginServlet需要在web.xml中進(jìn)行配置
1
2
3
4
5
6
7
8
9
|
< servlet > < servlet-name >LoginServlet</ servlet-name > < servlet-class >com.myServlet.ServletTest</ servlet-class > </ servlet > < servlet-mapping > < servlet-name >LoginServlet</ servlet-name > < url-pattern >/loginServlet</ url-pattern > </ servlet-mapping > |
servlet-name隨便起,servlet-class表示servlet的類(lèi)名。
url-pattern是action中引用的名字,這樣它們就關(guān)聯(lián)在一起了。
最后就可以看見(jiàn)表單中的username和password被打印出來(lái)了。
最后其它的方法可以根據(jù)需要在官方文檔中查找。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文地址:https://blog.csdn.net/sunny1996/article/details/72571596