servlet有什么用? 在下面的图中,一个前台页面中的数据,比如用户登陆时填写的用户名和密码,这些数据都是在前台由用户填写的,当用户点击提交或登录按钮时,系统会自动把用户填写的用户名和密码与数据库中的数据进行对比,如果用户名和密码都正确,才允许用户登录系统,如果不正确,则拒绝用户登录。但是前台中用户填写的数据要想和数据库中存放的数据进行对比,需要由后台作为两者之间交互的桥梁。因此,前台的数据需要先提交给后台,再由后台访问数据库,并进行对比,而前台与后台之间的交互就是由servlet进行的。 下面通过一个简单的案例来理解servlet的使用以及原理: 第一种方法: 1、在我前面几篇文章中已经做好的铺垫的基础上,现在前台页面中写一个表单,用于输入用户名和密码 看一下效果: 2、创建一个servlet,用于接收用户提交的数据,命名为UserServlet 上面红框中的“/UserServlet”就是让前台页面通过这个路径找到这个Servlet,然后把数据交给这个Servlet进行处理 3、前台页面与后台的UserServlet连接 在步骤1中的form表单中有一个“action”属性,这个属性表示当前表单要提交到哪个地方,而我们想要把表单中的数据提交给UserServlet,因此要在action属性中填写步骤2中的UserServlet,这样前台页面中的数据就能提交给UserServlet 4、但是,在步骤3中存在一个错误,就是不能直接把Servlet中的路径直接写在form表单中的action属性中,这是因为前台页面在被访问的时候,对于要提交的UserServlet,它找不清楚,因为可能在其他项目中也存在有UserServlet,这是很常见的,因此需要标明是提交给哪个项目的UserServlet,所以要在action属性中UserServlet的前面加上项目名。 其中pom.xml中的ServletDemo是给这个项目起的别名,一般都和项目名相同,如果起的别名为aaa,则index中红框部分就要改为/aaa/UserServlet 5、验证UserServlet是否接收到数据并且能够正确执行 在UserServlet的doGet方法里写打印输出语句,将想要输出的结果打印到控制台。如果在控制台上有显示的东西,则说明前台页面中的数据已经提交给后台的UserServlet,并且调用了UserServlet中的doGet方法,将结果打印出来,这也就实现了前台与后天的交互(不要在这里写中文,因为会产生中文乱码,这是因为这个项目使用Maven开发的,Maven对中文的处理不是太好) 运行,在前台填写一下用户名和密码,点击提交按钮,(也可以不用填写,直接点击提交按钮)再查看IDEA的控制台,看“UserServlet……”是否打印出来 第二种方法: 用超链接,也就是<a></a>标签,也可以实现前台与后台的交互 1、写一个<a></a>标签,里面的href链接到 /ServletDemo/UserServlet 2、运行 点击“提交”按钮,然后回到IDEA的控制台,看是否打印出“UserServlet......” 再点击“这是一个超链接,可以链接到UserServlet”,然后再回到IDEA的控制台,看是否打印出“UserServlet......” 此时已经说明前台和后台实现了连接和交互