1.设计思想

先写类DBUtil用来连接数据库。在UserDaoImpl2类中写在数据库中添加课程表信息的方法。然后定义类Calss2来写保存超级课表数据:课程名称,任课教师,上课地点的属性及其get和set方法。新建Calss.jsp文件来写保存功能的界面,doClass.jsp文件来接受Class.jsp文件传过来的参数,如果参数不正确,则给出提示并且依旧在保存功能页面,如果正确则跳转页面提示保存成功。新建ValidateUtil类,在类中的方法中判断三个参数是否正确,若不正确并返回错误信息。在doCalss类中调用此方法。

2.源程序代码

package com.jaovo.msg.Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class DBUtil { public static Connection getConnection() {
try {
//1 加载驱动
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String user = "root";
String password = "root";
String url = "jdbc:mysql://localhost:3307/jaovo_msg";//定义工具类
Connection connection = null;
try {
//2 创建链接对象connection
connection = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
} //关闭资源的方法
public static void close(Connection connection ) {
try {
if (connection != null) {
connection.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement ) {
try {
if (preparedStatement != null) {
preparedStatement.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(ResultSet resultSet ) {
try {
if (resultSet != null) {
resultSet.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
package com.jaovo.msg.model;

public class Class2 {
private String classname;
private String teacher;
private String address;
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }
package com.jaovo.msg.dao;
import com.jaovo.msg.model.*; public interface IUserDao2 {
public void add(Class2 class2);
}
package com.jaovo.msg.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import com.jaovo.msg.Util.DBUtil; import com.jaovo.msg.model.Class2; public class UserDaoImpl2 implements IUserDao2{
@Override
public void add(Class2 class2) {
//获得链接对象
Connection connection = DBUtil.getConnection();
//准备sql语句 PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
String sql = "insert into t_class(classname,teacher,address) value (?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, class2.getClassname());
preparedStatement.setString(2,class2.getTeacher());
preparedStatement.setString(3,class2.getAddress());
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭资源
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
} } }
 


package com.jaovo.msg.Util;

import java.util.HashMap;
import java.util.Map; import javax.servlet.http.HttpServletRequest; public class ValidateUtil {
public static boolean validateNull(HttpServletRequest request,String[] fileds) {
boolean validate = true;
//map对象用来装载不同的错误信息
Map<String,String> errorMsg = new HashMap();
for(int i=0;i<3;i++) {
String value = request.getParameter(fileds[i]); if(i==1) { if(value.equals("王建民")||value.equals("刘立嘉")||value.equals("刘丹")||value.equals("王辉")||value.equals("杨子光"))
{
validate=true;
}
else
{
validate = false;
errorMsg.put(fileds[i], "教师不正确");
}
} if(i==2) { boolean a[]=new boolean[4];
String[] sub={"一教","二教","三教","基教"};
for(int j=0;j<4;j++) {
a[i]=value.startsWith(sub[j]);
}
boolean is=false;
for(int k=0;k<4;k++) {
if(a[i]==true)
is=true;
} if(is==true)
{
validate=true;
}
else
{
validate = false;
errorMsg.put(fileds[i], "教室不正确");
} if (!validate) {
request.setAttribute("errormsg", errorMsg);
}
}
} return validate;
}
public static String showError(HttpServletRequest request , String filed) {
Map<String, String> errorMsg = (Map<String,String>)request.getAttribute("errormsg");
if (errorMsg == null) {
return "";
}
String msg = errorMsg.get(filed);
if (msg == null) {
return "";
}
return msg;
} }

 

<%@page import="java.util.Map"%>
<%@ page import="com.jaovo.msg.Util.ValidateUtil" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Map<String,String> errorMsg=(Map<String,String>)request.getAttribute("errormsg");
%> <form action="doClass.jsp" method="post">
<table align="center" width="50%" border="1">
<tr><td>课程名称</td>
<td><input type="text" name="classname"/>
<%=ValidateUtil.showError(request, "classname")%></td></tr> <tr><td> 任课教师</td>
<td><input type="text" name="teacher"/>
<%=ValidateUtil.showError(request, "teacher")%></td></tr>
<tr><td> 上课地点</td>
<td><input type="text" name="address"/>
<%=ValidateUtil.showError(request, "address")%> </td></tr>
<tr><td colspan="2" align="center">
<input type="submit" value="保存"/>
</td></tr> </table>
</form> </body>
</html>
<%@page import="com.jaovo.msg.dao.UserDaoImpl2"%>
<%@page import="com.jaovo.msg.model.Class2"%>
<%@page import="java.util.Map"%>
<%@ page import="com.jaovo.msg.Util.ValidateUtil" %> <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//接收客户端传递过来的参数
String classname= request.getParameter("classname");
String teacher= request.getParameter("teacher");
String address = request.getParameter("address");
boolean validate = ValidateUtil.validateNull(request, new String[]{"classname","teacher","address"});
if(!validate){ %>
<jsp:forward page="Class.jsp"></jsp:forward>
<%
}
Class2 class2 = new Class2();
class2.setClassname(classname);
class2.setTeacher(teacher);
class2.setAddress(address);
UserDaoImpl2 userDao2 = new UserDaoImpl2();
userDao2.add(class2);
out.println("添加成功!!");
%> </body>
</html>

 

课程增加功能(java web)的更多相关文章

  1. Java Web -【分页功能】详解

    分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...

  2. java web课程设计截图和服务器地址

    企业办公测试截图和服务器地址 本篇博客主要围绕以下几个部分展开,登录.系统管理.工作流.个人事务管理.内部邮件.公共信息共六个部分.主要有界面截图和简要介绍. 一.登录.更改密码界面 登录界面包括以管 ...

  3. java web实现 忘记密码(找回密码)功能及代码

    java web实现 忘记密码(找回密码)功能及代码 (一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮, ...

  4. 【Servlet】java web 文件下载功能实现

    需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载的文件的地址 <!DOCTYPE html> & ...

  5. atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结

    atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结 1. DND的操作流程 1 2. Html5 注 ...

  6. java web开发_购物车功能实现

    java web开发_购物车功能实现 之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: ...

  7. java web Session会话技术(原理图解+功能+与Cookie的区别+基本使用)

    java web Session会话技术(原理图解+功能+与Cookie的区别+基本使用) 这是我关于会话技术的第二篇文章,对 Cookie有不了解的兄弟可以点击下方的Cookie跳转 Cookie链 ...

  8. Java Web实现用户登录功能

    java web 学习记录一下 mvc结构实现mysql 连接 什么是mvc MVC是模型(model).视图(view).控制(controller)这三个单词上的首字母组成.它是一种应用模型,它的 ...

  9. Java Web快速入门——全十讲

    Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...

随机推荐

  1. js_调试_01_14 个你可能不知道的 JavaScript 调试技巧

    更快更高效地调试你的 JavaScript 了解你的工具在完成任务时有很重要的意义. 尽管 JavaScript 是出了名的难以调试,但是如果你掌握了一些小技巧,错误和 bug 解决起来就会快多了. ...

  2. 团队作业第5周——测试与发布(Alpha版本)

    1.发现的bug a.同时按下和蛇前进方向相反的键和垂直方向的任意一个键贪吃蛇会死亡(比如贪吃蛇向右行走,同时按左上或左下都会game over) b.刷新的苹果会在蛇身上出现 暂时还没能力修复,以后 ...

  3. spring2.5和struts1.3.8整合

    第一步:导入对应jar文件 第二步: 1.在web容器中实例化spring容器 <!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpa ...

  4. linux 下errno各个值的意义(转) errno.h

    strerror(errno):获取errno对应的错误 查看错误代码errno是调试程序的一个重要方法.当linux C api函数发生异常时,一般会将errno变量(需include errno. ...

  5. MySQL-left join _20160928

    left join 左连接 返回from 后面表的全部记录和 left join 后面表和from 后面表条件相符的全部记录 一般格式为下面,首先table A 和tableB都有两个唯一的字段标识I ...

  6. BZOJ3230 相似子串[后缀数组+二分+st表]

    BZOJ3230 相似子串 给一个串,查询排名i和j的子串longest common suffix和longest common prefix 思路其实还是蛮好想的,就是码起来有点恶心.可以发现后缀 ...

  7. HTML特殊字符的html、js、css写法汇总 (转)

    ⇠  箭头类 符号 UNICODE 符号 UNICODE HTML JS CSS HTML JS CSS ⇠ &#8672 \u21E0 \21E0 ⇢ &#8674 \u21E2 \ ...

  8. Android应用如何反馈Crash报告

    转自:http://www.cnblogs.com/draem0507/archive/2013/05/25/3099461.html 一.为什么要Crash crash可以理解成堕落,垮台.按照我们 ...

  9. Python3中内置类型bytes和str用法及byte和string之间各种编码转换,python--列表,元组,字符串互相转换

    Python3中内置类型bytes和str用法及byte和string之间各种编码转换 python--列表,元组,字符串互相转换 列表,元组和字符串python中有三个内建函数:,他们之间的互相转换 ...

  10. netstat -st输出解析(二)

    转自:http://perthcharles.github.io/2015/11/10/wiki-netstat-proc/ netstat -st输出的两个重要信息来源分别是/proc/net/sn ...