获取浏览器提交的参数
通过一个登录功能,学习 Servlet 如何获取从浏览器提交的账号密码。
创建 login.html
在 web 上右键 -> New -> File,创建一个 login.html 文件,然后添加一个 form 表单元素。
action="login"标题会提交到login路径,login路径会映射到LoginServletmethod="post",post 方式提交的密码信息不会在浏览器地址栏显示
账号和密码使用 input 元素.在 Servlet 端为了区分账号和密码,要给这两个 input 元素的 name 属性分别叫做 username 和 password。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>登录页面</title>
</head>
<body>
<form action="login" method="post">
账号: <input type="text" name="username" /> <br />
密码: <input type="password" name="password" /> <br />
<input type="submit" value="登录" />
</form>
</body>
</html>
创建 LoginServlet
同 HelloServlet 操作一样创建一个 LoginServlet。
浏览器中的 form 的 method 是 post,LoginServlet 需要提供一个 doPost 方法。
在 doPost 方法中,通过 request.getParameter 根据 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 username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username:" + username);
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/xxx/login.html。输入账号密码,点击提交,然后在 Tomcat 的控制台窗口,就可以看到提交的账号和密码。
如果要在浏览器上要看到 Tomcat 的反馈数据,需要通过响应来实现。
2444

被折叠的 条评论
为什么被折叠?



