学JavaEE也有一段时间了,跟着老师和教材做了不少东西,但是一直以来没时间写博客,今天就把以前写的一个简易留言板简单发一下吧。

开发工具

主要用的开发工具为 MyEclipse(2014、2016均可)、Tomcat 7.0、SQL Server 2016、SSMS数据库管理工具、浏览器等。

下载地址

百度网盘链接:https://pan.baidu.com/s/1c2iCPQ4 提取码:7yxk

开发环境

开发环境为windows系统,已安装配置Java最新版开发环境。

主要功能与语言

登录、注册、并可以在留言板留言,所有留言内容均可见。

所采用JSP+Servlet+JavaBean传统方式,仅限于学习使用。

主要代码实现

JSP代码:

login.jsp

登录界面

请登录

用户登录
登录名:
密码:

注册

register.jsp

注册界面

请注册

用户注册
ID:
登录名:
密码:

登录

error.jsp

登录出错界面

输入的用户名不存在或者密码错误

点我返回登陆界面

main.jsp

留言板界面

这里是留言板主界面

所有留言信息
留言人姓名 留言时间 留言标题 留言内容

ArrayList al=new ArrayList();

al= (ArrayList)session.getAttribute("al");

if(al!=null){

Iterator iter=al.iterator();

while(iter.hasNext()){

MessBoar mb=(MessBoar)iter.next();

%>

}

}

%>

留言

leavemessage.jsp

留言界面

请留言

填写留言信息
留言标题
留言内容

返回留言板界面

success.jsp

成功界面

留言成功,单击这里返回主界面。

web.xml(配置)

loginServlet

org.servlet.LoginServlet

loginServlet

/loginServlet

registerServlet

org.servlet.RegisterServlet

registerServlet

/registerServlet

leaveMessageServlet

org.servlet.LeaveMessageServlet

leaveMessageServlet

/leaveMessageServlet

messageBoard

login.jsp

DBconn.java

package org.db;

import java.sql.*;

public class DBconn {

public static Connection conn; //Connection对象(链接)

//连接数据库

public static Connection getConn(){

try{

//加载注册SQLSever的JDBC驱动

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//编写链接字符串,创建并且获取链接

conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=MessageBoard","sa","19961002happy");

return conn;

}catch(Exception e){

e.printStackTrace();

return null;

}

}

public static void CloseConn(){

try{

conn.close();

}catch(Exception e){

e.printStackTrace();

}

}

}

LoginDao.java

package org.dao;

import java.sql.*;

import org.model.*;

import org.db.*;

import java.util.ArrayList;

public class LoginDao {

Connection conn=DBconn.getConn(); ; //数据库连接对象

PreparedStatement pstmt;

public Login checkLogin(String name,String password){ //验证用户名密码

try{

pstmt=conn.prepareStatement("select*from[loginss] where name=? " + " and password=?");

pstmt.setString(1, name); //设置SQL语句参数

pstmt.setString(2, password); //设置SQL语句参数

ResultSet rs=pstmt.executeQuery(); //执行查询,返回结果集

if(rs.next()){ //通过JavaBean保存值

Login login=new Login();

login.setId(rs.getInt(1));

login.setName(rs.getString(2));

login.setPassword(rs.getString(3));

login.setRole(rs.getInt(4));

return login; //返回JavaBean对象

}

return null; //验证失败返回null

}catch(Exception e){

e.printStackTrace();

return null;

}

}

public ArrayList findMbInfo(){

try{

ArrayList al=new ArrayList();

pstmt=conn.prepareStatement("select * from [messagess]");

ResultSet rs=pstmt.executeQuery();

while(rs.next()){

MessBoar mb=new MessBoar();

mb.setId(rs.getInt(1));

mb.setName(rs.getString(2));

mb.setTime(rs.getDate(3));

mb.setTitle(rs.getString(4));

mb.setMessage(rs.getString(5));

al.add(mb);

}

return al;

}catch(Exception e){

e.printStackTrace();

return null;

}

}

public String getName(int id){

String name=null;

try{

pstmt=conn.prepareStatement("select name from [loginss] where id=?");

pstmt.setInt(1, id);

ResultSet rs=pstmt.executeQuery();

while(rs.next()){

name=rs.getString(1);

}

return name;

}catch(Exception e){

e.printStackTrace();

return null;

}

}

public boolean addInfo(MessBoar mb){

try{

pstmt=conn.prepareStatement("insert into [messagess] values(?,?,?,?,?)");

pstmt.setInt(1, mb.getId());

pstmt.setString(2, mb.getName());

pstmt.setDate(3, mb.getTime());

pstmt.setString(4, mb.getTitle());

pstmt.setString(5, mb.getMessage());

pstmt.executeUpdate();

return true;

}catch(Exception e){

e.printStackTrace();

return false;

}

}

public boolean insertUser(int id,String name,String password){

try{

pstmt=conn.prepareStatement("insert into [loginss] values(?,?,?,?)");

pstmt.setInt(1, id);

pstmt.setString(2, name);

pstmt.setString(3, password);

pstmt.setInt(4, 0);

pstmt.executeUpdate();

return true;

}catch(Exception e){

e.printStackTrace();

return false;

}

}

}

Login.java

package org.model;

public class Login {

private Integer id;

private String name;

private String password;

private int role;

public Integer getId(){

return this.id;

}

public void setId(Integer id){

this.id=id;

}

public String getName(){

return this.name;

}

public void setName(String name){

this.name=name;

}

public String getPassword(){

return this.password;

}

public void setPassword(String password){

this.name=password;

}

public int getRole(){

return this.role;

}

public void setRole(int role){

this.role=role;

}

}

message.java

package org.model;

import java.sql.*;

public class MessBoar {

private int id;

private String name;

private Date time;

private String title;

private String message;

public int getId() {

return id;

}

public void setId(int id) {

this.id=id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name=name;

}

public Date getTime() {

return time;

}

public void setTime(Date time) {

this.time=time;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title=title;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message=message;

}

}

LeaveMessageServlet.java

package org.servlet;

import java.io.IOException;

import java.sql.Date;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.dao.LoginDao;

import org.model.*;

public class LeaveMessageServlet extends HttpServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

// 设置请求编码

request.setCharacterEncoding("gb2312");

// 设置响应编码

response.setContentType("gb2312");

// 获取title内容

String title=request.getParameter("title");

// 获取message内容

String message=request.getParameter("message");

// 从session中取出当前用户对象

Login leaveMessageBoard=(Login) request.getSession().getAttribute("login");

// 建立留言表对应JavaBean对象,把数据封装进去

MessBoar mb=new MessBoar();

mb.setId(leaveMessageBoard.getId());

// 参数为获取的当前时间

mb.setName(leaveMessageBoard.getName());

mb.setTime(new Date(System.currentTimeMillis()));

mb.setTitle(title);

mb.setMessage(message);

// 调DB类中的方法判断是否插入成功

if(new LoginDao().addInfo(mb)){

response.sendRedirect("success.jsp") ;

}

}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

doGet(request,response);

}

}

LoginServlet.java

package org.servlet;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

import org.model.*;

import org.dao.*;

public class LoginServlet extends HttpServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

request.setCharacterEncoding("gb2312"); //设置请求编码

response.setContentType("gb2312"); //设置响应编码

LoginDao loginDao= new LoginDao();

HttpSession session=request.getSession(); // 先获得user对象,如果是第一次访问该Servlet,用户对象肯定为空,但如果是第

Login l=(Login) session.getAttribute("login"); // 二次甚至是第三次,就不应该再判断该用户的信息

if(l==null)

l = loginDao.checkLogin(request.getParameter("name"),request.getParameter("password"));

if(l!=null){ //如果登陆成功

session.setAttribute("login",l); //将获取的对象保存在session中

ArrayList al=loginDao.findMbInfo(); //获取留言板的内容,返回一个数组

session.setAttribute("al", al); //把数组保存起来

response.sendRedirect("main.jsp"); //验证成功跳转到 main.jsp

}

else{ //验证失败跳转到 error.jsp

response.sendRedirect("error.jsp");

}

}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

doGet(request,response);

}

}

RegisterServlet.java

package org.servlet;

import java.io.IOException;

import org.dao.*;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class RegisterServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("gb2312");

int id=Integer.valueOf(request.getParameter("id"));

String name=request.getParameter("name");

String password=request.getParameter("password");

if(new LoginDao().insertUser(id ,name, password)){

response.sendRedirect("login.jsp");

}

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

简单介绍

粘代码粘得都心累,比较忙就不做太多介绍了。数据库需要自己新建,对应数据类型建立就可以了。下次有空回头复习时再加上详细介绍吧。附上几张效果图。

效果图

好好学习,天天向上~加油~~~

//LoginServlet.java错误已修改 2016/09/02

//数据库语句添加 2016/12/24

数据库创建语句:

create database messageBoard

go

use messageBoard

create table loginss

(

id int not null primary key,

name varchar(20) not null,

password varchar(20) not null,

role int not null

)

create table messagess

(

id int not null,

name varchar(20) not null,

time datetime not null,

title varchar(20) not null,

message varchar(50) not null

)

上面的表名称需要与LoginDao.java里面的保持一致。

进阶篇:SpringBoot搭建简单留言板项目

java web 留言板设计_JSP+Servlet+JavaBean传统方式实现简易留言板制作(注册、登录、留言)...相关推荐

  1. 编写Java 制作留言板_JSP+Servlet+JavaBean制作简单留言板

    [实例简介] 本资源是一个简易留言板的代码,主要用了JSP+Servlet+JavaBean传统方式,实现登录.注册与留言的功能,内容仅供学习参考. 下载的文件肯定不能直接运行,需要自己配好服务器与环 ...

  2. JAVA Web项目中所出现错误及解决方式合集(不断更新中)

    JAVA Web项目中所出现错误及解决方式合集 前言 一.几个或许会用到的软件下载官网 二.Eclipse的[preferences]下没有[sever]选项 三.Tomcat的安装路径找不到 四.T ...

  3. 【Java闭关修炼】SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2

    [Java闭关修炼]SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2 传统的登录验证模式 JWT登录验证方式 下载安装依赖 创建JWTUTIL JwtAuthenticati ...

  4. java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)

    [实例简介] jsp+servlet+javabean实现简易留言板(包含数据库文件) 简单体验MVC设计模式 jsp:视图,与用户打交道:servlet:控制器,请求分配转发,联系视图层与模型层:j ...

  5. java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)

    学生成绩管理系统 一.实验目的 为了更好的学习理解JavaWeb,创建了此系统.此系统可以帮助学习Java web基础,特别是javaweb入门,此系统使用大部分Java web基础知识.Java w ...

  6. jsp和JAVA购物车_jsp+servlet+javabean实现简单购物车(附源码)

    [实例简介] 利用jsp的MVC模式实现简单的购物车,不过这个有很多还不完善的,后续会继续编写上传的 [实例截图] [核心代码] bookstore └── bookstore ├── src │   ...

  7. Java web学习(一)Servlet简介

    Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间 ...

  8. Java Web学习笔记 3 深入Servlet技术

    第3章 深入Servlet技术 请求-响应模式就是典型的Web应用程序访问过程,Java Web应用程序中,处理请求并发送响应的过程是由一种叫做Servlet的程序来完成的. 请求request,响应 ...

  9. Java Web小课程3——写servlet

    写servlet 1.在java中创建servlet 2.起名,起包名 3.新建的servlet有问题 1)没有servlet类 解决:在pom.xml中加入servlet映射 在pom.xml中 & ...

  10. java web中的service,servlet和Dao有什么区别

    servlet一般用于生成网页:service在后端中,web,service,Dao三层中,用于service调用Dao层.DAO类都是进行数据操作的类,是对于数据库中的数据做增删改查等操作的代码. ...

最新文章

  1. HDU1556(树状数组模版)
  2. python常见的排序算法_常见排序算法之python实现
  3. 解决android 异常导致应用程序停止运行的错误
  4. linux服务器密码策略,windows与linux服务器平台密码策略管理
  5. ansys fluent udf manual 下载_FLUENT流固耦合柱体结构涡激振动仿真案例解析
  6. 雅虎被告存在重大疏忽 导致5亿账户信息被黑
  7. Python下的云计算(OpenStack技术书籍)
  8. NYOJ41 - 三个数从小到大排序
  9. 软件工程师关注的播客
  10. Asp.Net中GridView、DataList、DataGrid三个数据控件的foreach遍历方法
  11. 关于vue编译版本引入的问题
  12. Otsu详细算法解析
  13. 2022年8月6日(星期六):骑行宁湖公园
  14. 无法连接虚拟设备sata的原因
  15. node-v14.21版本的下载安装
  16. eclipse python配置_Eclipse配置Python的IDE
  17. 话费充值API接口源码文档
  18. 【深度学习笔记】图像处理领域的不适定问题(ill-posed problem)
  19. 广告营销场景下的隐私计算实践:阿里妈妈营销隐私计算平台SDH
  20. 苦逼的Python爬虫抓小说实战

热门文章

  1. 2022年低压电工题库及模拟考试
  2. html 重复执行函数,javascript延时重复执行函数 lLoopRun.js
  3. linux下查看共享文件夹,在Linux下查看共享文件夹
  4. Delphi 11.0 Alexandria 来了
  5. python怎么开服务器,实战讲解:如何用Python搭建一个服务器
  6. Opencv图像边缘检测——Roberts算子(手写)、Sobel算子(手写和调包)、Scharr算子、Laplacian算子
  7. MAVEN常用知识点总结
  8. 机器视觉基础知识汇总
  9. java中solr的面试题_SOlR面试题
  10. AllenNLP入门笔记(一)