html客户端输入数据:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h2>登录</h2>
<!--这里的action是servlet配置里的<url-pattern>/LoginServlet</url-pattern>-->
<form action="LoginServlet" method="get">
账号:<input type="text" name="username"/><br>
密码:<input type="text" name="password"/><br>
<input type="submit" value="登录">
</form>
</body>
</html>
LoginServlet实现服务端接受数据,判断数据等操作:
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name=request.getParameter("username");
String password=request.getParameter("password");
System.out.println("名字是:"+name+",密码是:"+password);
//向客户端输出内容
PrintWriter pw=response.getWriter();
if ("admin".equals(name) && "123".equals(password)) {
//pw.write("login success");
//获取getServletContext()中存放的"count"
Object obj= getServletContext().getAttribute("count");
int totalCount=0;
if(obj!=null){
totalCount= (int) obj;
}
getServletContext().setAttribute("count",totalCount++);
//设置状态码,重新定位 状态码
response.setStatus(302);
//定位跳转的位置是哪一个页面
response.setHeader("Location","login_success.html");
}else{
pw.write("login failed");
}
}
}
成功跳转的页面:
<body>
<h2>登录成功</h2>
<a href="CountServlet">查看登录成功的次数</a>
</body>
CountSevlet:
public class CountServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int count= (int) getServletContext().getAttribute("count");
response.getWriter().write("login success count =="+count);
System.out.println(count);
}
}
HttpServletRequest:这个对象封装了客户端提交过来的一切数据
- 可以获取客户端请求头信息
//1.获取头信息 Enumeration<String> headerNames=request.getHeaderNames(); while(headerNames.hasMoreElements()){ String name=headerNames.nextElement(); String value=request.getHeader(name); System.out.println(name+":"+value); }
- 获取客户端请求体信息
//获取请求的name的值 String name=request.getParameter("name"); System.out.println(name); //将数据取到Map中, //Map<String,String> map=request.getParameterMap(); //表示一个键对应多个值 Map<String,String[]> map=request.getParameterMap(); //取出Map中的Key Set<String> keySet=map.keySet(); Iterator<String> iterator=keySet.iterator(); while (iterator.hasNext()){ String key=iterator.next(); String value=map.get(key)[0]; System.out.println(key+"="+value); }
总的doGet代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取头信息 Enumeration<String> headerNames=request.getHeaderNames(); while(headerNames.hasMoreElements()){ String name=headerNames.nextElement(); String value=request.getHeader(name); System.out.println(name+":"+value); } //获取请求的name的值 String name=request.getParameter("name"); System.out.println(name); //将数据取到Map中, //Map<String,String> map=request.getParameterMap(); //表示一个键对应多个值 Map<String,String[]> map=request.getParameterMap(); //取出Map中的Key Set<String> keySet=map.keySet(); Iterator<String> iterator=keySet.iterator(); while (iterator.hasNext()){ String key=iterator.next(); String value=map.get(key)[0]; System.out.println(key+"="+value); } }