1,简单的做一个密码登录
index类代码
1,乱码处理
req.setCharacterEncoding(StandardCharsets.UTF_8.toString());
resp.setCharacterEncoding(StandardCharsets.UTF_8.toString());
2,获取前端数据
String username = req.getParameter("username");
String pass = req.getParameter("pass");
3,将数据封装到对象
User user=new User(username,pass);
4,逻辑处理
5,得到返回结果
req.setAttribute("user",user);
6,页面转发
req.getRequestDispatcher("/success.jsp").forward(req,resp);
index.jsp代码
<form action="index" method="post">
<div>用户名</div>
<input type="text" name="username">
<div>密码</div>
<input type="text" name="pass">
<div><input type="submit" value="提交"></div>
</form>
</body>
(这里出现了一个问题,form表单的action=“index”,而不是“index.jsp”发现这个问题浪费了很久的时间)
success.jsp代码
<body>
用户名:${user.name}
密码:${user.pass}
</body>
(因为传的是对象,所以获取用户名就用user.name
user对象类代码
public class User {
private String name;
private String pass;
public User(String name, String pass) {
this.name = name;
this.pass = pass;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", pass='" + pass + '\'' +
'}';
}
}
2,servlet里面的三大作用域
1)request 数据只能在转发的页面才能取到
2)session req.getSession() 数据可以在此浏览器页面都可以取到(不能跨浏览器)
3)application req.getServletContext() 数据可以在任何浏览器页面都可以取到 (可以跨浏览器)