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. 配置Spring Boot 跨域后PUT,DELETE方法出现403Forbidden

    配置类 @Configuration public class CorsConfiguration { @Bean public WebMvcConfigurer corsConfigurer() { ...

  2. 分布式id生成方案总结

    本文已经收录自 JavaGuide (60k+ Star[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.) 本文授权转载自:https://juejin.im/post/ ...

  3. 关于之前玩emacs记的些笔记

    移动 C-v 向前翻页 M-v 向后翻页 C-l 当前行居中显示 继续按会依次到上,下,中   C-x C-c 退出 C-g    退出一个正在运行的命令,还可以取消数字参数和只输入到一半的命令   ...

  4. nginx篇中级用法之反向代理(七层调度)

    环境: 两台后端web,一台代理服务器 web1:eth0:192.168.2.100/24   httpd做一个web web2:eth0:192.168.2.200/24   httpd做一个we ...

  5. Go 程序的性能监控与分析 pprof

    你有没有考虑过,你的goroutines是如何被go的runtime系统调度的?是否尝试理解过为什么在程序中增加了并发,但并没有给它带来更好的性能?go执行跟踪程序可以帮助回答这些疑问,还有其他和其有 ...

  6. mysql group by使用方法注意

    mysql group by使用方法注意 group by 后面只用能用having 不能加 where等域名

  7. JavaScript闭包使用姿势指南

    目录 JavaScript闭包使用姿势指南 引言 闭包的定义 来个有趣的例子吧 现在我们换个例子吧 我们再来个有趣的例子 内存泄露问题 用闭包解决递归调用问题 用闭包模拟私有方法 在循环中使用闭包 性 ...

  8. 原来JS是这样的 - 原型链

    上一篇提到属性描述符 [[Get]] 和 [[Put]] 以及提到了访问描述符 [[Prototype]],看它们的特性就会很容易的让人想到经典的面向对象风格体系中对类操作要做的事情,但带一些 int ...

  9. oracle基础(基本介绍)

    数据库 磁盘上存储的数据的集合 在物理上表现为数据文件.日志文件和控制文件等 在逻辑上以表空间形式存在 必须首先创建数据库,然后才能使用Oracle 数据库实例 每个启动的数据库都对应一个数据库实例, ...

  10. 简单的倒叙应用---倒序打印字符串(C语言)

    void reverseStr(char* str){ if(*str=='\0'){ return; } reverseStr(str+1); printf("%c\n",*st ...