1.首先在newlist界面增加三个图表,带上事件

newlist.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*,java.text.*,com.xx17.cys.entity.*"
import="java.sql.*,org.apache.commons.dbcp2.*"
import="javax.naming.*,javax.sql.*" pageEncoding="UTF-8"%>
<%
//List<News> newslist = new ArrayList<News>();
List newslist = new ArrayList();
News news;
/*= new News(1,"今天是星期四","gfsggfsg",201,"2019-3-13",0);
newslist.add(news);
news = new News(2,"又可以上web课啦!","gfsggfshgffdhg",104,"2019-3-14",0);
newslist.add(news);
String newstitle[]={"今天是星期四!","又可以上web课啦!","下午公休,嘿嘿!","人生啊,如此艰难!","现在是上午9点20分"};
String newsdate[]={"2019-3-13","2019-3-14","2019-3-15","2019-3-16","2019-3-17"};
*/
/*数据库连接池*/
/*BasicDataSource ds = new BasicDataSource();
String url="jdbc:mysql://localhost:3306/bookstore?user=root&password=caiyishuai";
url += "&useUnicode=true&characterEncoding=utf8";
ds.setDriverClassName(url);
ds.setUsername("root");
ds.setPassword("caiyishuai");
ds.setMaxTotal(30);
ds.setMinIdle(5);
ds.setMaxWaitMillis(10000);
ds.setRemoveAbandonedTimeout(100);
ds.setRemoveAbandonedOnBorrow(true);
ds.setRemoveAbandonedOnMaintenance(true);
*/ /*使用静态数据库连接池*/
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/bookstore"); //建立连接池连接
Connection conn = ds.getConnection(); /*Class.forName("com.mysql.jdbc.Driver"); ////驱动程序名
String url = "jdbc:mysql://localhost:3306/bookstore"; //数据库名
String username = "root"; //数据库用户名
String password = "caiyishuai"; //数据库用户密码
Connection conn = DriverManager.getConnection(url, username, password); //连接状态*/ if(conn != null){
out.print("数据库连接成功!");
Statement stmt = conn.createStatement();
//创建结果集合,集合与表的结构类似
ResultSet rs = stmt.executeQuery("select * from t_news");
//rs.last
//out.println("记录数:"+rs.getRow());
while(rs.next()){
//System.out.println("rs"+rs);
news = new News(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(5),rs.getString(4),1);
newslist.add(news);
}
} /*建立连接
Connection conn = DriverManager.getConnection(url);
创建语句环境
Statement stmt = conn.createStatement();
创建结果集合,集合与表的结构类似
ResultSet rs = stmt.executeQuery("select * from t_news");
rs.last
out.println("记录数:"+rs.getRow());
Class.forName("com.mysql.jdbc.Driver").newInstance();
com.mysql.jdbc.Driver d = new com.mysql.jdbc.Driver
String url="jdbc:mysql://localhost:3306/bookstore?"
+"user=root&password=caiyishuai&useUnicode=true&characterEncoding=utf8";
List<News> newslist = new ArrayList<News>();
News news;
while(rs.next()){
news = new News(1,rs.getString(1),rs.getString(2),rs.getInt(4),rs.getString(3),1);
newslist.add(news);
}*/
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新闻列表</title>
</head>
<body>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<jsp:include page="head.jsp?col=1"></jsp:include>
<div id="main" class="layout">
<%
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日");
java.util.Date today = new java.util.Date();
out.print(formatter.format(today));
//out.print(today.toLocaleString());
//int id =Integer.parseInt(str);
%>
<table width="1000" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
<tr>
<th>序号</th>
<th>标题</th>
<th>日期</th>
<th>点击</th>
<th></th>
</tr>
<% String[] color={"red","orange","yellow","green","blue","purple","pink","black","brown"};%>
<% for(int font_size=1;font_size<7;font_size++) {%>
<br>
<font color="<%= color[font_size-1] %>" size="<%= font_size %>">
智慧的帅帅,么么哒!
</font>
<%}
News n;
%> <% for(int i=0;i<newslist.size();i++){
n=(News)newslist.get(i);%>
<tr>
<td><%=i+1%></td>
<td><a href="news.jsp?nid=<%=n.getNews_id()%>">
<%=n.getNews_title()%></a></td>
<td><%=n.getNews_date()%></td>
<td><%=n.getNews_read()%></td>
<td>
<a href="addnews.do?action=mod&nid=<%=n.getNews_id()%>">
<img src="data:images/mod.png" width=40 >
</a>
<a href="addnews.do?action=del&nid=<%=n.getNews_id()%>">
<img src="data:images/del.png" width=40>
</a>
</td>
</tr>
<%} %>
</table>
<a href="addnews.do?action=add"><img src="data:images/new.png" width=40 ></a>
</div>
<%@ include file="foot.jsp" %>
</body>
</html>

2.在NewsServlet,java里写判断条件等等

package com.xx17.cys.servlet;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.xx17.cys.entity.News;
import com.xx17.cys.javabean.NewsBean; /**
* Servlet implementation class NewsServlet
*/
@WebServlet("/addnews.do")
public class NewsServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public NewsServlet() {
super();
// TODO Auto-generated constructor stub
} protected void addNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher rd;
rd = request.getRequestDispatcher("addNews.jsp");
rd.forward(request, response); } protected void modNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String nid = request.getParameter("nid");
NewsBean nb = new NewsBean();
News news = nb.getNewsById(nid); request.setAttribute("news", news);
RequestDispatcher rd;
rd = request.getRequestDispatcher("modnews.jsp");
rd.forward(request, response);
} protected void delNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String nid = request.getParameter("nid");
NewsBean nb = new NewsBean();
nb.del(nid); RequestDispatcher rd;
rd = request.getRequestDispatcher("newslist.jsp");
rd.forward(request, response);
} protected void getNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void insNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nt = request.getParameter("ntitle");
String nc = request.getParameter("ncontent");
String ntop = request.getParameter("ntop");
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nd = sdf.format(now);
int nr = 100;
NewsBean nb = new NewsBean();
nb.add(nt,nc,nd,nr,ntop); response.sendRedirect("newslist.jsp");
/*RequestDispatcher rd;
rd = request.getRequestDispatcher("newslist.jsp");
rd.forward(request, response);*/ }
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String act = request.getParameter("action");
if(act.equals("add")) {
addNews(request, response);
}else if(act.equals("mod")) {
modNews(request, response);
}else if(act.equals("del")) {
delNews(request, response);
}else if(act.equals("show")) {
getNews(request, response);
}else if(act.equals("save")) {
insNews(request, response);
}
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

3.增加新闻,点击后跳转到addNews.jsp界面 

addNews.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<jsp:include page="head.jsp?col=1"></jsp:include>
<div style="width:1000px; margin:auto; heigth:500px;">
<form action="addnews.do?action=save" method="post">
<table width="1000" border="1" cellpadding="5">
<tr>
<td width="200">标题:</td>
<td width="800"><input name="ntitle" size="80"></td>
</tr>
<tr>
<td>内容:</td>
<td><textarea name="ncontent" cols="80" rows="10"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="checkbox" name="ntop" value="1">置顶</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="保存">
<input type="button" value="返回" onclick="location.href='newslist.jsp'">
</td>
</tr>
</table>
</form>
</div>
</body>
<%@ include file="foot.jsp" %>
</html>

NewsBean.java

package com.xx17.cys.javabean;

import java.sql.ResultSet;

import com.xx17.cys.entity.News;

public class NewsBean {

    public void add(String nt, String nc, String nd, int nr, String ntop) {
String sql = "insert into t_news(ntitle,ncontent,ndate,";
sql += "nread,ntop) values('"+nt+"','"+nc+"','"+nd;
sql += "',"+nr+","+ntop+")";
System.out.println("here: "+sql); DBBean db = new DBBean();
db.getConnection();
db.executeUpdata(sql);
} public News getNewsById(String nid) {
News n = new News();
String sql = "select * from t_news where nid="+nid;
DBBean db = new DBBean();
db.getConnection(); ResultSet rs = db.executeQuery(sql);
try {
if(rs.next()) {
n.setNews_id(rs.getInt(1));
n.setNews_title(rs.getString(2));
n.setNews_content(rs.getString(3));
n.setNews_top(rs.getInt(6));
}
}catch(Exception e) {
e.printStackTrace();
} return n;
} public void del(String nid) {
String sql = "delete from t_news where nid="+nid;
System.out.println("here: "+sql); DBBean db = new DBBean();
db.getConnection();
db.executeUpdata(sql);
} }

DBBean.java

package com.xx17.cys.javabean;

import java.sql.*;
import javax.naming.*;
import javax.sql.*; public final class DBBean { private Connection conn;
private Statement stmt;
private ResultSet rs; public DBBean() { } //建立数据库连接
public Connection getConnection() { try {
/*使用静态数据库连接池*/
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/bookstore");
//建立连接池连接
conn = ds.getConnection();
}catch(Exception e) {
e.printStackTrace();
} return conn;
} // 提取SQL生成记录集
public ResultSet executeQuery(String sql) {
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
System.out.println("返回结果集");
}catch(Exception e) {
e.printStackTrace();
} return rs;
} // 提取SQL添加记录
public int executeUpdata(String sql){
int result = 0; try{
stmt = conn.createStatement();
System.out.println(sql);
result = stmt.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
} return result; }
}

3.删除数据

Web jsp开发学习——连接数据库,数据的增加和删除的更多相关文章

  1. Web jsp开发学习——网上直播聊天室的简单开发

    整个界面为chat.jsp: 如果用户没有登录,就不能进行聊天. 为将发言的句子传到页面上,要设置一个<iframe></iframe>虚拟框架,将allmessage.jsp ...

  2. Web jsp开发学习——Servlet提交表单时用法

     实现提交表单以后判断输入的信息是否符合条件    若符合条件   先新建servlet  Sevlet的两种声明方式,二选一即可  再到web.xml里注册   register.jsp就是表单的界 ...

  3. Web jsp开发学习——数据库的另一种连接方式(配置静态数据库连接池)

    1.导包   2.找到sever里的sever.xml,配置静态数据库连接池 <Context docBase="bookstore" path="/booksto ...

  4. Web jsp开发学习——终极解决jsp中request和response中文乱码的问题(加个过滤器)

    中文乱码真的很烦人的.而且每次都要写,可麻烦了,而且有时候写了还不一定管用,所以我们可以试试过滤器 1.每个jsp头上当然要写上utf8啦 <%@ page language="jav ...

  5. Web jsp开发学习——前端后台传参方法

    一.前端传后台: 1.1表单数据的传递   前端的表单里定义名字name   后台通过名字获取输入的值         1.2页面点击了哪个按钮传递 登录注销的另一种方式   点击登录的地方设置参数 ...

  6. Web jsp开发学习——实现页面跳转和传参

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcepti ...

  7. Web jsp开发学习——点击菜单页面切换

      两个网页使用同一个head,在点击“首页”后,head的“首页”变成绿色,点击“新闻”后,head的“新闻”变成绿色,head的“首页”恢复原来的颜色   head.jsp <%@ page ...

  8. Web jsp开发学习——新建一个项目

    然后 index.jsp编辑   新建一个servlet             准备发布      发布

  9. Web jsp开发学习——dbcp jsp连接MySQL出现中文乱码解决

    开发过程中,通过dbcp.properties连接MySQL数据库,向数据库中插入中文字符时,出现乱码情况. 通过查阅资料,发现出现乱码的原因:MySQL数据库使用的是UTF-8编码,而dbcp.pr ...

随机推荐

  1. String类型为什么不可变

    在学习Java的过程中,我们会被告知 String 被设计成不可变的类型.为什么 String 会被 Java 开发者有如此特殊的对待?他们的设计意图和设计理念到底是什么?因此,我带着以下三个问题,对 ...

  2. Dijkstra 优先队列优化

    #include <iostream> #include <queue> #include <vector> using namespace std; ; stru ...

  3. D - A or...or B Problem

    题意:给定A,B,问[A,B]里取任意个数按位或,结果有多少种. 思路:这题需要找出一个分界点,即找到最高位的B是1,A是0的位置x(最低位从0开始),那么对于所有OR的结果,x处要么是1要么是0,x ...

  4. Appium简介以及环境安装

    官网地址 Appium 是一个自动化测试开源工具,支持多平台上的原生应用,web应用和混合应用,是由appium server和appium Client两部分组成通过json wire protoc ...

  5. ASP.netMVC验证码

    .复制下列代码,拷贝到控制器中. #region 生成验证码图片 // [OutputCache(Location = OutputCacheLocation.None, Duration = 0, ...

  6. Python之threading模块的使用

    作用:同一个进程空间并发运行多个操作,专业术语简称为:[多线程] 1.任务函数不带参数多线程 #!/usr/bin/env python # -*- coding: utf-8 -*- import ...

  7. Battle ships HDU - 5093二分匹配

    Battle shipsHDU - 5093 题目大意:n*m的地图,*代表海洋,#代表冰山,o代表浮冰,海洋上可以放置船舰,但是每一行每一列只能有一个船舰(类似象棋的車),除非同行或者同列的船舰中间 ...

  8. 医院设置x

    医院设置x   题目描述 Description 设有一棵二叉树,如下图 其中,圈中数字表示结点居民的人口.圈边上数字表示结点编号,.现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小, ...

  9. TensorFlow使用记录 (十二): ℓ1 and ℓ2 Regularization

    实现方式 以 ℓ2 Regularization 为例,主要有两种实现方式 1. 手动累加 with tf.name_scope('loss'): loss = tf.losses.softmax_c ...

  10. python-matplotlib-2

    figure的使用 x = np.linspace(-1, 1, 50) y1 = 2 * x + 1 #figure 1 plt.figure() plt.plot(x, y1) # figure ...