JavaWeb之留言版纯JSP制作

这篇博客介绍了如何使用JSP实现一个简单的留言板功能,包括访客发布留言、管理员回复以及页面展示。核心代码涉及PreparedStatement防止SQL注入,分页查询优化数据库负载,内容转码避免HTML或JS攻击,同时提醒在大型项目中应考虑使用MVC模式以提高代码组织性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

留言板功能需求:

1.页面效果如下图所示,应包含留言和管理员回复功能;
2.访客发布和显示只要一个JSP页面,页面最上方是发布内容区域;
3.管理员回复功能由另一个页面实现。
4.页面下方列出已有留言,还需显示提交时间;

5.留言数据存在服务器的数据库中;


留言发布页面board,jsp的核心代码:

<body class="body">

	<center>
	<div class="cen">
		<div class="edit">
			<br><br>
			<font face="Tw Cen MT" color="#665ea9" size="6" align="left">Leave your traces!</font><br><br>
			<!-- 用户输入表单 -->
			<form name="form_submit" action="board.jsp" align="center" method="post">    
				<!-- 用户图标 -->
				<img src="user.png" width="40px" height="40px" align="center">  
				<!-- 用户名输入框 -->
				<input type="text" class="cinput" name="user" placeholder="Username" maxlength="20" onfocus="ufocus()"><br>
				<div id="name_id" class="divfont"> </div>
				<!-- 邮箱图标 -->
				<img src="email.png" width="40px" height="40px" align="center"> 
				<!-- 邮箱输入框 -->
				<input type="text" class="cinput" name="email" placeholder="Email" maxlength="20" onfocus="efocus()"><br>  			
				<div id="email_id" class="divfont"> </div>
				<!-- 留言输入框 -->
				<textarea type="text" class="ctext" name="saying" placeholder="To say someting..." onfocus="sfocus()"></textarea><br> 
				<div id="saying_id" class="divfont"> </div>
				
				<input type="hidden" name="stime" id="time_id" value="">
				<input type="hidden" name="sip" id="ip_id" value="">
				<!-- 提交按钮 -->
				<input type="submit" class="btn_out" value="" name="OK" onclick="return checksubmit()" onmousemove="this.className='btn_move'" onmouseout="this.className='btn_out'" > 
			</form>	
		</div>

		<%
			//如果用户提交信息 则插入数据库 其中头像为随机
			if(request.getParameter("user")!=null)
			{
				Class.forName("com.mysql.jdbc.Driver");
				Connection conn = DriverManager.getConnection("jdbc:mysql://url??useUnicode=true&characterEncoding=utf-8",用户名,密码);
				Statement stat = conn.createStatement();		
				
				//参数化
				String sql = "INSERT INTO MessageBoard(MDisplay, MIp, MName, MEmail, MTime, MSaying, MImage) VALUES(1,?,?,?,?,?,?)";
				PreparedStatement ps = conn.prepareStatement(sql);
				//随机头像
				int i=new Random().nextInt(10);
				String muser=new String(request.getParameter("user").getBytes("iso-8859-1"),"utf-8");
				String msaying=new String(request.getParameter("saying").getBytes("iso-8859-1"),"utf-8");
				//设置参数
				ps.setString(1,request.getParameter("sip"));
				ps.setString(2,muser);
				ps.setString(3,request.getParameter("email"));
				ps.setString(4,request.getParameter("stime"));
				ps.setString(5,msaying);
				ps.setString(6,"img/head"+i+".png");
				ps.executeUpdate();

				stat.close();
				conn.close();
			}
		%>

		<%      //获取页数
				int pagei=0;
				int maxp=0;
				if(request.getParameter("page")!=null)
					if(request.getParameter("page")!=""){
					String str1=request.getParameter("page");
					Pattern pattern = Pattern.compile("[0-9]*");  
	    			if(pattern.matcher(str1).matches())
	    				pagei=Integer.parseInt(str1);	
				}	

                
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值