用户登陆界面我们可以使用form表单来实现,给出了以下代码
Login
建议用f12看一下整个请求到响应的过程
这里我们设置了一个用户登陆界面。账号字段可以用简单文本域 标签来设定,用户在表单中数入字母、数字等内容时,就会显示出来;密码字段通过标签 来定义,密码字段字符不会明文显示,而是以星号或圆点替代。
我们可以看到运行页面的界面情况
代码中的method代表参数传入到服务器的方式,有post和get两种方法,不写默认为Get。
2.参数如何传到服务器上进行相应的处理通过get或者posy方法参数传入服务器中,再通过request.getParameter () 取得通过容器的实现来取得通过类似post,get等方式传入的数据。我们加上下面的源代码进行理解
package servlet;
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 doGet(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 );
//给出响应
response.setContentType("text/html");
response.getWriter().println("Login Success!");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
使用Get方式提交数据,其参数在浏览器的地址栏的url中可见,所以隐私性安全性较差,且参数长度也是有限制的。
而对于Post方式,参数就会以form data的形式传递,浏览器会根据网页的meta标签中的content="text/html; charset=UTF-8"中指定的编码进行对表单中的数据进行编码,然后发给服务器,在服务器端的程序中我们可以通过request.setCharacterEncoding(“charset”)方式(JSP代码) 设置编码,然后通过request.getParameter获得正确的数据,编码方式是我们可以控制的。
下面是用get方法传入参数,参数的url就会被显示出来(用户登录密码):
而使用Post方式,url不会显示出来
总结Post方式优于Get方法的原因:
- 更少的乱码问题。
- 更加安全(数据不会出现在url中),从上面的实践就可以看出
- Get传输的数据量小,这主要是因为受url长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)