基于mysql数据库的JSP留言本代码详解编程语言
2023-06-13 09:20:30 时间
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
base href=" %=basePath% "
title 留言给我 /title
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
style type="text/css"
!--
textarea {
FONT: 12px Tahoma;
COLOR: #333333;
margin-top: 3px;
margin-bottom: 3px;
.input1 {
width: 300px;
height: 25px;
margin-top: 3px;
margin-bottom: 3px;
.input2 {
width: 150px;
height: 25px;
margin-top: 3px;
margin-bottom: 3px;
.submit1 {
width: 50px;
border: #CCCCCC solid 1px;
height: 30px;
background: #FFFFFF
#form1 tr th {
text-align: right;
input {
text-align: left;
body {
font-family: "微软雅黑", Verdana, sans-serif, "宋体";
color: #333;
.mybutton {
width: 70px;
height: 25px;
margin-top: 5px;
margin-bottom: 5px;
text-align: center;
h1 {
margin-top: 100px;
margin-bottom: 50px;
color: #999;
font-weight: bold;
font-size: 36px;
/style
script
function addCheck() {
var name = document.getElementById("name").value;
var title = document.getElementById("title").value;
var content = document.getElementById("content").value;
if (name == "") {
alert("姓名容都不能为空!")
document.getElementById("name").focus();
return false;
if (title == "") {
alert("主题都不能为空!")
document.getElementById("title").focus();
return false;
if (content == "") {
alert("内容不能为空!")
document.getElementById("content").focus();
return false;
/script
/head
body
table width="400" align="center" cellpadding="2"
cellspacing="0"
td colspan="2" h1 留言本 /h1 /td
/tr
form name="form1" id="form1"
action=" %=basePath% servlet/MessageServlet" method="post"
onSubmit="javascript: return addCheck()"
th width="70" align="right" 姓名: /th
td width="280" align="left" input name="name" type="text" id="name" /td
/tr
th 主题: /th
td input name="title" type="text" /td
/tr
th span 留言: /th
td textarea name="content" id="content" cols="60" rows="5" /textarea /td
/tr
td colspan="2" align="center" input type="submit" name="submit" id="submit" value="提交留言"
nbsp;
input type="button" name="submit" id="submit" value="查看留言"
nbsp;
input type="reset" name="reset" id="reset" value="重新填写"
input name="action" type="hidden" id="check" value="add" /td
/tr
/form
/table
/body
/html
showMessage.jsp
%@ page language="java" import="java.util.*,com.demo.Message" pageEncoding="utf-8"% !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" html head title 查看留言 /title meta http-equiv="Content-Type" content="text/html; charset=utf-8" / style type="text/css" .line { border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666; height: 10px; body { margin-right: auto; margin-left: auto; text-align: center; max-width: 960px; #main { border: 3px solid #999; background-color: #f5f5f5; padding: 1px; margin-right: auto; margin-left: auto; width: 960px; #main table tr td { white-space: normal; /style /head body div id="main" div align="center" h1 留言列表 /h1 /div response.setCharacterEncoding("utf-8"); int p = 1; ArrayList messageList = (ArrayList) request.getAttribute("list"); int prep = p; // 上一页 int nextp = p; // 下一页 if (messageList.size() == 5) { nextp = p + 1; if (p 1) { prep = p - 1; if (!messageList.isEmpty()) { for (int i = 0; i messageList.size(); i++) { Message message = (Message) messageList.get(i); table width="700" border="1" align="center" cellpadding="2" cellspacing="0" td width="130" align="right" 姓名: /td td width="556" align="left" %=message.getName()% /td /tr td align="right" 主题: /td td colspan="3" align="left" %=message.getTitle()% /td /tr td align="right" span 内容: /td td colspan="3" align="left" %=message.getContent()% /td /tr div span %=message.getTime()% span %=i + 1% 楼 /div /table div /div } else { out.print(" br br 还没有留言! br br div align="center" input type="button" value="上一页" nbsp; input type="button" value="下一页" nbsp; input type="button" value="返回" /div /div /body /html
com.demo包
Message.java
package com.demo; * 留言实体封装类 public class Message { private int id; private String name; private String title; private String content; private String time; public String getTime() { return time; public void setTime(String time) { this.time = time; public String getContent() { return content; public void setContent(String content) { this.content = content; 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 String getTitle() { return title; public void setTitle(String title) { this.title = title;
MessageServlet.java
package com.demo; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.demo.Message; import com.demo.MessageDao; public class MessageServlet extends HttpServlet { public void destroy() { super.destroy(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); doPost(request, response); public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); String action = request.getParameter("action"); if (action.equals("add")) { this.addMessage(request, response); // 发表留言 if (action.equals("list")) { // 前台留言列表 this.listMessage(request, response); /** * 发表留言 public void addMessage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); String name = request.getParameter("name"); String title = request.getParameter("title"); String content = request.getParameter("content"); Message message = new Message(); message.setName(name); message.setTitle(title); message.setContent(content); MessageDao messageDao = new MessageDao(); messageDao.addMessage(message); out.print(""); /** * @前台查看所有留言 public void listMessage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); int page = Integer.parseInt(request.getParameter("p")); MessageDao messageDao = new MessageDao(); List list = null; list = messageDao.listByPage(page); request.setAttribute("list", list); request.getRequestDispatcher("../showMessage.jsp").forward(request, response); public void init() throws ServletException {
MessageDao.java
package com.demo; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.demo.DbConnection; import com.demo.Message; * 留言保存数据库访问类 public class MessageDao { private Connection coon = null; private PreparedStatement pstmt = null; private ResultSet rs = null; private String sql = ""; public MessageDao() { coon = DbConnection.getConnection(); /** * 保存留言 public void addMessage(Message message) { System.out.println(message.getName()); coon = DbConnection.getConnection(); sql = "INSERT INTO `message` ( name, title,content,time)VALUES (?,?,?,now())"; try { pstmt = coon.prepareStatement(sql); pstmt.setString(1, message.getName()); pstmt.setString(2, message.getTitle()); pstmt.setString(3, message.getContent()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); /** * 查询所有留言 public List listByPage(int page) { int num = 5;// 每页显示的记录数 List list = new ArrayList(); int rowBegin = 0; int rowEnd = 0; if (page 1) { rowBegin = num * (page - 1); rowEnd = rowBegin + num; sql = "select * from message where id limit " + rowBegin + "," + rowEnd; } else { sql = "select * from message order by id limit 5"; try { pstmt = coon.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { Message message = new Message(); message.setId(rs.getInt(1)); message.setName(rs.getString(2)); message.setTitle(rs.getString(3)); message.setContent(rs.getString(4)); message.setTime(rs.getDate(5) + " " + rs.getTime(5)); list.add(message); } catch (SQLException e) { e.printStackTrace(); return list;
DbConnection.java
package com.demo; import java.sql.Connection; import java.sql.DriverManager; * 数据库连接类 public class DbConnection { public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager .getConnection( "jdbc:mysql://127.0.0.1:3306/message?useUnicode=true characterEncoding=utf8", "**********", "*********"); // **********分别代表数据库用户名,密码 } catch (Exception e) { e.printStackTrace(); if (conn == null) { System.out.println("no get connection!throws Exception"); return conn;
数据库脚本
-- ---------------------------- -- Table structure for `message` -- ---------------------------- DROP TABLE IF EXISTS `message`; CREATE TABLE `message` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, `title` varchar(200) NOT NULL, `content` varchar(500) NOT NULL, `time` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of message -- ----------------------------
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/10928.html
cjavamysql相关文章
- MySQL数据库密码查看指南(mysql数据库密码查看)
- MySQL中的安全数据加密策略(mysql数据加密)
- 研究MySQL数据库的案例研究分析(mysql案例)
- MySQL数据库管理系统中引擎多种多样(mysql几种引擎)
- MySQL灾难恢复:重获数据库完整性(mysql灾难恢复)
- 连接数据库Shell使用MySQL连接数据库的简单方法(shell通过mysql)
- MySQL数据库查询性能优化实战(mysql大数据查询优化)
- 用JSP连接MySQL数据库:简明实现代码(jsp连接mysql数据库代码)
- MySQL:学会修改字段语句(mysql修改字段语句)
- 极速重建:MySQL 数据库表清空(清空数据库表mysql)
- MySQL数据库中去重复记录的方法(mysql不重复记录)
- Linux下重启MySQL数据库的操作方法(linux重启mysql)
- 残留数据解决MYSQL残留数据:彻底清除一切的方法(彻底清除mysql)
- Linux下搭建JSP开发环境(linux配置jsp环境)
- 数据库阿里云:打造高性能分布式MySQL数据库(阿里云分布式mysql)
- MySQL实例查看:洞悉数据库秘密(mysql实例查看)
- 探秘MySQL:解读这个强大的大型数据库(mysql数据库大数据库)
- 深入了解MySQL:一篇完整的数据库指南(mysql大全)
- MySQL长连接池C语言实现的稳定高效(c mysql长连接池)
- MySQL函数instrt的应用及实例分析(mysql中instrt)
- 使用CMD命令行启动MySQL服务(cmd启动mysql语句)
- 解决方法MySQL打不开数据库怎么办(mysql不能打开数据库)