在java web开发中,servlet是服务器端的java应用程序,可以接收客户端请求并作出相应的回应。
要建立servlet应用程序,首先要安装tomcat,tomcat的安装网上教程很多,大家可以自行搜索,这里推荐一篇Tomcat7的安装教程
tomcat安装成功后,在其安装路径下,有webapps文件夹,专门用来发布web项目,每个项目需要在webapps下单独建立一个文件夹,我们下载建立一个test_servlet文件夹,在该文件夹下建立一个WEB-INF文件夹,在WEB-INF下建立classes和lib文件夹,并添加一个web.xml文件。
目录建立好了,接下来首先建立login.html文件,该文件实现了简单的登录功能
<html>
<head>
<title>实现servlet登录响应</title>
</head>
<body>
<!--action为html表单要提交到的服务器端程序地址,login为web.xml配置的servlet的url-pattern,是相对url,也可以写成绝对url:http://127.0.0.1:8080/test_servlet/login-->
<form action="login">
<div align="center" >
用户名:<input type="text" name="username" /><br />
密 码:<input type="password" name="userpwd" /><br />
<input type="submit" name="btnLogin" value="登录" />
<input type="reset" name="btnReset" value="重置" />
</div>
</form>
</body>
</html>
写好后把html文件拷贝到test_servlet文件夹下,然后建立servlet,servlet是一个java类,因此我们建立名叫LoginServlet.java的类,代码如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
//该类要实现HttpServlet接口,并添加上面的引用
public class LoginServlet extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
IOException{
//获得客户端表单中的用户名和密码,根据表单控件的name属性获取
String username=request.getParameter("username");
String password=request.getParameter("userpwd");
System.out.println("用户名是"+username);
System.out.println("密码是"+password);
//打印到html页,并返回客户端
response.setContentType("text/html");
response.getWriter().println("Login Success!!!");
}
}
建立好该类后,进行编译,将编译后的文件放到test_servlet文件加下的classes文件夹中。
至此,代码写的差不多了。我们写的html文件,作为客户端,发出请求后,怎么访问tomcat服务器上的servlet程序呢?是通过web.xml映射访问的,看下web.xml文件中的代码
<?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_3_0.xsd"
version="3.0">
<!--该节点为servlet类添加一个name-->
<servlet>
<servlet-name>Myservlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<!--该节点把name和servlet的虚拟路径做对应,客户端表单的action路径为url-pattern对应的路径-->
<servlet-mapping>
<servlet-name>Myservlet</servlet-name>
<!--servlet的虚拟路径,实现了和servlet类文件的映射,实现了java web的目录安全,因为客户端不直接访问类文件,而是访问虚拟路径-->
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
到此,可以启动tomcat了,运行tomcat目录里的bin文件夹下的startup.bat文件,然后输入http://127.0.0.1:8080/test_servlet/login.html(注意url区分大小写,如果是大小写有误会出现404),就可以访问页面了,填写用户名和密码后,服务器会返回LoginSuccess!