个人觉得这种模式是MVC模式

1.      先写一个类,类里面有几个属性。

2.      写一个接口。里面有增删改查的方法。                   (写在service里)

3.      写一个类实现这个接口(实现里面的增删改查等操作)     (写在service里)

4.      连接数据库

5.      写 servlet操作,  处理增删改查的信息。

6.      Jsp页面 (写页面显示或者上传,添加的页面布局等)与servlet实现交互,从而实现以上功能。

增删改查具体实例如下————  具体代码:

XinxManager.java

package cn.hpu.service;

importjava.util.List;

importcn.hpu.gu.Xinx;

//定义接口 增删改查,获取表单信息,通过id获取信息等方法

public interfaceXinxManager{

public List<Xinx>getXinxs();

public boolean add(Xinx xin);

public boolean  del(String id);

public boolean update( Xinx xin);

public boolean select(String name,Stringpassword);

public Xinx  getXinxById(String id);

}

//定义一个类实现这个接口的方法

XinxManagerImp.Java

packagecn.hpu.service;

importjava.sql.Connection;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjava.util.ArrayList;

importjava.util.List;

importcn.hpu.gu.Xinx;

importcn.hpu.util.util;

importcom.mysql.jdbc.PreparedStatement;

public classXinxManagerImp  implements XinxManager{

//增加

public boolean add(Xinx xin) {

boolean          flag =  false;

//定义一个标志,赋值为false

Connection  conn = null;

PreparedStatement pst =null;

conn = util.getConnection();

String sql="insert into report(title,speaker ,address ,unit , time,content,dateposted)values(?,?,?,?,?,?,?)";

//几个参数几个问号,这里id设置的是自增的所以没必要添加

try{

conn = util.getConnection();

pst = (PreparedStatement)conn.prepareStatement(sql);

//pst.setString(1, xin.getId());

//pst.setInt(1, xin.getId());

//get所要添加的信息,set到数据库对应的位置

pst.seString(, xin.getTitle());

pst.setString(2, xin.getSpeaker());

pst.setString(3, xin.getAddress());

pst.setString(4, xin.getUnit());

pst.setString(5, xin.getTime().toString());

pst.setString(6, xin.getContent());

pst.setString(7,xin.getDateposted().toString());

//executeUpdate(sql)是更新数据,

//返回int类型是返回的更新了多少行,也就是受影响的行数,如果为0,则表示无更新

int rows = pst.executeUpdate();

if(rows>0)

{

flag=true;

}

}catch (Exception e) {

e.printStackTrace();

}finally{

util.close(pst, conn);

}

return flag;        //返回flag方便后面的获取

}

//删除

public boolean del(String id) {

boolean   flag = false;

Connection conn = null;

PreparedStatement pst = null;

conn = util.getConnection();

try{

String sql = "delete fromreport where id like?";

pst = (PreparedStatement)conn.prepareStatement(sql);

pst.setString(1, id);

int rows = pst.executeUpdate();

if(rows>0){

flag = true;

}

}catch (Exception e) {

e.printStackTrace();

}finally{

util.close(pst, conn);

}

return flag;

}

//查询

public List<Xinx> getXinxs() {

//用到了类型转换  (方法内定义的 public List<Xinx>getXinxs();)

List<Xinx> list = newArrayList<Xinx>();

Connection conn = null;

ResultSet rs = null;    //!!!!!!!

Statement stmt = null;

try{

conn = util.getConnection();

String sql = "select * fromreport";

//创建Statement (Sql语句的执行环境)

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

//executeQuery(StringsqlString)执行查询数据库的SQL,

//eg:SELECT语句,返回一个结果集(ResultSet)

while( rs.next()){     //!!!!

Xinx xin = new Xinx();

//查询。类的所有成员信息都set出来

xin.setId(rs.getString("id"));

//解读一下,请求获取 字符串,然后都set出来

xin.setSpeaker(rs.getString("speaker"));               xin.setAddress(rs.getString("address"));

xin.setTitle(rs.getString("title"));

xin.setTime(rs.getString("time"));

xin.setContent(rs.getString("content"));

xin.setUnit(rs.getString("unit"));

xin.setDateposted(rs.getString("dateposted"));

list.add(xin);   //!!!!!!

}

}catch (Exception e) {

e.printStackTrace();

}finally{

util.close(rs, stmt, conn);

}

return list;

}

//修改

public boolean update(Xinx xin){

boolean flag = false;

Connection conn = null;

java.sql.PreparedStatement pst =null;

conn = util.getConnection();

String sql= "update report settitle=?,speaker=?,address=?,unit=?,time=?,content=?,dateposted=? where id ="+xin.getId();     //where id =?";  (两个是一个意思,自where后的东西,是可以替换的,下面会稍作修改,因为多了一个问号)

try{

pst =conn.prepareStatement(sql);

pst.setString(1,xin.getTitle());

pst.setString(2,xin.getSpeaker());

pst.setString(3,xin.getAddress());

pst.setString(4,xin.getUnit());

pst.setString(5,xin.getTime());

pst.setString(6, xin.getContent());

pst.setString(7,xin.getDateposted());

//如果不加这个会出错(Statement parameter 8 not set.)说为设置,所以如果用问号,那就几个问号,设计几个Statement parameter。

//pst.setString(8, xin.getId());

int  rows = pst.executeUpdate();

if(rows>0)

{flag = true;}

}catch (Exception e)

{

e.printStackTrace();

}

finally

{

util.close(pst, conn);

}

return flag;

}

//根据id查询它的所有信息

public Xinx getXinxById(String id) {

Connection conn = null;

ResultSet rs = null;

Statement  stmt = null;

Xinx xin = new Xinx();

try{

conn = util.getConnection();

String sql = "select * from report whereid ="+id;

stmt = conn.createStatement();

rs =  stmt.executeQuery(sql);

while(rs.next())

{

//测试一下看看获取id了木有

System.out.println(rs.getString("id")+"通过id查询信息");

if(rs.getString("id").equals(id)) {

//查询  显示出来

xin.setId(rs.getString("id"));

xin.setTitle(rs.getString("title"));

xin.setSpeaker(rs.getString("speaker"));

xin.setAddress(rs.getString("address"));

xin.setTime(rs.getString("time"));

xin.setContent(rs.getString("content"));

xin.setUnit(rs.getString("unit"));

xin.setDateposted(rs.getString("dateposted"));

}

}

}catch (Exception e)

{

e.printStackTrace();

}finally

{

util.close(rs, stmt, conn);

}

System.out.println(xin.getId());

return xin;

}

public boolean select(String name, Stringpassword) {

// TODO Auto-generated method stub

return false;

}

}

addServlet.java

packagecn.hpu.servlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

importcn.hpu.gu.Xinx;

importcn.hpu.service.XinxManager;

importcn.hpu.service.XinxManagerImp;

public classAddServlet extends HttpServlet {

public void doGet(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

//防止中文乱码,这样最保险

response.setContentType("text/html;chartset=utf-8");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

//   request.getParameter()获取jsp页面提交的数据

String  id = request.getParameter("id");

String title =request.getParameter("title");

String speaker = request.getParameter("speaker");

String address =request.getParameter("address");

String unit =request.getParameter("unit");

String time =request.getParameter("time");

String content =request.getParameter("content");

String dateposted = request.getParameter("dateposted");

Xinx xin = new Xinx();

//xin.setId(0);

xin.setTitle(title);

xin.setSpeaker(speaker);

xin.setAddress(address);

xin.setUnit(unit);

xin.setTime(time);

xin.setContent(content);

xin.setDateposted(dateposted);

XinxManager   xm = new XinxManagerImp();

boolean flag = xm.add(xin);

System.out.println("增加这里的"+flag);

if(flag == true )

//跟上面的意思是一样的if(flag)

{

//作用:增加成功后会调到一个页面,显示出来

Xinx xin1 = xm.getXinxById(id);

//通过id获的这组信息,用setAttribute传到表单页面

request.setAttribute("xin1", xin);

//在     login1.jsp显示新添加的信息,这样一目了然

request.getRequestDispatcher("login1.jsp").forward(request,response);

/*或者直接跳到主页面

//request.setAttribute("param","success");

System.out.println("添加成功");

//request.getRequestDispatcher("login.jsp").forward(request,response);

response.setContentType("text/html");

PrintWriter out =response.getWriter();

out.println("<!DOCTYPEHTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("<HTML>");

out.println("  <HEAD><TITLE>添加成功</TITLE></HEAD>");

out.println("  <BODY>");

out.println("添加成功!!!");

out.println("<a href ='login.jsp'> 返回主页面</a>");

out.println("  </BODY>");

out.println("</HTML>");

out.flush();

out.close();

*/

}else {

//request.setAttribute("param","failed");

System.out.println("添加失败");

//如果添加失败转发到原来的页面

request.getRequestDispatcher("add.jsp").forward(request,response);

}

}

}

<%@ page language="java"import="java.util.*,cn.hpu.gu.*" pageEncoding="utf-8"%>

<%

String path =request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

Login1.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP 'login1.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet"type="text/css" href="styles.css">

-->

</head>

<body>

<!--  修改成功! <a href="login.jsp">返回主界面</a>  -->

<h3>增加或者修改后的信息   | <a href="login.jsp">返回主界面</a>  </h3>

<table border="1"cellpadding="0" cellspacing="0"width="80%" align="center">

<tr>

<!--   <th>序号</th>-->

<th>题目</th>

<th>主讲</th>

<th>地址</th>

<th>主讲人单位</th>

<th>时间</th>

<th>内容</th>

<th>发布时间</th>

<th>操作</th>

</tr>

<%

//   XinxManager xm= new XinxManagerImp();

// List<Xinx> list = xm.getXinxs();

//  if(list!=null)

// {

//    for(int i=0; i<list.size(); i++)

// {

//   Xinx xin =list.get(i);

Xinx xin =(Xinx)request.getAttribute("xin1");

if(xin!=null)

{

%>

<tr>

<!--  <td><%=xin.getId()%></td>-->

<td><%=xin.getTitle() %></td>

<td><%=xin.getSpeaker() %></td>

<td><%=xin.getAddress()%></td>

<td><%=xin.getUnit() %></td>

<td><%=xin.getTime() %></td>

<td><%=xin.getContent() %></td>

<td><%=xin.getDateposted()%></td>

<td>

<a href="DelServlet?id=<%=xin.getId() %>">删除</a>

<a href="UpdateServlet1?id=<%=xin.getId() %>">修改</a>

<!-- 点击修改,执行UpdateServlet1,通过id获取要修改的信息,,,转到-->

</td>

</tr>

<%

//    }

}

%>

</table>

</body>

</html>

DelServlet.Java

packagecn.hpu.servlet;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcn.hpu.service.XinxManager;

importcn.hpu.service.XinxManagerImp;

public classDelServlet extends HttpServlet {

public void doGet(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

String id =request.getParameter("id");

XinxManager  xm = new XinxManagerImp();

boolean flag = xm.del(id);

if(flag == true)

{

response.sendRedirect("login.jsp");

}

}

}

Search.java   查询的servlet

packagecn.hpu.servlet;

importjava.io.IOException;

importjava.sql.ResultSet;

importjava.util.List;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

importorg.omg.PortableServer.ForwardRequest;

importcn.hpu.gu.Xinx;

importcn.hpu.service.XinxManager;

importcn.hpu.service.XinxManagerImp;

public classSearch extends HttpServlet {

public void doGet(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

XinxManager xm = new XinxManagerImp();

List<Xinx>  list =xm.getXinxs();

request.setAttribute("list", list);

//转发

request.getRequestDispatcher("login.jsp").forward(request,response);

}

}

Login.jsp

<%@ page language="java"import="java.util.*,cn.hpu.gu.*" pageEncoding="utf-8"%>

<%@page import="cn.hpu.service.XinxManager"%>

<%@page import="cn.hpu.service.XinxManagerImp"%>

<%

String path =request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>管理员操作页面</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet"type="text/css" href="styles.css">

-->

</head>

<h2>管理信息</h2>

欢迎${sessionScope.loginuser}登陆

<!--

request.getSession().getAttribute() 与${sessionScope}  它们都是取值的,

前面的是java代码,写在java源文件中,或者jsp的<%%>中

后面的属于表达式,直接嵌在HTML代码中取值

-->

<a href="add.jsp">添加学生</a>  <a href= "index.jsp">退出</a>

<hr/>

<body>

<table border="1"cellpadding="0" cellspacing="0"width="80%" align="center">

<tr>

<!--   <th>序号</th>-->

<th>题目</th>

<th>主讲</th>

<th>地址</th>

<th>主讲人单位</th>

<th>时间</th>

<th>内容</th>

<th>发布时间</th>

<th>操作</th>

</tr>

<%

XinxManager xm = new XinxManagerImp();

List<Xinx> list = xm.getXinxs();

if(list!=null)

{

for(int i=0; i<list.size(); i++)

{

Xinx xin = list.get(i);

%>

<tr>

<!--  <td><%=xin.getId()%></td>-->

<td><%=xin.getTitle() %></td>

<td><%=xin.getSpeaker() %></td>

<td><%=xin.getAddress()%></td>

<td><%=xin.getUnit() %></td>

<td><%=xin.getTime() %></td>

<td><%=xin.getContent() %></td>

<td><%=xin.getDateposted()%></td>

<td>

<a href="DelServlet?id=<%=xin.getId() %>">删除</a>

<a href="UpdateServlet1?id=<%=xin.getId() %>">修改</a>

<!-- 点击修改,执行UpdateServlet1,通过id获取要修改的信息,,,转到-->

</td>

</tr>

<%

}

}

%>

</table>

</body>

</html>

UpdateServlet1.java

packagecn.hpu.servlet;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcn.hpu.gu.Xinx;

importcn.hpu.service.XinxManager;

importcn.hpu.service.XinxManagerImp;

public classUpdateServlet1 extends HttpServlet {

//通过login.jsp中的修改跳这,(获取数据库中要更改单的信息)

public void doGet(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

//通过id获取要修改的信息

String id =request.getParameter("id");

XinxManager  xm = new XinxManagerImp();

System.out.println("获取数据库中要更新id的所有信息"+id);

//调用XinxManagerImp.java里的方法

Xinx  xin = xm.getXinxById(id);

if(xin != null)

{

//通过id获得的xin的信息用setAttribute方法穿到表单中

request.setAttribute("xin",xin);

//跳转到更改页面

request.getRequestDispatcher("update.jsp").forward(request,response);              }

}

}

update.jsp

<%@ page language="java"import="java.util.*,cn.hpu.gu.*" pageEncoding="utf-8"%>

<%

String path =request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>修改页面</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet"type="text/css" href="styles.css">

-->

</head>

<%

//表单中通过getAttribute获取setAttribute 传来的xin的信息

Xinx xin =(Xinx)request.getAttribute("xin");

%>

<body>

<h1>修改信息</h1>

<hr/>

<!-- 然后用 xin.getSpeaker() 等分别获的各自对应位置的数据-->

<form action="UpdateServlet"method="post">

<table>

<!--让id跟着表单一快传过去,id设置了style="display: none;"表单页面中id被隐藏看不到-->

<input name="id" type="text" value="<%=xin.getId()%> " style="display: none;"/>

<tr align="left"> <th> 题  目</th>

<th><input name="title" type="text"value="<%=xin.getTitle()%>"></th>

</tr>

<tr align="left"><th> 主  讲</th>

<th><input name="speaker"type="text"  value="<%=xin.getSpeaker() %>"></th>

</tr>

<tr align="left">

<th> 地  址</th> <th><input name="address"type="text" value="<%=xin.getAddress()%>"> </th>

</tr>

<tr align="left">

<th>主讲人单位</th> <th><input name="unit"type="text" value="<%=xin.getUnit() %> "></th>

</tr>

<tr align="left">

<th> 时  间</th> <th><input name="time"type="date" value="<%=xin.getTime() %> "></th>

</tr>

<tr align="left">

<th>  内  容</th> <th ><input name="content"type="text" value=" <%=xin.getContent() %> "></th>

</tr>

<tr align="left">

<th>发布时间</th> <th><input name="dateposted" type="date" value=" <%=xin.getDateposted()%>"></th>

</tr>

<tr align="left">

<th><input type="submit"value=" 修改" /></th>

</tr>

</table>

</form>

<!-- 在form表单中通过action="UpdateServlet" 将数据传到UpdateServlet中,,,转到-->

</body>

</html>

UpdateServlet.java

packagecn.hpu.servlet;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcn.hpu.gu.Xinx;

importcn.hpu.service.XinxManager;

importcn.hpu.service.XinxManagerImp;

public classUpdateServlet extends HttpServlet {

//进行数据库中信息修好,也就是重新获取修改后提交的信息

public void doGet(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequestrequest, HttpServletResponse response)

throws ServletException,IOException {

response.setContentType("text/html;chartset=utf-8");

response.setCharacterEncoding("utf-8");

request.setCharacterEncoding("utf-8");

//request.getParameter()方法是获取Http(这里是更改表单)提交过来的数据

String id = request.getParameter("id");

String title =request.getParameter("title");

String speaker =request.getParameter("speaker");

String address =request.getParameter("address");

String unit =request.getParameter("unit");

String time = request.getParameter("time");

String content =request.getParameter("content");

String dateposted =request.getParameter("dateposted");

XinxManager xm = newXinxManagerImp();

Xinx xin = new Xinx();

//将新数据set进去。。。

xin.setId(id);

xin.setTitle(title);

xin.setSpeaker(speaker);

xin.setAddress(address);

xin.setUnit(unit);

xin.setTime(time);

xin.setContent(content);

xin.setDateposted(dateposted);

//调用update(Xinxxin)方法{里面将get的新数据信息,再set到数据库中,从而完成修改}

boolean flag = xm.update(xin);

System.out.println("修改后提交的信息"+id);

if(flag == true)

{

//例子

//Student stu1 = sm.getStudentById(id);

//request.setAttribute("stu1",stu1);

Xinx xin1 = xm.getXinxById(id);

request.setAttribute("xin1",xin);

request.getRequestDispatcher("login1.jsp").forward(request,response);

System.out.println(xin.getId()+"9999999999999");

//request.getRequestDispatcher("login.jsp").forward(request,response);

}else

{

}

}

}

servlet+jsp数据库增删改查实例相关推荐

  1. c# 操作oracle数据库,C#连接oracle数据库增删改查实例

    [实例简介] C#连接oracle数据库,增删改查实例,OracleParameter防Sql注入等,适用于新手学习 [实例截图] [核心代码] 5868e8be-414a-4138-8390-2fb ...

  2. IntelliJ Idea SpringBoot 数据库增删改查实例

    . ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \\\\( ( )\___ | '_ | '_| | '_ \/ _` | \\\\ \\/ ___)| | ...

  3. VS2022,C#中对PostgreSQL数据库增删改查实例记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.c#在VS中连接PostgreSQL数据库 二.使用步骤 1.引入库 2.设置连接 3.然后新建一个类文件,开始写 ...

  4. thinkphp3.2.3版本的数据库增删改查实例

    框架thinkphp 版本:3.2.3 内容:数据库操作 1.多表查找一条数据 M('a表')->join("b表 on b表.id=a表.id")->where('条 ...

  5. java servlet dao_Java+MyEclipse+Tomcat 详解Servlet和DAO数据库增删改查操作(源码)

    [实例简介] 该资源主要参考自己的博客http://blog.csdn.net/eastmount/article/details/45936121 讲诉Java+MyEclipse+Tomcat 详 ...

  6. Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

    此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...

  7. servlet mysql insert_servlet+mybatis 实现mysql的增删改查实例

    古人云:温故而知新.趁周末,重新来学习了一遍servlet + mybatis 实现mysql的增删改查,算是对自己学习的一个总结和记录. 开门见山,首先我们来看一下项目目录结构: 不难发现这是一个m ...

  8. 基于JSP的数据库增删改查实现

    基于JSP的数据库增删改查实现 一.JAVA包的设计 包 类 方法 entity PM25 Set,get dao BaseDao getConnection,close PM25Dao findAl ...

  9. 用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例

    用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例.web服务用flask框架,数据库操作用的pymysql框架.教程在我B站有的. 开源地址:https://git ...

最新文章

  1. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl
  2. Java Web开发中路径问题小结
  3. 温度自动调节 c语言编写,室内温度自动调节控制系统课程设计(26页)-原创力文档...
  4. 开发chrome插件(扩展)
  5. 为何说国内云桌面已经步入成熟期
  6. iphone模拟器快捷键使用
  7. Qt笔记-Linux程序打印带颜色的字符串
  8. gm(GraphicsMagick)图片中文水印乱码问题
  9. LeetCode(929)——独特的电子邮件地址(JavaScript)
  10. 复杂网络代码_据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?...
  11. 11款企业网络运维监控软件汇总介绍-行云管家
  12. 云计算是什么?云计算开发学习路线
  13. 关于VirtualBox运行出现“0x00000000指令引用的0x00000000内存。该内存不能为written”的解决方法
  14. 以计算机的发展写一篇英语作文,写一篇关于网络的英语作文
  15. JAVAer要了解的掌故
  16. 一淘报告引发2012电商首战 当当再战京东
  17. 大V推荐!Python之初识Web,打造属于你的个人品牌
  18. oracle判断是否是手机号码,oracle存储过程判断手机号码和固话
  19. openstack从iso创建虚拟机
  20. 压缩文件打开其中“中文”文件名乱码

热门文章

  1. 子曾经曰过,不是想要轻言放弃,只是已经没有坚持下去的理由
  2. 海伦公式的证明——杨子曰数学
  3. 高德地图 获取不到dom节点_地图市场大浪淘沙,新老图商谁将扛起未来发展大旗?...
  4. 三十九、Fluent时间步长的估算与库朗数
  5. iOS-地理坐标转换,原生地图获取的原始坐标转换为地图真实坐标
  6. iphone与ipad历代分辨率
  7. html 中如何写js代码提示错误,javascript如何进行错误处理?
  8. 中国也曾有过贵族:春秋战国是其黄金时期
  9. 微信小程序入门教程---列表渲染多层嵌套循环及wx:key的使用(双层for循环)
  10. Apache 屏蔽YisouSpider一搜蜘蛛神马的方法