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. ZOJ 3805 Machine(二叉树,递归)

    题意:一颗二叉树,求  “  宽度  ” 思路:递归,貌似这个思路是对的,先记下,但是提交时超时, 1.如果当前节点只有左孩子,那么当前宽度等于左孩子宽度 2.如果当前节点只有右孩子,那么当前宽度等于 ...

  2. 淘宝双十一页面(Flexible)

    以下demo点我下载 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  3. CodeForces-329C(div1):Graph Reconstruction(随机&构造)

    I have an undirected graph consisting of n nodes, numbered 1 through n. Each node has at most two in ...

  4. 消息队列:快速上手ActiveMQ消息队列的JMS方式使用(两种模式:Topic和Queue的消息推送和订阅)

    1.实现功能 希望使用一套API,实现两种模式下的消息发送和接收功能,方便业务程序调用 1.发送Topic 2.发送Queue 3.接收Topic 4.接收Queue 2.接口设计 根据功能设计公共调 ...

  5. UVA 10559 Blocks——区间dp

    题目:https://www.luogu.org/problemnew/show/UVA10559 应该想到区间dp.但怎么设计状态? 因为连续的东西有分值,所以应该记录一下连续的有多少个. 只要记录 ...

  6. poj2182Lost Cows——树状数组快速查找

    题目:http://poj.org/problem?id=2182 从后往前确定,自己位置之前没有被确定的且比自己编号小的个数+1即为自己的编号: 利用树状数组快速查找,可另外开一个b数组,角标为编号 ...

  7. LINUX socket网络编程

    1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统.由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进 程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如 U ...

  8. 分布式一致性协议之:Paxos算法(转)

    Paxos算法的难理解与算法的知名度一样令人敬仰,从我个人的经历而言,难理解的原因并不是该算法高深到大家智商不够,而在于Lamport在表达该算法时过于晦涩且缺乏一个完整的应用场景.如果大师能换种思路 ...

  9. git学习 7 git每次push都输入用户名 密码

    用如下命令改成SSH的方式 git remote rm origin git remote add origin git@github.com:username/repository.git git ...

  10. 三 Flask+ MySQL 数据库操作

    一: __init__.py作用: __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件.通常__init__.py ...