JAVA留言板_java项目实例源码

JAVA留言板_java项目实例源码java实现简单留言板功能的代码实例数据库对应的表:guestbook:id,name,phone,email,title,content,time;id新建webproject:guestbookbuildPath:引入连接数据库的驱动的类库在webRoot目录中加入:+faceditor+jsweb.xml代码:xmlns=”http://java….


Jetbrains全系列IDE稳定放心使用

java实现简单留言板功能的代码实例

数据库对应的表:

guestbook:id ,name,phone,email,title,content,time;                   id

新建web project:guestbook

build Path:引入连接数据库的驱动的类库

在webRoot目录中加入:

+faceditor

+js

web.xml

代码:

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”>

AddMessageServlet

webbook.guestbook.AddMessageServlet

GetMessagesServlet

webbook.guestbook.GetMessagesServlet

AddMessageServlet

/servlet/addMessage

GetMessagesServlet

/servlet/getMessages

addMessage.htm

代码:

add message

请您输入留言

查看留言

姓名:
E-Mail:
电话:
主题:
内容:

var oFCKeditor = new FCKeditor(“content”);

oFCKeditor.BasePath = ‘/guestbook/fckeditor/’ ;

oFCKeditor.Height = 300 ;

oFCKeditor.ToolbarSet = ‘Basic’;

oFCKeditor.Create() ;

content.html

display content

留言内容

编号 12
姓名 liuwei
电话 2922266
email phpa@www.3ppt.com
主题 you can test
内容 test content!
编号  
姓名  
电话  
email  
主题  
内容  
编号  
姓名  
电话  
email  
主题  

内容

 

validation-config.xml

代码;

———————————————————————

******************************************************

这是一个很有用的工具类,包含了:

判读字符串参数是否为空:validateNull(String args)

判断输入的字符串参数是否为空或者是”null”字符:chanageNull(String source, String target)

过滤,n 字符的方法:filterHtml(String input)

*****************************************************

———————————————————————

StringUtil.java

代码:

package webbook.util;

public class StringUtil {

/**

* 判断输入的字符串参数是否为空。

* @param args 输入的字串

* @return true/false

*/

public static boolean validateNull(String args) {

if (args == null || args.length() == 0) {

return true;

} else {

return false;

}

}

/**

* 判断输入的字符串参数是否为空或者是”null”字符,如果是,就返回target参数,如果不是,就返回source参数。

*/

public static String chanageNull(String source, String target) {

if (source == null || source.length() == 0 || source.equalsIgnoreCase(“null”)) {

return target;

} else {

return source;

}

}

/**

* 过滤,n 字符的方法。

* @param input 需要过滤的字符

* @return 完成过滤以后的字符串

*/

public static String filterHtml(String input) {

if (input == null) {

return null;

}

if (input.length() == 0) {

return input;

}

input = input.replaceAll(“&”, “&”);

input = input.replaceAll(“

input = input.replaceAll(“>”, “>”);

input = input.replaceAll(” “, ” “);

input = input.replaceAll(“‘”, “‘”);

input = input.replaceAll(“””, “””);

input = input.replaceAll(“n”, “
“);

return input;

}

}

AddmessageServlet.java

代码;

package webbook.guestbook;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.text.SimpleDateFormat;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import webbook.util.StringUtil;

public class AddMessageServlet extends HttpServlet {

private static final long serialVersionUID = -8349454122547148005L;

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

String url = “jdbc:oracle:thin:@192.168.1.20:1521:ora9”;

String username = “scott”;

String password = “tiger”;

String sql = “insert into guestbook (id,name,email,phone,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)”;

int result = 0;

Connection conn = null;

request.setCharacterEncoding(“utf-8”);

String name = request.getParameter(“name”);

String title = request.getParameter(“title”);

response.setContentType(“text/html;charset=utf-8”);

PrintWriter out = response.getWriter();

out.println(“”);

out.println(“

guestbook input page”);

out.println(“

“);

if (StringUtil.validateNull(name)) {

out.println(“对不起,姓名不能为空,请您重新输入!
“);

out.println(“添加新的留言
“);

} else if (StringUtil.validateNull(title)) {

out.println(“对不起,主题不能为空,请您重新输入!
“);

out.println(“添加新的留言
“);

} else {

try {

Class.forName(“oracle.jdbc.driver.OracleDriver”);

conn = DriverManager.getConnection(url, username, password);

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, StringUtil.filterHtml(name));

pstmt.setString(2, StringUtil.filterHtml(request.getParameter(“email”)));

pstmt.setString(3, StringUtil.filterHtml(request.getParameter(“phone”)));

pstmt.setString(4, StringUtil.filterHtml(title));

pstmt.setString(5, request.getParameter(“content”));

//设置格式化时间

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);

pstmt.setString(6, sdf.format(new java.util.Date()));

result = pstmt.executeUpdate();

pstmt.close();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (result == 0) {

out.println(“对不起,添加留言不成功,请您重新输入!
“);

out.println(“添加新的留言
“);

} else {

out.println(“祝贺您,成功添加留言。
“);

out.println(“查看所有留言内容
“);

}

out.println(“”);

out.println(“”);

out.flush();

out.close();

}

}

}

GetMessageServlet.java

代码:

package webbook.guestbook;

import java.io.*;

import java.sql.*;

import javax.servlet.*;

import javax.servlet.http.*;

import webbook.util.StringUtil;

public class GetMessagesServlet extends HttpServlet {

private static final long serialVersionUID = 5964428201228635704L;

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

String url = “jdbc:oracle:thin:@192.168.1.20:1521:ora9”;

String username = “scott”;

String password = “tiger”;

String sql = “select * from guestbook order by id desc”;

Connection conn = null;

response.setContentType(“text/html;charset=utf-8”);

PrintWriter out = response.getWriter();

out.println(“”);

out.println(“

display messages”);

out.println(“

“);

out.println(“添加新的留言内容
“);

out.println(“留言内容
“);

try {

Class.forName(“oracle.jdbc.driver.OracleDriver”);

conn = DriverManager.getConnection(url, username, password);

PreparedStatement pstmt = conn.prepareStatement(sql);

//查询结果是一个ResultSet对象。

ResultSet rs = pstmt.executeQuery();

while (rs.next()) {

this.printRow(out, rs);

}

rs.close();

pstmt.close();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

out.println(” “);

out.println(“”);

out.flush();

out.close();

}

private void printRow(PrintWriter out, ResultSet rs) throws SQLException {

out.println(“

out.println(“

编号”);

out.println(“

” + rs.getInt(“id”) + “”);

out.println(“

姓名” + rs.getString(“name”) + “”);

out.println(“

电话” +

StringUtil.chanageNull(rs.getString(“phone”), “没填”) +

“

“);

out.println(“

email” +

StringUtil.chanageNull(rs.getString(“email”), “没填”) +

“

“);

out.println(“

主题” + rs.getString(“title”) + ” “);

out.println(“

内容”);

out.println(“

” + StringUtil.chanageNull(rs.getString(“content”), “没填”) + “”);

out.println(“

时间” + rs.getString(“time”) + ” “);

out.println(“

“);

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189579.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • C# 多线程 Parallel.ForEach 和 ForEach 效率问题研究及理解

    C# 多线程 Parallel.ForEach 和 ForEach 效率问题研究及理解最近要做一个大数据dataTable循环操作,开始发现运用foreach,进行大数据循环,并做了一些逻辑处理。在循环中耗费的时间过长。后来换成使用Parallel.ForEach来进行循环。一开始认为, 数据比较大时,Parallel.ForEach肯定比 ForEach效率高,后来发现,其实并不是这样。我用了1000万次循环测试:{CSDN:CODE:2601125}

    2022年7月19日
  • 「 运动控制 」“ADRC自抗扰控制技术”(Active Disturbance Rejection Control)研究

    「 运动控制 」“ADRC自抗扰控制技术”(Active Disturbance Rejection Control)研究近年来,虽然现代控制理论取得了一系列成果,但是在工业领域的应用并没有代替PID控制。这说明现代控制理论在实际应用的过程中受到一定的限制,控制理论与生产生活实际仍然存在一定的代沟。对此,韩京清总结为基于“模型论”的控制理论在解决问题时没有以生产生活中的不确定性作为重点,没有抓住生产生活实践中所切实需要的核心。韩京清先生针对生产生活实践中存在的问题潜心研究,积极探索,逐步分析PID理论与现代控…

    2022年5月18日
  • 怎么解决myeclipse带入乱码_myeclipse控制台乱码

    怎么解决myeclipse带入乱码_myeclipse控制台乱码怎么解决Myeclipse导入项目中文乱码?Myeclipse之所以会出现乱码问题是因为Myeclipse编辑器选择的编码规则是可变的。下面,小编就为大家介绍下解决Myeclipse导入项目中文乱码方法。一、将整个project设置编码UTF-8(UTF-8可以最大的支持国际化):windows-》Preferences-》general-》Workspace-》Textfileencodi…

    2022年10月31日
  • int、long、long long取值范围

    int、long、long long取值范围unsignedint0~4294967295int-2147483648~2147483647unsignedlong0~4294967295long-2147483648~2147483647longlong的最大值:9223372036854775807longlong的最小值:-9223372036854775808unsigned…

    2022年6月6日
  • 学术应用使用node-http-proxy集成谷歌学术「建议收藏」

    学术应用使用node-http-proxy集成谷歌学术「建议收藏」搞科研的同学肯定离不开谷歌学术,谷歌学术搜索是文献搜索下载一大利器。之前实验室开发了一款学术应用,遗留了历史问题,就是没有解决文献搜索的功能,而这个任务最后落在我的身上。我采用的方案就是集成谷歌学术,但是国内的网络环境,你懂的,自然状态下根本就访问不了谷歌学术的,你得翻墙才能访问。你不能期望使用你开发的学术应用都能翻墙访问谷歌学术(虽然搞科研的人电脑翻墙软件肯定都准备好了!),所以呢我还要给谷歌学术

    2022年8月31日
  • HikariPool-1 – Connection is not available, request timed out after xxxxms.「建议收藏」

    HikariPool-1 – Connection is not available, request timed out after xxxxms.「建议收藏」完整错误:HikariPool-1-Connectionisnotavailable,requesttimedoutafterxxxxms.造成原因:在数据源配置时缺少配置validationTimeout属性,或者validationTimeout属性值配置过大<propertyname="validationTimeout"value="${hi…

    2022年6月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号