在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!!!"); } }
至此,代码写的差不多了。我们写的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!