通过登录行为,演示servlet如何获取从浏览器提交的账号密码
- 创建 login.html
在web上右键 -> New ->File
创建一个 login.html文件
然后添加一个form元素
action="login" 标题会提交到login路径,login路径在后续步骤会映射到LoginServlet
method="post" post方式表示提交的密码信息在浏览器地址栏看不到
接着准备账号和密码的input元素
因为要提交两个数据,在servlet端为了区分哪个是账号,哪个是密码,要给这两个input元素的name属性分别叫做name和password。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> <form action="login" method="post"> 账号: <input type="text" name="name"> <br> 密码: <input type="password" name="password"> <br> <input type="submit" value="登录"> </form> </body> </html>
- 创建 LoginServlet
创建一个LoginServlet
因为浏览器中的form的method是post,所以LoginServlet需要提供一个doPost方法
在doPost方法中,通过request.getParamter 根据name取出对应的账号和密码
然后用System.out.println() 打印在控制台
注 这里是打印在控制台,并没有在网页上输出
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String password = request.getParameter("password"); System.out.println("name:" + name); System.out.println("password:" + password); } }
- 映射LoginServlet到路径login
在web.xml中新增映射
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> </web-app>
- 在页面提交数据
首先重启tomcat
然后访问页面
输入账号密码,提交http://127.0.0.1/login.html
然后在tomcat的窗口,就可以看到提交的账号和密码了。
注 不是在浏览器上看到这个提交的数据,浏览器上要看到tomcat的反馈数据,需要通过响应来实现