这次的web项目是做一个音乐商城,目的是巩固下最近java ee学习的内容。
有点头皮发麻,做一个响应式网站,完全不知道从何做起,开始的时候做servlet响应,就无脑一个请求对应一个servlet,并且这个sevlet内容,从获取请求到交互数据全在一个类中实现。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
boolean loginsucess = false;
String name = req.getParameter("uname");
String password = req.getParameter("upass");
System.out.println("用户名" + name + "密码" + password);
System.out.println("获取成功");
boolean exist = SqlUtil.SqlQUtilExist(name);
System.out.println(exist);
try {
Class.forName("com.mysql.jdbc.Driver");//注册驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/users", "root", "ChenBaifu137708.");
} catch (SQLException e) {
e.printStackTrace();
}
//获取连接
try {
assert conn != null;
stmt = conn.createStatement();//获取数据库操作对象
} catch (SQLException e) {
e.printStackTrace();
}
String sql = "select password from accountinformation where id_name = '" + name + "' and password = '" + password + "'";
try {
assert stmt != null;
stmt.execute(sql);
} catch (SQLException e) {
e.printStackTrace();
}
try {
rs = stmt.executeQuery(sql);
if (rs.next()) {
loginsucess = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(loginsucess);
if (loginsucess) {
Cookie cok_name=new Cookie("id_name",name);
Cookie cok_pass=new Cookie("password",password);
cok_name.setMaxAge(60*60*24*7);
cok_pass.setMaxAge(60*60*25*7);
Customer customer = SqlUtil.SqlQUtil(name);
HttpSession session = req.getSession();
session.setAttribute("customer", customer);
cok_name.setPath(req.getContextPath());
cok_pass.setPath(req.getContextPath());
resp.addCookie(cok_name);
resp.addCookie(cok_pass);
req.setAttribute("username", name);
req.getRequestDispatcher("/login_Sucess.jsp").forward(req, resp);
}
if (!loginsucess) {
req.setAttribute("username", name);
req.getRequestDispatcher("/Login_Error.jsp").forward(req, resp);
}
try {
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
反正我自己感觉挺离谱的,后面的时候,才知道,咦?原来可以封装工具类,原来可以把一个请求到响应的过程分好几层,既方便又清晰?emm,
随着项目的推进,慢慢找到前面写项目的离谱之处。
我也开始试着分层,也开始试着封装一些工具,虽然,开始的时候把dao层和工具类写到一块了,(不管是数据库增删改查还是注册驱动我都认为是工具类,被自己蠢哭了)
我写后台查询的时候才知道,诶原来过滤器是这么用的,写保存登陆状态的时候,诶cookie原来可以保存。
写支付宝沙箱支付的时候,知道了同步回调是重定向,别问,问就是
正是项目的训练才可以把各个板块的只是糅合到一块。
我一直还离谱的认为,是服务器内部的转发,直接就填的本地地址,我就说怎么同步回调有点问题。。。。。
本次分享到这里了,谢谢阅读