1. 环境的搭建

软件

数据库  sql

myeclipse 8.0  tomcat 6.0

2. 安装完 myeclipse 配置下  部署tomcat 6.0

=1=》

=2=》  新建  jsp   工程

=3=》  新建  jsp  文件信息

启动服务并且部署

代码详情:

建立数据库

1.sql 数据库

CREATE TABLE [dbo].[test1](
[id] [int] IDENTITY(1,1) NOT NULL,
[tname] [char](10) NOT NULL,
[tband] [char](10) NOT NULL,
[tchangdi] [char](20) NOT NULL,
[tchangjia] [char](50) NOT NULL,
[beizhu] [char](50) NOT NULL
) ON [PRIMARY]

2.    用户各种字段   一般上和我们数据库字段相同

po/User.java

 package po;
public class User {
//ctrl+shift+s 再按+c +o +r 自动生成
//为了防止直接使用源数据 进行的误操作
int id;
String tname;
String tband;
String tchangdi;
String tchangjia;
String beizhu;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public String getTband() {
return tband;
}
public void setTband(String tband) {
this.tband = tband;
}
public String getTchangdi() {
return tchangdi;
}
public void setTchangdi(String tchangdi) {
this.tchangdi = tchangdi;
}
public String getTchangjia() {
return tchangjia;
}
public void setTchangjia(String tchangjia) {
this.tchangjia = tchangjia;
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu;
}
public User(int id, String tname, String tband, String tchangdi,
String tchangjia, String beizhu) {
super();
this.id = id;
this.tname = tname;
this.tband = tband;
this.tchangdi = tchangdi;
this.tchangjia = tchangjia;
this.beizhu = beizhu;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
}

需要字段代码

3.由于每次使用都会需要调用连接数据库代码  ,所以把抽离出来

db/DbConn.java

 package db;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class DbConn { public static Connection getConn()
{
Connection con =null;
try {
// Class.forName("com.mysql.jdbc.Driver"); // 加载驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) {
System.out.println("加载驱动程序错误" + e.getMessage());
} try {
// 创建连接 testdb是数据库名称 重点在此
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=mvce", "sa", "123456"); } catch (SQLException e) { System.out.println("数据库连接操作出错" + e.getMessage());
}
return con;
}
}

连接数据库代码

4.数据处理

 package dao;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import db.DbConn;
import po.User; public class UserDAO { //增加 public int add(User u)
{
int n=0;
try {
// 创建连接 testdb是数据库名称
Connection con = DbConn.getConn(); // 创建声明SQL对象
Statement stm = con.createStatement();
// 执行SQL语句,得到结果集,结果集放到ResultSet对象中
String sql="insert into test1 values('"+u.getTname()+"','"+u.getTband()+"','"+u.getTchangdi()+"','"+u.getTchangjia()+"','"+u.getBeizhu()+"');";
n=stm.executeUpdate(sql);
} catch (SQLException e) { System.out.println("数据库操作出错" + e.getMessage());
}
return n;
}
}

数据库操作(增加)

5.设计add.jsp   (按照执行顺序)

 <%@ 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>商品信息添加</p>
<form name="frm1" action="servlet/AddServlet">
<p>商品编号:
<label for="textfield"></label>
<input type="text" name="id" id="textfield" />
</p>
<p>商品名字:
<input type="text" name="tname" id="textfield2" />
</p>
<p>商品品牌:
<input type="text" name="tband" id="textfield3" />
</p>
<p>商品产地:
<input type="text" name="tchangdi" id="textfield4" />
</p>
<p>生产厂家:
<input type="text" name="tchangjia" id="textfield5" />
</p>
<p>备注:
<input type="text" name="tbeizhu" id="textfield5" />
</p> <p>&nbsp;</p>
<input type="submit" value="确定"/>
</form>
</body>
</html>

add 首页代码

6.AddServlet.jsp  这个文件一定要新建  ,不要拽,因为web.xml文件不会自动生成(严格来说新建的好)

 package servlet;

 import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import po.User; import dao.UserDAO;
import db.DbConn; public class AddServlet extends HttpServlet { /**
* Constructor of the object.
*/
public AddServlet() {
super();
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这样可以调用 可以和 提交方法无关 无论哪种提交都会处理一样的信息
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
// 获取提交的信息
String id=request.getParameter("id");
String tname=request.getParameter("tname");
String tband=request.getParameter("tband");
String tchangdi=request.getParameter("tchangdi");
String tchangjia=request.getParameter("tchangjia");
String tbeizhu=request.getParameter("tbeizhu"); //把获取的放进对象里面
// user 是各种数据字段
User u=new User();
u.setTname(tname);
u.setTband(tband);
u.setTchangdi(tchangdi);
u.setTchangjia(tchangjia);
u.setBeizhu(tbeizhu);
//新建数据处理对象 是为了调用这个UserDao 里面的 add 方法使用的 或其他方法使用的(增删改查登录等) 和数据库进行交互的的
UserDAO udao=new UserDAO();
//调用方法 成功返回1 不成功返回0
int n=udao.add(u);
if(n>0) {
out.println("tian success");
}
else
{
out.println("添加失败");
}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void init() throws ServletException {
// Put your code here
} }

AddServlet

注意:由于myeclipse 软件, 我在 执行中遇到打不来add.jsp

原因:1.重新配置需要 需要重启下tomcat

2.http://   这个要加上   http://127.0.0.1:8080/js185567/add.jsp

jsp实现增加数据功能的更多相关文章

  1. 前端通信:ajax设计方案(十)--- 完善Promise A+规范,增加mock数据功能

    半年不迭代,迭代搞半年,说的就是我,这里有点尴尬了,直接进入主题吧 我记得在这篇博客的时候集成了Promise的,不过那个时候就简简单单的写了一点最基础,在一些特殊的case上,还是有点问题的,所以才 ...

  2. (MVC)javaBaen+jsp+servlet对数据的操作

    运用MVC对数据进行一些简单的处理,基本实现数据的增删改查,达到前端和后台的数据之间的交互. 1.开始界面 <%@page import="com.zdsofe.work.Studen ...

  3. [更新]跨平台物联网通讯框架 ServerSuperIO v1.2(SSIO),增加数据分发控制模式

    1.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO) 2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案 3.C#工业 ...

  4. 如何Windows分页控件中增加统计功能

    在我的博客里面,很多Winform程序里面都用到了分页处理,这样可以不管是在直接访问数据库的场景还是使用网络方式访问WCF服务获取数据,都能获得较好的效率,因此WInform程序里面的分页控件的使用是 ...

  5. 为ecshop红包增加”转赠”功能

    ecshop促销中使用红包激励用户购物,要想炒热活动,红包就需要有物以稀为贵的感觉.有人求有人送,这样红包之间的转赠有助于拉动第二梯队的顾客.但是如果已经把红包添加到自己的账户了怎么办?如果ecsho ...

  6. 给ecshop后台增加管理功能页面

    给ecshop后台增加管理功能页面 比如我们增加一个统计报表叫做 物流费用统计报表 放在后台“报表统计”栏目中 具体操作步骤: 第一步,我们要添加一个菜单到后台,然后设置语言项,最后设置权限,这样,后 ...

  7. 学习ASP.NET Core Razor 编程系列九——增加查询功能

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  8. FPA笔记三 数据功能的识别

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://welkinhu.blog.51cto.com/447606/115477     ...

  9. jsp实现翻页功能

    jsp实现翻页功能 要实现翻页功能,只需要设置一个pageIndex即可,然后每次加载页面时通过pageIndex去加载数据就行. 那么我们可以设置一个隐藏的input框,用于传递pageIndex给 ...

随机推荐

  1. python写购物车小程序

    #!/usr/bin/env python3 # -*- coding:utf-8 -*- # @Author: Skyell Wang # @Time : 2018/5/22 15:50 # 基础要 ...

  2. 0818NOIP模拟测试25——B卷简记

    幸亏考场上没考这个,T1结论T2不会T3板子.估计会死的更惨 T1是学长讲过的Cat变式,沿直线y=x+1翻折方案数相减,现推,15分钟弄出来没什么问题. 只要不要把m,n读反就行. T3是个tarj ...

  3. m99 然而并没有想出来标题!

    这是放假回来的第一次考试,如同往常一样,我每逢放假回来第一次考试就会废掉,这次也不例外 这次不想粘成绩,因为实在是rp没了! 之前的几次都是别人在CE等等被lemon砍分,而我被lemon多测分. 但 ...

  4. Java操作数栈

    - 与局部变量表一样,均以字长为单位的数组.不过局部变量表用的是索引,操作数栈是弹栈/压栈来访问.操作数栈可理解为java虚拟机栈中的一个用于计算的临时数据存储区.- 存储的数据与局部变量表一致含in ...

  5. Unity中用Mesh画一个圆环(二)

    中目标-生成完整面 在之前的内容中我们已经成功生成了一个面,接下来我们要生成剩下的面就很容易了. 我们把之前生成的面当作顶面,接着我们来生成底面. 还记得前面说过\(\color{#1E90FF}{D ...

  6. Java 调用 Hbase API 访问接口实现方案

    HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...

  7. Spring Cloud gateway 七 Sentinel 注解方式使用

    Sentinel 注解支持 @SentinelResource 用于定义资源,并提供可选的异常处理和 fallback 配置项. @SentinelResource 注解包含以下属性: value:资 ...

  8. nyoj 51-管闲事的小明(遍历,比较)

    51-管闲事的小明 内存限制:64MB 时间限制:4000ms Special Judge: No accepted:9 submit:20 题目描述: 某校大门外长度为L的马路上有一排树,每两棵相邻 ...

  9. Python3.7.1(四) Print如何在输出中插入变量

    # 如果想在打印的字符串中的任意地方加入任意的变量,可以使用python的格式化输出.## 用例代码如下:s = 'Hello'x = len(s)print("The length of ...

  10. VS Code 之 Jupyter NoteBook 初试

    一.前言 在今年九月的 PyCon China 大会上,官宣了一项 VS Code Python 的全新功能:Visual Studio Code Python 插件将提供 Jupyter Noteb ...