使用servlet/jsp + mysql 完成的一个bbs练习项目 记录下来

来源:互联网 发布:ip变换软件 编辑:程序博客网 时间:2024/04/29 08:39

第一次写博客,今天先把自己的一个bbs练习项目记录下来


操作系统:windows

开发工具:eclipse

相关技术:java core ,serlvet/Jsp,JDBC,mysql

web容器:tomcat   这里使用了tomcat7

依赖包如下:

commons-beanutils-1.6.1.jar

commons-collections-3.2.1.jar

commons-io-2.2.jar

commons-lang-2.6.jar

commons-logging-1.1.3.jar

IKAnalyzer.jar(分词工具包)

lucene-1.4.jar

lucene-demos-1.4.jar

mysql-connector-java-5.1.34.jar


数据库创建

create database bbs;

创建用户信息表 user_info

CREATE TABLE `user_info` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `userId` varchar(255) NOT NULL,  `username` varchar(50) NOT NULL,  `password` varchar(30) NOT NULL,  `email` varchar(50) DEFAULT NULL,  `date` varchar(255) DEFAULT NULL,  `befdate` varchar(255) DEFAULT NULL,  `huiTie` int(11) DEFAULT NULL,  `faTie` int(11) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <display-name></display-name>  <welcome-file-list>    <welcome-file>login.jsp</welcome-file>  </welcome-file-list>    <servlet>    <servlet-name>LoginServlet</servlet-name>    <servlet-class>com.xuchao.bbs.servlet.LoginServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>LoginServlet</servlet-name>    <url-pattern>/loginServlet</url-pattern>  </servlet-mapping>  </web-app>

编写登录的servlet

package com.xuchao.bbs.servlet;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.beanutils.BeanUtils;import com.xuchao.bbs.javabean.UserInfo;import com.xuchao.bbs.javabean.UserManager;@SuppressWarnings("serial")public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");doPost(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String address = null;HttpSession session = request.getSession();UserInfo user = new UserInfo();try {BeanUtils.populate(user, request.getParameterMap());} catch (Exception e) {e.printStackTrace();}user = UserManager.findUser(user);if(user == null){session.setAttribute("message", "用户名或密码不正确");address = "login.jsp";}else{session.setAttribute("user", user);address = "homepage.jsp";}RequestDispatcher dispatcher = request.getRequestDispatcher(address);dispatcher.forward(request, response);}}

实体类UserInfo

package com.xuchao.bbs.javabean;public class UserInfo {private String userId;private String username;private String password;private String email;private String date=null;private String befdate;private int huiTie;private int faTie;public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getBefdate() {return befdate;}public void setBefdate(String befdate) {this.befdate = befdate;}public int getHuiTie() {return huiTie;}public void setHuiTie(int huiTie) {this.huiTie = huiTie;}public int getFaTie() {return faTie;}public void setFaTie(int faTie) {this.faTie = faTie;} }

用户管理类

package com.xuchao.bbs.javabean;import java.sql.ResultSet;import java.sql.SQLException;import com.xuchao.bbs.db.DbConnection;/** * 管理用户的类 * @author xuchao * */public class UserManager {public static UserInfo findUser(UserInfo user){String sql = "SELECT * FROM user_info WHERE username='" + user.getUsername() + "' AND password ='" + user.getPassword() + "'";UserInfo userInfo = new UserInfo();ResultSet result;try {result = DbConnection.getQuery(sql);if(!result.next()){return null;}else{userInfo.setUserId(result.getString("userId"));userInfo.setUsername(result.getString("username"));userInfo.setPassword(result.getString("password"));userInfo.setEmail(result.getString("email"));userInfo.setBefdate(result.getString("befdate"));userInfo.setDate(result.getString("date"));userInfo.setFaTie(result.getInt("faTie"));userInfo.setHuiTie(result.getInt("huiTie"));}} catch (Exception e) {e.printStackTrace();}return userInfo;}public static boolean add(UserInfo user){    String sql="insert into user_info(userId,password,username,email,date,befdate) values('"+user.getUserId()+"','"+user.getPassword()+"','"+user.getUsername()+"','"+user.getEmail()+"','"+user.getDate()+"','"+user.getDate()+"')";    String sql2="select * from user_info where username='"+user.getUsername()+"'";      try {if(DbConnection.getQuery(sql2).next()){return false;}else{ DbConnection.insert(sql);}} catch (SQLException e) {e.printStackTrace();}      return true;} }

数据访问类(JDBC)

package com.xuchao.bbs.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DbConnection{public static Connection getCon(){        Connection con = null;    try {    Class.forName("com.mysql.jdbc.Driver");    } catch (ClassNotFoundException e1) {    System.out.println("驱动加载错误!");    e1.printStackTrace();    }                String url="jdbc:mysql://localhost:3306/bbs";                try {con= DriverManager.getConnection(url,"root","password");} catch (SQLException e) {System.out.println("数据连接错误!");e.printStackTrace();}  return con; }   public static ResultSet getQuery(String sql){     Connection conn=getCon(); Statement stt=null; ResultSet rs = null; try{ stt=conn.createStatement(); rs=stt.executeQuery(sql); }catch(Exception e){ e.printStackTrace(); }return rs;  }        public static int insert(String sql){ Connection conn=getCon(); Statement stt=null; int n=0; try { conn.setAutoCommit(false); stt=conn.createStatement(); n=stt.executeUpdate(sql); conn.commit(); } catch (SQLException e) { try {conn.rollback(); } catch (SQLException e1) {e1.printStackTrace(); } e.printStackTrace(); }finally{ try { stt.close(); conn.close(); } catch (SQLException e) {e.printStackTrace(); }  }          return n;    }     public static int delete(String[] sql){ Connection conn=getCon(); Statement stt=null; int result = 0; try { conn.setAutoCommit(false); stt=conn.createStatement(); for(int i=0;i<sql.length;i++){   result = stt.executeUpdate(sql[i]);   if(result==-1){   throw new RuntimeException("删除ID为" + sql[i] + "的时候出错了");   } } conn.commit(); } catch (SQLException e) { try {conn.rollback(); } catch (SQLException e1) {e1.printStackTrace(); } e.printStackTrace(); }finally{ try { stt.close(); conn.close(); } catch (SQLException e) {e.printStackTrace(); }  } return result;   }          public static int update(String sql){ Connection conn=getCon(); Statement stt=null; int n=0; try { conn.setAutoCommit(false); stt=conn.createStatement(); n=stt.executeUpdate(sql); conn.commit(); } catch (SQLException e) { try {conn.rollback(); } catch (SQLException e1) {e1.printStackTrace(); } e.printStackTrace(); }finally{ try { stt.close(); conn.close(); } catch (SQLException e) {e.printStackTrace(); }  }          return n;    }          public static void main(String[] args) {     //     DbConSql db=new DbConSql();//        // db.insert("insert into users (userno,username)  values('3','4')");//     ResultSet rs=db.getQuery("select * from zhuTie where id=26");//     try {//while(rs.next()){// int s=rs.getInt("id");// System.out.print(s);// }//} catch (SQLException e) {//e.printStackTrace();//}         }}

至此一个登录的流程完成了

该项目还不够完善
项目下载地址:点击打开链接





0 0
原创粉丝点击