index.jsp
【这里的indexdaily,userinfo,userid暂时还不知道是从哪里传进来的!!!】
【妈的这里是头头】
<%
DailyBean db = (DailyBean) request.getAttribute("indexdaily");
UserBean ub = (UserBean) request.getAttribute("userinfo");
String userid = (String) request.getAttribute("userid");
int userid1= Integer.parseInt(userid);
int userid2;
if (session.getAttribute("viewuserid") == null) {
userid2 = 0;
} else {
userid2 = (Integer) session.getAttribute("viewuserid");
}
%>
这个页面UserServlet在收到param=reg的时候,如果注册用户失败,就在服务器端调转到index.html
index.jsp里面还要取出登录时,checkin.jsp存进去的viewuserid【session范围内】
如果没取到,说明当前没有正在登录的用户,userid2=0
下面是UserServlet的某一段
if (param == "reg" || param.equals("reg")) {
String username = request.getParameter("username");
String nickname = request.getParameter("nickname");
String email = request.getParameter("email");
String password = request.getParameter("password1");
String blogname = request.getParameter("blogname");
String blogsign = request.getParameter("blogsign");
UserBean ub = new UserBean();
ub.setUsername(username);
ub.setNickname(nickname);
ub.setBlogsign(blogsign);
ub.setEmail(email);
ub.setBlogname(blogname);
ub.setPassword(password);
UserDao ud = new UserDao();
try {
ud.addUser(ub);
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("/index.html");
}
response.sendRedirect("/blog_m/use/login.jsp");
下面这段继续是index.jsp中的
<%=ub.getBlogname()%>
<a href="dailydo?userid=<%=userid%>">日志</a>
<a href="photoalbumlistdo?userid=<%=userid%>">相册</a>
<a href="messagedo?blogid=<%=userid%>">留言</a>
<%if(userid1==userid2){ %><a href="userdo?param=singleuser&userid=<%=userid %>">个人资料</a><%} %>
从ub中取出博客名
日志的链接:dailydo,,传入参数userid
相册的链接:photoalbumlistdo 传入参数userid
留言的链接:messagedo 感觉这里写错了,应该传入的是userid
如果userid1与登录checkin时候存入的userid2相等,就展示个人资料的链接:userdo 传入的参数是param=singleuser和userid
在index.jsp里面放了一个param=singleuser【但是却不知道跟着它的userid是毛】
下面这段是UserServlet中的param=singleuser部分
if (param == "singleuser" || param.equals("singleuser")) {
String userid = request.getParameter("userid");
UserDao ud = new UserDao();
UserBean ub = ud.getSingleUser(userid);
request.setAttribute("singleuser", ub);
request.setAttribute("userid", userid);
RequestDispatcher requestDispatcher = request
.getRequestDispatcher("/use/userinfo.jsp");
requestDispatcher.forward(request, response);
拿到userid后要跳转到userinfo.jsp 等下记得回来写userinfo.jsp
来来来从日志链接开始!!
dailydo!
<servlet>
<servlet-name>UseDailyServlet</servlet-name>
<servlet-class>com.blog.use.action.DailyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UseDailyServlet</servlet-name>
<url-pattern>/use/dailydo</url-pattern>
</servlet-mapping>
servlet-name是这个servlet的名字
servelt-class是这个servlet所在的包+类
servlet-mapping是给他分配urlpattern链接
url-pattern指到url/dailydo
UseDailyServlet--cn.blog.use.action.DailyServlet
写这个servlet时出现的问题!!
用eclipse创建的sevlet,它自己导入了一个包import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;
导致list用不了!!注意哟,删掉就好了!
这个类要做的事情
先把传进来的参数param取出来
判断,如果为空,设置param="view"
如果param=view
【记住去看,当param=view的时候,到底传进来的是谁的userid!!!!!】
从request中把page取出来
如果page为空,则设置page=1
设置size=20
从request中把userid取出来
这里要对Daily操作,所以声明DailyDao的对象dd
因为肯定还要从数据库中把DailyBean取出来,就是把一堆daily取出来,所以记得先声明List<DailyBean> ret=new ArrayList<DailyBean>()
取出daily的函数,调用dd.getDaily(page,size,userid)//从这开始,这些数据就要从数据库里面取数据啥的了,要用trycatch包上
再通过dd.getUseDailyCount(userid)把daily的总数取出来
然后又要对UserBean进行操作,所以先声明UserDao ud
想通过userid得到userBean对象,调用ud.getSingleUser(userid)
然后把ub放进request的userinfo中
把userid放进userid中
把ret【daily的集合】放进daily中
把count放进count中
把page放进page中
把size放进size中
都放好了以后,客户端getRequestDispathcer跳转到/use/daily_list.jsp中
来来来那就继续看看daily_list.jsp
<%
UserBean ub = (UserBean) request.getAttribute("userinfo");
String userid = (String) request.getAttribute("userid");
int userid1 = Integer.parseInt(userid);
int userid2;
if(session.getAttribute("viewuserid")==null){
userid2 = 0;
}else{
userid2 = (Integer)session.getAttribute("viewuserid");
}
%>
记不记得之前在dailyservlet里面放进request的那一堆东西
现在把userbean取出来,然后取出来了userid,取出来的这个userid是userid1
再去session里面找viewuserid,也就是登录checkin的时候存进去的userid,在这里是userid2
如果没有的话,userid2=0
<%=ub.getBlogname()%>
<a href="dailydo?userid=<%=userid%>">日志</a>
<a href="photoalbumlistdo?userid=<%=userid%>">相册</a>
<a href="messagedo?blogid=<%=userid%>">留言</a>
<%
if (userid2==userid1) {
%>
<a href="userdo?param=singleuser&userid=<%=userid %>">个人资料</a>
<%} %>
从ub里面拿出来blogname
然后还是日志,相册,留言那几个链接,以及userid1和userid2对上后,显示个人资料
接下来是重要的了!!是真正展示daily_list.jsp与众不同的地方了!!!!
<form method="post" action="dailydo?param=preadd&userid=<%=userid2 %>">
日志列表
<%
if (userid2==userid1) {
%><input type="submit" value="写新日志"
<%
}
%>
要写新日志,所以是表单的样子,东西都要通过表单来提交一下
表单提交到dailydo,也就是一开始点击“日志”链接后,到的那个dailydo
提交的时候带着参数!!param=preadd 和userid2 !!!!
显示“日志列表”四个大字
当userid2【也就是那个登录checkin放进去的userid】=userid1的时候【userid1还是个谜】
会显示“写新日志”的按钮
只要点击了“写新日志”的按钮,表单就提交了!带着userid2还有param=preadd就走了【这里要调到后面写日志那里!等下再说】
继续说咱们
这页重点是什么!!显示日志呀!!
下面来显示日志
之前在dailyservlet中存了一堆东西,里面就有daily,它的真身是从数据库中拿出来的ret,daily的集合
既然是List,其实这里不用Collection也行
用iterator把daily一个个取出来
每个是一个DailyBean对象
有一个显示日志名字的链接
链接中的文字是dailyname,点击后,/blog/use/dailydo?dailyid= & userid=
也就是点了链接后就跑到dailydo去了,还传了两个参数 dailyid userid 都是从新鲜出炉的dailybean里面拿的【感觉这里点过去的链接不对呀!!】
紧接着依旧是永恒的主题!!如果userid1和userid2相等,【你妈的userid1到底是谁!!】
相等的话会继续显示 删除 和 修改这两个链接
删除:跑到了 dailydo?param=del && dailyid= &userid= 这里dailyid和userid都是从dailybean里面拿的
这个request里面有dailyservlet放的page,size,count那些哟!
然后是那个翻页的下标,,其实这里每次的ret都是当前page里面要显示的那些daily,所以每次翻页都要再提交到dailydo,而且没有param参数
所以默认param=view,这时,daily都再从数据库里面取这一页要看的daily,然后再放进request里面再给传回来
到这里,终于把param=view和param大概是搞什么的给弄懂了~!!!
想返回博客主页的时候 链接是dobloglist 没有传参数,直接到blog_list的第一页!
<%
Collection daily = (Collection) request.getAttribute("daily");
Iterator it = daily.iterator();
while (it.hasNext()) {
DailyBean db = (DailyBean) it.next();
%>
<a href="/blog/use/dailycdo?dailyid=<%=db.getDailyid()%>&userid=<%=db.getUserid()%>"><%=db.getDailyname()%></a>
<%=db.getPostingdate()%>
<%
if (userid2==userid1) {
%>
<a href = "dailydo?param=del&dailyid=<%=db.getDailyid() %>&userid=<%=db.getUserid() %>">删除</a>
<a href = "dailydo?param=preupdate&dailyid=<%=db.getDailyid()%>&userid=<%=db.getUserid()%>">修改</a>
<%
}
%>
<%
}
int page1 = Integer.parseInt(request.getAttribute("page")
.toString());
int size = Integer
.parseInt(request.getAttribute("size").toString());
int count = Integer.parseInt(request.getAttribute("count")
.toString());
%>
<%if (page1>1){ %><a href="dailydo?userid=<%=userid%>&page=<%=page1 - 1%>"><%} %>上一页<%if (page1>1){ %></a><%} %>
<%if (page1<((count-1)/size+1)){ %><a href="dailydo?userid=<%=userid%>&page=<%=page1 + 1%>"><%} %>下一页<%if (page1<((count-1)/size+1)){ %></a><%} %>
当前第<%=page1%><%=(count - 1) / size + 1%>页 共
<%=count%>条记录
昵称:<%=ub.getNickname()%>
<a href="bloglistdo">返回博客系统主页</a>
下面是dailyservlet中param=preadd的部分!!
if (param == "preadd" || param.equals("preadd")) {
String userid = request.getParameter("userid");
UserDao ud = new UserDao();
UserBean ub = ud.getSingleUser(userid);
request.setAttribute("userinfo", ub);
request.setAttribute("userid", userid);
RequestDispatcher requestDispatcher = request
.getRequestDispatcher("/use/writedaily.jsp");
requestDispatcher.forward(request, response);
}
传进来param=preadd的时候,也给了一个userid
通过这个userid,用ud.getSingle(userid)得到userbean对象
然后!!客户端跳转到use/writedaily.jsp【等下记的来看这个writedaily.jsp】