7.2、IDEA Debug 调试的使用
7.2.1、Debug 调试代码,首先需要两个元素:断点 + Debug 启动服务器
一般来说:断点放在代码的第一行或者出现bug代码的上一行
7.2.2、测试工具栏
1.让代码往下执行一行:
2.可以进入当前方法体内(自己写的代码,非框架源代码):
3.跳出当前方法体外:
4.强制进入当前方法体内:
5.停在光标所在行(相当于临时断点):
7.2.3、变量窗口
变量窗口:它可以查看当前方法范围内所有有效的变量
7.2.4、方法调用栈窗口
1、方法调用栈可以查看当前线程有哪些方法调用信息
2、下面的调用上一行的方法
7.2.5、其他常用调式相关按钮:
8、用户登录
分析:
代码实现:
添加 LoginServlet ,并配置 web.xml 使其部署到服务器上
package com.aiguigu.web;
import com.aiguigu.pojo.User;
import com.aiguigu.service.UserService;
import com.aiguigu.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
//判断用户名和密码 如果 == null 说明登录失败
if (userService.login(new User(null,username,password,null)) == null){
//用户名或密码错误
System.out.println("用户名[" + username + "]或密码[" + password + "]错误");
//跳回登录页面
req.getRequestDispatcher("/pages/user/login.html").forward(req,resp);
}else {
//跳转到 login_success.html
req.getRequestDispatcher("/pages/user/login_success.html").forward(req,resp);
}
}
}
修改 login.html 表单的路径,并添加 post 请求,添加 base路径
打开浏览器进入 login.html 页面 按 F12 看到有报红的资源样式需要去修改路径
login_success.html 页面也添加 base 路径 修改有报红的样式
对获得到的参数进行判断并对结果进行跳转
package com.aiguigu.web;
import com.aiguigu.pojo.User;
import com.aiguigu.service.UserService;
import com.aiguigu.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
//判断用户名和密码 如果 == null 说明登录失败
if (userService.login(new User(null,username,password,null)) == null){
//用户名或密码错误
System.out.println("用户名[" + username + "]或密码[" + password + "]错误");
//跳回登录页面
req.getRequestDispatcher("/pages/user/login.html").forward(req,resp);
}else {
//跳转到 login_success.html
req.getRequestDispatcher("/pages/user/login_success.html").forward(req,resp);
}
}
}