一.技术选型
1、jsp&servlet
2、jquery 及插件
3、UEditor
4、log4j
5、junit
二、开发环境
Eclipse + mysql + window + jdk1.8 + tomcat8
注意: tomcat8 字符集为 utf-8 (get | tomcat7 以下) POST 所有的服务都需要处理
1、准备
1、配置 JDK
Window —> preferences (参数选择) —> java —> installed JRES
—> Add —>Standard VM (标准 Java 虚拟器设置)—> 找到对应的 JDK
2、配置 Tomcat
Window —> preferences —> Server —> Runtime Environments
(运行环境) —> Add —> Apache —> 选择 Apache Tomcat v8.0
—> 找到 tomcat 路径以及设置对应的 jdk
三、编写 PO
Java 的几种对象(PO,VO,DAO,BO,POJO)解释
一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的 java 对象。最
简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。PO 中应
该不包含任何对数据库的操作。
二、VO:value object 值对象。通常用于业务层之间的数据传递,和 PO 一样也是仅仅包
含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
三、DAO:data access object 数据访问对象,此对象用于访问数据库。通常和 PO 结合
使用,DAO 中包含了各种数据库的操作方法。通过它的方法,结合 PO 对数据库进行相关的
操作。
- 通过用户名和密码查询User对象
- @param uname
- @param upwd
- @return
/
public User queryUserByUnameAndUpwd (String uname) {
User user = null;
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 打开连接
connection = DBUtil.getConnection();
// 编写Sql
String sql = "select userid,uname,upwd,nick,head,mood from tb_user where uname = ? ";
// 预编译
preparedStatement = connection.prepareStatement(sql)// 传参数
preparedStatement.setString(1, uname);
// 执行查询
resultSet = preparedStatement.executeQuery();
// 如果查询到有值
while(resultSet.next()) {
user = new User();
// 赋值
user.setHead(resultSet.getString(“head”));
user.setMood(resultSet.getString(“mood”));
user.setNick(resultSet.getString(“nick”));
user.setUname(resultSet.getString(“uname”));
user.setUpwd(resultSet.getString(“upwd”));
user.setUserId(resultSet.getInt(“userid”));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
DBUtil.close(resultSet, preparedStatement, connection);
}
return user;
}
/* - 验证昵称是否唯一
- @param nick
- @return
/
public boolean checkNick(String nick) {
boolean flag = false;
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 打开连接
connection = DBUtil.getConnection();
// 编写sql
String sql = “select count(userid) from tb_user where nick = ?”;
// 预编译
preparedStatement = connection.prepareStatement(sql)// 传参数
preparedStatement.setString(1, nick);
// 执行查询
resultSet = preparedStatement.executeQuery();
// 如果查询到有值
while (resultSet.next()) {
return resultSet.getInt(1) > 0;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
DBUtil.close(resultSet, preparedStatement, connection);
}
return flag;
}
/* - 修改用户信息
- @param user
- @return
*/
四、BO:business object 业务对象,封装业务逻辑的 java 对象,通过调用 DAO 方法,结合
PO,VO 进行业务操作。
五、POJO:plain ordinary Java object 简单无规则 java 对象.
四.登录
1)、思路
Jsp: 加入 form , 每个表单元素 name 。
form 数据格式存在两种:
application/x-www-form-urlencoded 默认
multipart/form-data 文件上传
UserWeb :
针对默认: 使用 request.getParameter() 获取 表达元素
针对文件上传: request.getPart()
2)、Jsp
a)、加入 form b)、加入 name c)、提交表单
protected void login(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//1、获取用户名密码
String uname=request.getParameter(“uname”);
String upwd=request.getParameter(“upwd”);
String rem =request.getParameter(“rem”);
//处理空判断…
//2、调用 Service 判断获取结果
ResultInfo info =us.login(new User(uname,upwd));
//3、根据结果 跳转
if(info.getCode()>0){
//1)、成功 :主页
request.getRequestDispatcher(“main.jsp”).forward(request, response);
}else{
//2)、失败 :登录页 -->扩展。。。。
request.setAttribute(“info”, info); //存储到作用域中
request.getRequestDispatcher(“login.jsp”).forward(request, response);
}
}