我们在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程序一样,简单但也要纪念一下。
|