java知识点:
1.control层创建Serlvet对象,与WEB-INF下的web.xml关联。
2.sql使用PreparedStatement类执行,注意
String sql="insert into user_login_table (uname, loginTime) values(?,?)";
PreparedStatement ps;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, uname);
ps.setString(2, date);
int i=ps.executeUpdate();
if(i>0)
return true;
}catch (SQLException e) {
e.printStackTrace();
}
return false;
}
3.map&hashmap
之前没用过java的map,只用过python的字典(dictionary),用法相似。
4.java连接数据库(mysql)
public static Connection getConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
String mysqlUrl = "jdbc:mysql://127.0.0.1:3306/webdata?" + "user=root&password=wy19961227&serverTimezone=UTC";
Connection conn=
DriverManager.getConnection(mysqlUrl);
return conn;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
5.java使用JSON
java中需要引用org.json库。import org.json.JSONArray;import org.json.JSONObject;
具体代码如下:
public static JSONObject headerJsonObject = new JSONObject("{'status':'0','message':'','total':'180','code':'0'}");
public static String UsersToString(ResultSet users) {
JSONArray jsonArray = new JSONArray();
int count = 0;
try {
while(users.next()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("uname", users.getString("uname"));
jsonObject.put("upwd", users.getString("upwd"));
jsonObject.put("status", users.getString("status"));
jsonObject.put("role", users.getString("role"));
jsonObject.put("errornum", users.getString("errornum"));
jsonArray.put(jsonObject);
count += 1;
}
headerJsonObject.put("data", jsonArray);
headerJsonObject.put("count", count);
return headerJsonObject.toString();
} catch (SQLException e) {
e.printStackTrace();
}
return jsonArray.toString();
}
java部分总结:
主要是调用库以及IO部分,各种逻辑判断,读取写入占主要代码。
jsp知识点:
1.JSP本质就是web,封装好的HTML,访问url获取jsp页面本质就是将jsp页面在服务端内处理后再加载。
2.通过Session和Request获取对应的数据。
User tmp = new User();
tmp.setUname(request.getParameter("uname").toString());
session.getAttribute("uname")
session.invalidate();
3.jsp页面中,java代码需要在 <% %>
内写。
4.web.xml中配置selvert
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>control.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
5.selvert中返回json要用PrintWriter类
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// this.doPost(request, response);
String path = request.getRequestURI();
if (path.endsWith("getUserJson.do")) {
User user = preData(request);
String json = user.getAllUserJsonString();
PrintWriter pw = response.getWriter();
pw.write(json);
pw.close();
}
if (path.endsWith("getLoginTime.do")) {
String json = new LoginTime().getData();
PrintWriter pw = response.getWriter();
pw.write(json);
pw.close();
}
}
6.jsp母版页:<%@ include file="head-res-main.jsp" %>
在母版页引入js、css文件,其它jsp文件引入母版页文件即可。
jsp部分总结:
1.由于时间因素,没有学会bean,是个遗憾。
2.由于界面逻辑需求,初步尝试了前后端分离开发,用基于Jquery的ajax异步以及用json交互数据。
3.学了一点Layui框架。
js知识点:
1.js返回上一页 window.history.go(-1);
2.js前往指定页 window.location.href="main.jsp";
3.ajax使用:
$.ajax({
url:"getLoginTime.do",
type:"get",
success:function(data){
var json = eval("("+data+")");
myChart.setOption({
xAxis: {
data: json.categories
},
series: [{
name: '登录次数',
type: 'bar',
data: json.data
}]
});
}
});
4.js解析json:var json = eval("("+data+")");
5.js跳转页面时带参数,获取参数:
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
window.location.href="updateUser.jsp?uname=" + getQueryVariable("uname");
js部分总结:
1.之前并不太会js,经过这次有了初步的入门。
2.初次使用ajax,感觉方便好用。
3.使用js等技术开发前端,与后端通过接口交互实现前后端分离开发起来确实很好。