当时在上JAVA课的时候,老师就给我们讲过SUN公司的servlet是一个典型的JAVA语言的应用。现在在上网络编程课的时候,终于接触到了这种服务器小程序。
现在我们就用servlet来简单实现一个用户登录的小程序。
首先,servlet也是一个JAVA类,新建一个JAVA类,它直接继承了HttpServlet类:
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作为一个程序,也会有它的生命周期,它的生命周期从init()开始,有两种init(),一个是有参数的,另一个是无参数的。其中有参数的init方法会显示地调用无参的init()方法。从init(ServletConfi,g config)的源代码中我们也可以看出这一点。init()是在被Servlet被访问时被调用
当servlet接受用户提交的表单的时候会调用service方法。
然后编写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中进行配置
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的类名。
url-pattern是action中引用的名字,这样它们就关联在一起了。
最后就可以看见表单中的username和password被打印出来了。
最后其它的方法可以根据需要在官方文档中查找。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文地址:https://blog.csdn.net/sunny1996/article/details/72571596