功能 | 技术 |
---|---|
用户注册登陆 | jsp与servlet |
用户权限管理 | 拦截器的结合 |
用户自动登陆 | 拦截器 |
空气质量的增删查改 | java jdbc |
提醒用户弹出窗口 | 触发器 |
每小时更新网页的pm2.5 | 事务调度 |
可视化 | 数据挖掘 |
1.下载navicat
2.数据整理
3.导入数据
问题以及解决
1.单位冗余,删除单位
2.数据行是第几行?
3.文件类型书否正确?
1.引入jar包或maven依赖
2.加载驱动器
Class.for("com.mysql.jdbc.driver")
2.连接数据库,返回句柄
Connect connect = DrivingManager.getConnection("jdbc:mysql://localhost:3360/你数据库的名字","用户名","密码");
3.执行sql语句,获取数据
String sql = "select * from beijing_2016 where YEAR = ? and month = ? and day = ? and hour = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1,Year);
statement.setString(2,month);
statement.setString(3,day);
statement.setString(4,hour);
ResultSet resultSet = statement.execueQuary();
错误
1.驱动器加载失败
(1)没有引入c3p0jar包
(2)没有引入mysqljar包
(3)或者引入,路径不对
js获取返回值
1.使用attribute
<% String pm2_5 = response.getAttribute("pm")%>
<%=pm2_5%>
2.使用session
<%=request.getSession().setAttribute("","");%>
3.使用url
错误
使用setAttriute无法获取,改用session,直接使用可能会出现错误。
表单提交
方法二:
response.setCharacterEncoding("utf-8);//设置response缓冲区编码
//相当于上面两句
response.setHeader("content-type","utf-8");
response.setContentType("text/html;charset=UTF-8")
1.背景图片的加载
错误
因为路径的错误导致加载不出来,IDEA中有独有的项目路径 (日了狗了)
需要报红色的删除就能使用localhost:8080/了,否则怎么都无济于事
2.使用f12进行页面的调错。
3.spring mvc会拦截资源,so,配置不拦截
未完待续
1.实现监听器进行权限管理
其实cookie中不需要验证账号密码是否正确了,只要cookie的名字是唯一的
逻辑
(1)判断是否有loginUser的session如果有直接放行
(2)没有,判断是否有cookie,没有直接返回登陆界面
(3)有,判断是否正确,如果正确放行,不正确返回登陆页面
System.out.println("进来了");
//强转
HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse)servletResponse;
//验证session中是否有用户
User user = (User)httpServletRequest.getSession().getAttribute("loginUser");
if(user != null){//说明正在登陆,并且已经登陆成功,直接放行
System.out.println("有session");
filterChain.doFilter(httpServletRequest,httpServletResponse);
return;
}
//验证是否包含自动登陆的cookie
Cookie[] cookies = httpServletRequest.getCookies();
Cookie usercokie = null;
if(cookies != null){
for(Cookie cookie :cookies){
if("autoLogin".equals(cookie.getName())){
usercokie = cookie;
break;
}
}
}
if(usercokie == null){//如果没有cookie,返回登陆页面
filterChain.doFilter(httpServletRequest,httpServletResponse);
httpServletResponse.sendRedirect("/login.jsp");
return;
}
//验证cookie的信息是否正确,
String[] u = usercokie.getValue().split("@");
String username = u[0];
String password = u[1];
UserService userService = new UserService();
user = userService.login(username,password);
if(user != null){//正确,放行
System.out.println("cookie正确");
filterChain.doFilter(httpServletRequest,httpServletResponse);
}else{//错误返回登陆页面
httpServletResponse.sendRedirect("/login.jsp");
}
错误
就算response.redirect了也要return 否则出错
2.配置过滤器
如同配置servlet
(1)名称-类的映射
(2)域名-
名称映射
userfilter
filter.WebFilter
userfilter
/*
3.登陆配置cookie
可能会出现Bug,因为返回了一个类
如果登陆成功,将信息加入cookie中
(1)创建cookie,构造方法为名称加值
(2)设置生命周期和路径
(3)加入response队列
Cookie cookie = new Cookie("autoLogin",username + "@" + password);
cookie.setPath("/");
cookie.setMaxAge(60*60);//确定生命周期
response.addCookie(cookie);//将cookie返回
jsp页面中404问题解决方案
在web中配置文件
default
*.jpg
*.js
八.数据可视化
echarts组建使用
ajax实现前后端交互