千锋20200417
程序员文章站
2024-01-28 16:53:58
...
在千锋“逆战”学习第55天
每日一句:测试是来表明bug的存在而不是不存在
今天学习了response操作响应正文、request操作请求行、request操作请求头、request操作请求参数、请求参数中文乱码、request操作请求转发、请求转发和重定向、request作为域对象。
下周继续努力。
作业
- User.java
public class User {
private String username;
private String password;
public User() {
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
- InitServlet.java
@WebServlet(name = "InitServlet",urlPatterns = "/initServlet",loadOnStartup = 1)
public class InitServlet extends HttpServlet {
@Override
public void init() throws ServletException {
//创建一个List集合保存用户注册信息
List<User> userList = new ArrayList<User>();
//将List集合保存到ServletContext作用域
this.getServletContext().setAttribute("list",userList);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
- RegisterServlet
@WebServlet(name = "RegisterServlet",urlPatterns = "/registerServlet")
public class RegisterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
try {
Map<String, String> map = new HashMap < String, String>();
List<FileItem> list = servletFileUpload.parseRequest(request);
for (FileItem fileItem : list) {
String name = fileItem.getFieldName();
String value = fileItem.getString("utf-8");
map.put(name,value);
}
List<User> userList = (List<User>) this.getServletContext().getAttribute("list");
//检验用户名
for(User u:userList){
if(u.getUsername().equals(map.get("username"))){
request.setAttribute("msg","用户名存在");
request.getRequestDispatcher("/register.html").forward(request,response);
return;
}
}
User user = new User();
user.setUsername(map.get("username"));
user.setPassword(map.get("password"));
userList.add(user);
this.getServletContext().setAttribute("list",userList);
request.getRequestDispatcher("/login.html").forward(request,response);
} catch (FileUploadException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
- LoginServlet
@WebServlet(name = "LoginServlet",urlPatterns = "/loginServlet")
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");
//从ServletContext域中获得用户信息
List<User> list = (List<User>) this.getServletContext().getAttribute("list");
for(User user:list){
if(username.equals(user.getUsername())&&password.equals(user.getPassword())){
request.getSession().setAttribute("user",user);
response.sendRedirect("success.html");
return;
}
}
request.setAttribute("msg","登录失败");
request.getRequestDispatcher("/login.html").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
- login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="/loginServlet" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<button type="submit">登录</button>
</form>
</body>
</html>
- register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<form action="/registerServlet" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<button type="submit">注册</button>
</form>
</body>
</html>
- success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录成功</title>
</head>
<body>
登录成功
</body>
</html>
下一篇: 千锋20200228