java web 留言板设计_JSP+Servlet+JavaBean传统方式实现简易留言板制作(注册、登录、留言)...
学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传统方式实现简易留言板制作(注册、登录、留言)...相关推荐
- 编写Java 制作留言板_JSP+Servlet+JavaBean制作简单留言板
[实例简介] 本资源是一个简易留言板的代码,主要用了JSP+Servlet+JavaBean传统方式,实现登录.注册与留言的功能,内容仅供学习参考. 下载的文件肯定不能直接运行,需要自己配好服务器与环 ...
- JAVA Web项目中所出现错误及解决方式合集(不断更新中)
JAVA Web项目中所出现错误及解决方式合集 前言 一.几个或许会用到的软件下载官网 二.Eclipse的[preferences]下没有[sever]选项 三.Tomcat的安装路径找不到 四.T ...
- 【Java闭关修炼】SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2
[Java闭关修炼]SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2 传统的登录验证模式 JWT登录验证方式 下载安装依赖 创建JWTUTIL JwtAuthenticati ...
- java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)
[实例简介] jsp+servlet+javabean实现简易留言板(包含数据库文件) 简单体验MVC设计模式 jsp:视图,与用户打交道:servlet:控制器,请求分配转发,联系视图层与模型层:j ...
- java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)
学生成绩管理系统 一.实验目的 为了更好的学习理解JavaWeb,创建了此系统.此系统可以帮助学习Java web基础,特别是javaweb入门,此系统使用大部分Java web基础知识.Java w ...
- jsp和JAVA购物车_jsp+servlet+javabean实现简单购物车(附源码)
[实例简介] 利用jsp的MVC模式实现简单的购物车,不过这个有很多还不完善的,后续会继续编写上传的 [实例截图] [核心代码] bookstore └── bookstore ├── src │ ...
- Java web学习(一)Servlet简介
Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间 ...
- Java Web学习笔记 3 深入Servlet技术
第3章 深入Servlet技术 请求-响应模式就是典型的Web应用程序访问过程,Java Web应用程序中,处理请求并发送响应的过程是由一种叫做Servlet的程序来完成的. 请求request,响应 ...
- Java Web小课程3——写servlet
写servlet 1.在java中创建servlet 2.起名,起包名 3.新建的servlet有问题 1)没有servlet类 解决:在pom.xml中加入servlet映射 在pom.xml中 & ...
- java web中的service,servlet和Dao有什么区别
servlet一般用于生成网页:service在后端中,web,service,Dao三层中,用于service调用Dao层.DAO类都是进行数据操作的类,是对于数据库中的数据做增删改查等操作的代码. ...
最新文章
- HDU1556(树状数组模版)
- python常见的排序算法_常见排序算法之python实现
- 解决android 异常导致应用程序停止运行的错误
- linux服务器密码策略,windows与linux服务器平台密码策略管理
- ansys fluent udf manual 下载_FLUENT流固耦合柱体结构涡激振动仿真案例解析
- 雅虎被告存在重大疏忽 导致5亿账户信息被黑
- Python下的云计算(OpenStack技术书籍)
- NYOJ41 - 三个数从小到大排序
- 软件工程师关注的播客
- Asp.Net中GridView、DataList、DataGrid三个数据控件的foreach遍历方法
- 关于vue编译版本引入的问题
- Otsu详细算法解析
- 2022年8月6日(星期六):骑行宁湖公园
- 无法连接虚拟设备sata的原因
- node-v14.21版本的下载安装
- eclipse python配置_Eclipse配置Python的IDE
- 话费充值API接口源码文档
- 【深度学习笔记】图像处理领域的不适定问题(ill-posed problem)
- 广告营销场景下的隐私计算实践:阿里妈妈营销隐私计算平台SDH
- 苦逼的Python爬虫抓小说实战
热门文章
- 2022年低压电工题库及模拟考试
- html 重复执行函数,javascript延时重复执行函数 lLoopRun.js
- linux下查看共享文件夹,在Linux下查看共享文件夹
- Delphi 11.0 Alexandria 来了
- python怎么开服务器,实战讲解:如何用Python搭建一个服务器
- Opencv图像边缘检测——Roberts算子(手写)、Sobel算子(手写和调包)、Scharr算子、Laplacian算子
- MAVEN常用知识点总结
- 机器视觉基础知识汇总
- java中solr的面试题_SOlR面试题
- AllenNLP入门笔记(一)