上篇博客说了如何搭建jdk和Tomcat环境,这次我们在TomCat下写一个简单的Servlet实例,例子很简单:客户端输入账号和密码,经Servlet处理,在服务端显示用户名和密码,客户端返回“登录成功”。
代码
HTML
这个不用多说,和.NET中的HTML一样,直接和用户交互,并可以发出请求,提交表单数据。
<html>
<head>
<title>login</title>
</head>
<body>
<form action="http://127.0.0.1:8080/MyFirstServlet/LoginTest" method="GET">
ID:<input type="text" name="userName" >
</br>
PW:<input type="text" name="password" >
</br>
<input type="submit" id="btnSubmit" value="submit">
</form>
</body>
<html>
LoginTest.java
在我看来,经过编译形成的类文件,就是真正进行处理的类文件,Tomcat部署中的配置文件,最后要的结果就是要找到这个类文件。
import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
public class LoginTest extends HttpServlet{
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException {
String userName=request.getParameter("userName");
String password=request.getParameter("password");
System.out.println(userName);
System.out.println(password);
response.setHeader("Content-type","text/html;charset=UTF-8");
response.getWriter().println("欢迎 "+userName+" 使用本系统!");
}
}
运行结果
浏览器方面,首先输入ID:lida、密码:123,提交给Servlet处理;经过Servlet处理,返回给浏览器的是“欢迎 lida 使用本系统!”,如下:
服务器方面,打开Tomcat,可以看到把用户名和密码打印了命令行的最下端:
配置
以下是项目MyFirstServlet的配置文件,这个配置文件主要说明的是:Servlet的名字,指向的类和它的URL,注意配置文件的头信息不要更改:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>LoginTest</servlet-name>
<servlet-class>LoginTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginTest</servlet-name>
<url-pattern>/LoginTest</url-pattern>
</servlet-mapping>
</web-app>
时序图
使用EA时序图的方式,展现交互的过程:
简单说来,这个处理过程是:
- 用户输入账号和密码,通过协议及指定的URL找到Tomcat
- Tomcat截取URL字符串,找到项目名称,示例为MyFirstServlet
- Tomcat再次截取字符串,找到要访问的Servlet名称,示例为LoginTest
- 通过找到的Servlet名称,找到映射到的地址
- 通过Servlet名称,找到类文件名
- 结合以上两步,准确定位类文件地址
- 把请求传给类文件,处理后发回响应内容
- 浏览器解析响应内容,展现给用户。
总结
实例很简单,处理过程和一个.NET下的一般处理程序区别不大,因为是第一个,就像第一个VB程序一样,简单但也要纪念一下。
更多博客,其访问《项目总结》。