login.jsp
表单提交到checkin.jsp
<form id="form1" name="form1" method="post" action="checkin.jsp">
登陆账户:<input name="username">
登陆密码:<input name="password">
登录:<button type="submit" name="submit">
注册新用户<a href="reg1.jsp">跳转到reg1.jsp
<form id="form1" name="form1" method="post" action="checkin.jsp">
<h1> BLOG系统登录</h1>
<label>登录账户
<span class="small">Add your name</span>
</label>
<input type="text" name="username" style="background-image:url(images/username.gif); background-position:left; background-repeat:no-repeat; padding-left:20px; width:180px;"/>
<label>登录密码
<span class="small">Add your password</span>
</label>
<input type="password" name="password" style="background-image:url(images/password.gif); background-position:left; background-repeat:no-repeat; padding-left:20px; width:180px;"/>
<button type="submit" name="submit">登录</button> <span class=" f12_000"><a href="reg1.jsp">注册新用户</a></span>
<div class="spacer"></div>
</form>
checkin.jsp
<jsp:setProperty name = "JavaBean实例名" property = "*"/>
该形式是设置Bean 属性的快捷方式.
在Bean 中属性的名字,类型必须和request对象中的参数名称相匹配。
由于表单中传过来的数据类型都是String 类型的,Jsp内在机制会把这些参数转化成Bean属性对应的类型。
property = "*"表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。
这里DBBean其实是一个数据库操作类,在这里定义它的实例是db
<jsp:useBean id="db" class="cn.blog.system.Dto.DBBean"></jsp:useBean>
<jsp:useBean id="user" class="cn.blog.system.Dto.UserBean"></jsp:useBean>
<jsp:setProperty property="*" name="user"/>
使用response.sendRedirect()地址栏将改变
原本应该是先从request中getAttribute得到之前表单提交的username和password
而设置了<jsp:useBean>之后,username和password会传给set方法,放到user中,再想用的时候直接user的get方法就可以得到了
省去了很多麻烦
<%
String username = user.getUsername();
String password = user.getPassword();
String sql = "select * from userinfo where username=? and password=?";
ResultSet rs=db.query(sql, username,password);
if (rs.next()) {
int userid = rs.getInt("userid");
session.setAttribute("viewuserid",userid);
System.out.println(userid);
response.sendRedirect("bloglistdo");
} else {
response.sendRedirect("login_fail.jsp");
}
%>
blog_list.jsp
这页主要是登陆成功后在checkin.jsp里面response.sendRedirect("dobloglist");
dobloglist其实是BlogListServlet
页面上方有一个js写的时钟显示
用ArrayList<UserBean>把user从request中取出来,其实里面只有一个user呢
用迭代器把ub取出来
这里有一个链接到 indexdo ?userid= ,传了userid的参数,参数是从ub中取出来的,然后取出blogname显示在页面中
显示Nickname和Regtime
在bloglist这个页面里可以输入页数page,默认是首页,也可以点击末页
如果是首页,page传入1
末页是(count-1)/size+1
<table>
<tr>
<td>BLOG相逢的人会再相逢<br /></td>
<td><a href="login1.jsp">登录</a><a href="reg1.jsp">注册</a>
</tr>
<tr>
<td>欢迎来到个人博客系统~</td>
<td>
<script>setInterval("jnkc.innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);</script></td>
</tr>
</table>
<table>
<%
ArrayList<UserBean> user = (ArrayList<UserBean>) request.getAttribute("user");
Iterator it = user.iterator();
while (it.hasNext()) {
UserBean ub = (UserBean) it.next();
%>
<tr>
<td><a href="indexdo?userid=<%=ub.getUserid()%>"><%=ub.getBlogname() %></a></td>
<td><%=ub.getNickname() %></td>
<td><%=ub.getRegtime() %></td>
</tr>
<%} %>
</table>
<table>
<tr>
<td>
<%
int page1 = Integer.parseInt(request.getAttribute("page").toString());
int size = Integer.parseInt(request.getAttribute("size").toString());
int count = Integer.parseInt(request.getAttribute("count").toString());
%>
<a href="dobloglist?page=1">首页</a>
<%if (page1>1){ %><a href="dobloglist?page=<%=page1-1%>"><%} %>上一页<%if (page1>1){ %></a><%} %>
<%if (page1<((count-1)/size+1)){ %><a href="dobloglist?page=<%=page1+1%>"><%} %>下一页<%if (page1<((count-1)/size+1)){ %></a><%} %>
<a href="dobloglist?page=<%=(count-1)/size+1%>">末页</a>
</td>
<form id="form01" action="dobloglist?page=">
当前<%=page1%>/<%=(count-1)/size+1%> 共<%=count%>条记录
</td>
</tr>
</table>
</div>
</body>
</html>
BlogListServlet.java
之前checkin.jsp会转到这里来,bloglist.jsp里面的表单也要链接到这里,不停地把page参数传过来
package cn.blog.use.action;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.blog.system.Dao.*;
import cn.blog.system.Dto.*;
import java.util.*;
public class BlogListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public BlogListServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int page;
if(request.getParameter("page")!=null){
page=Integer.parseInt(request.getParameter("page"));
}else{
page=1;
}
int size=10;
List<UserBean> ret=new ArrayList<UserBean>();
UserDao ud=new UserDao();
ret=ud.getUser(page, size);
long count=ud.getUserCount();
request.setAttribute("user", ret);
request.setAttribute("count", count);
request.setAttribute("page", page);
request.setAttribute("size", size);
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/use/blog_list.jsp");
requestDispatcher.forward(request, response);
}
}