JSP+Javabean+Servelt综合分demo(学校实验第三天)

//login.jsp 


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="huc.blog.util.ParamUtils" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<%
 String info = ParamUtils.getAttribute(request, "info", "");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>博客——登录</title>
   
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
   
    <link rel="stylesheet" type="text/css" href="css/styles.css">
  </head>
 
  <body>
    <CENTER>
  <jsp:include page="common/indexheader.jsp" />
     <FORM action="servlet/DoLogin" method="post">
     <TABLE border="1" bordercolor="white">
      <TR>
       <TD colspan="2" align="center">用户登录</TD>
      </TR>
      <TR>
       <TD colspan="2" align="center"><FONT color="red" size="1"><%=info.equals("") ? "" : info%></FONT></TD>
      </TR>
      <TR>
       <TD>用户名:</TD>
       <TD><INPUT type="text" name="userName" size="20"/></TD>
      </TR>
      <TR>
       <TD>用户密码:</TD>
       <TD><INPUT type="password" name="userPass" size="20"/></TD>
      </TR>
      <TR>
       <TD colspan="2" align="center">
     <INPUT type="submit" name="loginButton" value="登录" class="signinbtn1"/>&nbsp;
     <INPUT type="reset" name="resetButton" value="重写" class="signinbtn1"/>&nbsp;
     <INPUT type="button" name="backButton" value="返回" class="signinbtn1" οnclick="location.href='<%=basePath%>'"/>
       </TD>
      </TR>
     </TABLE>
     </FORM>
    </CENTER>
  <jsp:include page="common/footer.jsp" />
  </body>
</html>

//dologin.jsp

 

package huc.blog.servlet;

import huc.blog.bean.User;
import huc.blog.op.UserOp;
import huc.blog.util.ParamUtils;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DoLogin extends HttpServlet {

 /**
  *
  */
 private static final long serialVersionUID = 1L;

 /**
  * The doGet method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to get.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }

 /**
  * The doPost method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to post.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
  User user = new User();
  user.setUserName(ParamUtils.getParameter(request, "userName", ""));
  user.setUserPass(ParamUtils.getParameter(request, "userPass", ""));
  
  String info = new String();
  UserOp userOp = new UserOp();
  user = userOp.login(user);//user对象传进,返回值仍为user对象
  if(user == null){
   info = "用户名或密码错误!";
   request.setAttribute("info", info);
   request.getRequestDispatcher("../login.jsp").forward(request, response);
  }
  else{
   request.getSession().setAttribute("loginUser", user);
   response.sendRedirect("ShowSpace?userid=" + user.getId());
  }
 }

}

///

UserOp.java

 



package huc.blog.op;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import huc.blog.bean.User;
import huc.blog.util.PageObject;

public class UserOp extends BaseOp {
 
 /**
  * (前台)用户登录
  * @param user
  * @return null:不存在该用户;user:存在该用户
  */
 public User login(User user){
  conn = db.getConnection(); 
  try {
   String sql = "select * from H_USER where userName = ? and userPass = ?";
   pst = conn.prepareStatement(sql);
   pst.setString(1, user.getUserName());
   pst.setString(2, user.getUserPass());
   
   rs = pst.executeQuery();
   
   if(rs.next()){ //有记录,代表验证成功!!!
    //把数据库记录读到user对象,最后返回
    user.setId(rs.getString("id"));
    user.setUserName(rs.getString("userName"));
    user.setUserPass(rs.getString("userPass"));
    user.setNickName(rs.getString("nickName"));
    user.setEmail(rs.getString("email"));
    user.setBirthday(rs.getString("birthday"));
    user.setCity(rs.getString("city"));
    user.setRegDate(rs.getString("regDate"));
    user.setUpdateTime(rs.getString("updateTime"));
    user.setSpaceName(rs.getString("spaceName"));
    user.setSpaceHit(rs.getInt("spaceHit"));
    user.setIcon(rs.getString("icon"));
    user.setIsCommend(rs.getInt("isCommend"));
   }
   else{
    return null;
   }
  } catch (SQLException e) {
   e.printStackTrace();
   return null;
  }
  finally{
   close();
  }
  
  return user;
 }
 
 /**
  * 检查该用户是否已经注册
  * @param user
  * @return true:存在;false:不存在
  */
 public boolean checkExist(User user){
  conn = db.getConnection();
  boolean flag = false;
  try {
   StringBuffer sql = new StringBuffer();
   sql.append("select * from H_USER where userName = ?");
   pst = conn.prepareStatement(sql.toString());
   pst.setString(1, user.getUserName());
   
   rs = pst.executeQuery();
   if(rs.next())
    flag = true;
   else
    flag = false;
   
  } catch (SQLException e) {
   e.printStackTrace();
   return flag;
  }
  finally{
   close();
  }
  
  return flag;
 }

 /**
  * 增加一个新用户
  * @param user
  * @return
  */
 public boolean add(User user){
  conn = db.getConnection();
  boolean flag = false;
  try {
   StringBuffer sql = new StringBuffer();
   sql.append("insert into H_USER(");
   sql.append("userName,userPass,nickName,email,birthday,city,");
   sql.append("regDate,updateTime,spaceName,spaceHit,icon,isCommend)");
   sql.append(" values(?,?,?,?,?,?,?,?,?,?,?,?)");
   pst = conn.prepareStatement(sql.toString());
   pst.setString(1, user.getUserName());
   pst.setString(2, user.getUserPass());
   pst.setString(3, user.getNickName());
   pst.setString(4, user.getEmail());
   pst.setString(5, user.getBirthday());
   pst.setString(6, user.getCity());
   pst.setString(7, user.getRegDate());
   pst.setString(8, user.getUpdateTime());
   pst.setString(9, user.getSpaceName());
   pst.setInt(10, user.getSpaceHit());
   pst.setString(11, user.getIcon());
   pst.setInt(12, user.getIsCommend());
   
   int line = pst.executeUpdate();
   if(line == 1)
    flag = true;
   else
    flag = false;
   
  } catch (SQLException e) {
   e.printStackTrace();
   return flag;
  }
  finally{
   close();
  }
  return flag;
 }

 /**
  * 修改用户
  * @param user
  * @return true:更新成功;false:更新失败
  */
 public boolean update(User user){
  conn = db.getConnection();
  boolean flag = false;
  try {
   StringBuffer sql = new StringBuffer();
   sql.append("update H_USER set ");
   sql.append(" userName=?,userPass=?,nickName=?,email=?,birthday=?,city=?,");
   sql.append(" regDate=?,updateTime=?,spaceName=?,spaceHit=?,icon=?,isCommend=?");
   sql.append(" where id = ?");
   pst = conn.prepareStatement(sql.toString());
   pst.setString(1, user.getUserName());
   pst.setString(2, user.getUserPass());
   pst.setString(3, user.getNickName());
   pst.setString(4, user.getEmail());
   pst.setString(5, user.getBirthday());
   pst.setString(6, user.getCity());
   pst.setString(7, user.getRegDate());
   pst.setString(8, user.getUpdateTime());
   pst.setString(9, user.getSpaceName());
   pst.setInt(10, user.getSpaceHit());
   pst.setString(11, user.getIcon());
   pst.setInt(12, user.getIsCommend());
   pst.setString(13, user.getId());
   
   int line = pst.executeUpdate();
   if(line == 1)
    flag = true;
   else
    flag = false;
   
  } catch (SQLException e) {
   e.printStackTrace();
   return flag;
  }
  finally{
   close();
  }
  return flag;
 }

 /**
  * 删除用户
  * @param user
  * @return true:更新成功;false:更新失败
  */
 public boolean delete(User user){
  conn = db.getConnection();
  boolean flag = false;
  try {
   StringBuffer sql = new StringBuffer();
   sql.append("delete from H_USER where id = ? or userName = ?");
   pst = conn.prepareStatement(sql.toString());
   pst.setString(1, user.getId());
   pst.setString(2, user.getUserName());
   
   int line = pst.executeUpdate();
   if(line == 1)
    flag = true;
   else
    flag = false;
   
  } catch (SQLException e) {
   e.printStackTrace();
   return flag;
  }
  finally{
   close();
  }
  return flag;
 }

 /**
  * 获得指定id的user
  * @param id 指定查询的user的id
  * @return
  */
 public User getUserById(String id){
  conn = db.getConnection();
  User user = null;
  
  try {
   StringBuffer sql = new StringBuffer();
   sql.append("select * from H_USER");
   sql.append(" where id = ? ");
   pst = conn.prepareStatement(sql.toString());
   pst.setString(1, id);
   
   rs = pst.executeQuery();
   if(rs.next()){
    user = new User();
    user.setId(rs.getString("id"));
    user.setUserName(rs.getString("userName"));
    user.setUserPass(rs.getString("userPass"));
    user.setNickName(rs.getString("nickName"));
    user.setEmail(rs.getString("email"));
    user.setBirthday(rs.getString("birthday"));
    user.setCity(rs.getString("city"));
    user.setRegDate(rs.getString("regDate"));
    user.setUpdateTime(rs.getString("updateTime"));
    user.setSpaceName(rs.getString("spaceName"));
    user.setSpaceHit(rs.getInt("spaceHit"));
    user.setIcon(rs.getString("icon"));
    user.setIsCommend(rs.getInt("isCommend"));
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
  finally{
   close();
  }
  
  return user;
 }

 /**
  * 列出符合查询条件的users
  * @param otherSQL  指定查询的条件   like(" and param = value")
  * @param orderBy  指定查询结果的排序方式 like(" order by time desc")
  * @return
  */
 public List getUsers(String otherSQL, String orderBy){
  return this.getUsers(0, otherSQL, orderBy);
 }
 
 /**
  * 列出符合查询条件的users
  * @param listNumber 指定列出符合查询条件的数目
  * @param otherSQL  指定查询的条件   like(" and param = value")
  * @param orderBy  指定查询结果的排序方式 like(" order by time desc")
  * @return
  */
 public List getUsers(int listNumber, String otherSQL, String orderBy){
  conn = db.getConnection();
  List result = new ArrayList();
  
  try {
   StringBuffer sql = new StringBuffer();
   sql.append("select ");
   if(listNumber != 0){
    sql.append(" top ");
    sql.append(listNumber);
   }
   sql.append(" * from H_USER");
   sql.append(" where 1 = 1 ");
   if(otherSQL != null && !otherSQL.trim().equals(""))
    sql.append(otherSQL);
   if(orderBy != null && !orderBy.trim().equals("")){
    sql.append(orderBy);
   }
   pst = conn.prepareStatement(sql.toString());
   
   rs = pst.executeQuery();
   while(rs.next()){
    User user = new User();
    
    user.setId(rs.getString("id"));
    user.setUserName(rs.getString("userName"));
    user.setUserPass(rs.getString("userPass"));
    user.setNickName(rs.getString("nickName"));
    user.setEmail(rs.getString("email"));
    user.setBirthday(rs.getString("birthday"));
    user.setCity(rs.getString("city"));
    user.setRegDate(rs.getString("regDate"));
    user.setUpdateTime(rs.getString("updateTime"));
    user.setSpaceName(rs.getString("spaceName"));
    user.setSpaceHit(rs.getInt("spaceHit"));
    user.setIcon(rs.getString("icon"));
    user.setIsCommend(rs.getInt("isCommend"));
    
    result.add(user);
   }
  } catch (SQLException e) {
   e.printStackTrace();
   return new ArrayList();
  }
  finally{
   close();
  }
  
  return result;
 }
 
 /**
  * 获得分页的数据
  * @param page  封装的分页信息
  * @param otherSQL 分页数据的查询条件 like(" and param = value")
  * @param orderBy 分页数据的排序方式 like(" order by time desc")
  * @return 封装的分页数据
  */
 public PageObject getPage(PageObject page, String otherSQL, String orderBy){
  conn = db.getConnection();
  
  try {
   StringBuffer sql = new StringBuffer();
   //获得符合分页的对象的总记录数
   sql.append("select count(1) as total from H_USER where 1=1 ");
   if(otherSQL != null && !otherSQL.trim().equals(""))
    sql.append(otherSQL);

   pst = conn.prepareStatement(sql.toString());
   rs = pst.executeQuery();
   if(rs.next() && rs.getInt("total") != 0)
    page.setTotal(rs.getInt("total"));
   else{
    page.setList(new ArrayList());
    page.setTotal(0);
    return page;
   }
   rs.close();

   //得到分页sql语句
   sql = this.getSQL(page, " * from H_USER ", otherSQL, orderBy);
   pst = conn.prepareStatement(sql.toString());
   rs = pst.executeQuery();

   List result = new ArrayList();
   while(rs.next()){
    User user = new User();
    
    user.setId(rs.getString("id"));
    user.setUserName(rs.getString("userName"));
    user.setUserPass(rs.getString("userPass"));
    user.setNickName(rs.getString("nickName"));
    user.setEmail(rs.getString("email"));
    user.setBirthday(rs.getString("birthday"));
    user.setCity(rs.getString("city"));
    user.setRegDate(rs.getString("regDate"));
    user.setUpdateTime(rs.getString("updateTime"));
    user.setSpaceName(rs.getString("spaceName"));
    user.setSpaceHit(rs.getInt("spaceHit"));
    user.setIcon(rs.getString("icon"));
    user.setIsCommend(rs.getInt("isCommend"));
    
    result.add(user);
   }
   page.setList(result);
  } catch (SQLException e) {
   e.printStackTrace();
   return page;
  }
  finally{
   close();
  }
  
  return page;
 }
    /**
     * 更新点击率
     * @param   userid  -   要更新的博客空间用户的id
     */
    public void updateHit(String userid){
        conn = db.getConnection();
        try {
            StringBuffer sql = new StringBuffer();
            sql.append("update H_USER set spaceHit=spaceHit+1 where id = ?");
            pst = conn.prepareStatement(sql.toString());
            pst.setString(1, userid);
           
            pst.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        finally{
            close();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值