基本思路:
1.前期准备:导入jar宝
2.创建项目结构,
3.创建实用类。
4.写接口,写实现
分析需要两个接口一个用于登录+展示头像,用户名,地址第二个接口展示关注的数量和粉丝的数量:
首先我们写接口:于登录+展示:(USerDao):
public interface UserDao {
//登录
User login(String userId,String pwd);
//查询个人信息有头像 昵称 微博数
User showUserById(int id);
}
另一个接口 FollowDao:
public interface FollowDao {
//显示粉丝数
int showFS(int id);
//显示关注数
int showGZ(int id);
}
写完接口写实现:带啊吗如下:
首先写UserDaoimpl:
public class UserDaoImpl extends BaseDao implements UserDao {
@Override
public User login(String userId, String pwd) {
String sql="select * from user where userId=? and password=?";
Object[] objects={userId,pwd};
ResultSet rs = this.executeQuery(sql, objects);
User user=null;
try {
if (rs.next()){
user=new User();
user.setId(rs.getInt("id"));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return user;
}
@Override
public User showUserById(int id) {
String sql="select u1.image,u1.nickname,count(*) as count from user as u1,blog as b1 where u1.id=b1.uid and u1.id=?";
Object[] objects={id};
ResultSet rs = this.executeQuery(sql, objects);
User user=null;
try {
if (rs.next()){
user=new User();
user.setImage(rs.getString("image"));
user.setNickname(rs.getString("nickname"));
user.setCount(rs.getInt("count"));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return user;
}
}
再写FollowDaoimpl:
public class FollowDaoImpl extends BaseDao implements FollowDao {
@Override
public int showFS(int id) {
String sql ="select count(*) as c from follow where followedUid=?";
Object[] objects={id};
ResultSet rs = this.executeQuery(sql, objects);
int count=0;
try {
if (rs.next()){
count=rs.getInt("c");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return count;
}
@Override
public int showGZ(int id) {
String sql="select count(*) as c follow where uid=?";
Object[] objects={id};
ResultSet rs = this.executeQuery(sql, objects);
int count=0;
try {
if (rs.next()){
count=rs.getInt("c");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return count;
}
}
以上java代码写完了,接下开写页面的脚本
先写登录页面:
login.jsp:
<form action="do_login.jsp">
<p>账号:<input type="text" name="userName"></p>
<p>密码:<input type="password" name="userPwd"></p>
<p><input type="submit" value="登录"></p>
</form>
do_login.jsp:
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("userName");
String pwd = request.getParameter("userPwd");
UserDao ud=new UserDaoImpl();
User user= ud.login(name,pwd);
if (user!=null){
//打当前登录的user对象存储到session中
session.setAttribute("id",user.getId());
//重定向到处理用户信息页面
response.sendRedirect("do_userinto.jsp");
}else {
response.sendRedirect("error.jsp");
}
%>
用户进入的jsp:do_userinto:
<%
int id = (int) session.getAttribute("id");
UserDao ud=new UserDaoImpl();
FollowDao fd=new FollowDaoImpl();
User user=ud.showUserById(id);
int FSCount= fd.showFS(id);
int GZCount=fd.showGZ(id);
//把查询到的数据存放到session中去
session.setAttribute("user",user);
session.setAttribute("fs",FSCount);
session.setAttribute("gz",GZCount);
response.sendRedirect("success.jsp");
%>
后面在根据需求写上成功/失败跳转页面。就完成了。