上一次的文章,我们讲解了如何用JAVA访问MySql数据库,对数据进行增加删除修改查询。那么这次我们把具体的页面的数据库操作结合在一起,进行一次简单的学生信息操作案例。

  首先我们创建一个专门用于学生管理的ManageServlet。

  

  接着我们需要一个展现数据的页面,也就是 UserList.jsp

<%@page import="com.babybus.sdteam.vo.Student"%>
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
  String path = request.getContextPath();
  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 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>
<body>
  <%=basePath %>
  <table border="1" width="100%" >
  <tr>
    <th>uid</th>
  <th>学生姓名</th>
  <th>年龄</th>
<th>班级</th>
<th>操作</th>
  </tr>
  <%
// 获取学生列表数据
List<Student> lsUser=(List)request.getAttribute("students");
if(lsUser==null||lsUser.size()==0){
    pageContext.setAttribute("theUser","1");
}else{
  // 遍历列表生成表格数据
   for(int i=0;i<lsUser.size();i++){
      pageContext.setAttribute("theUser",lsUser.get(i));
%>
<tr>
    <td>${theUser.id}</td>
     <td>${theUser.studentname}</td>
  <td>${theUser.age}</td>
  <td>${theUser.classname}</td>
    <td>
    <a href="AddUser.jsp?id=${theUser.id}">修改<a/>|
  <a href="Mangage?method=del&userid=${theUser.id}" onclick="return confirm('确定要删除么?')" }>删除</a>
  </td>
</tr>
<%
   }
}
%>
</table>
             <a href="AddUser.jsp">增加<a/>
</body>
</html>

  接下来我们需要一个进行增加修改的页面AddUser.jsp

<%@page import="com.babybus.sdteam.bo.ManageServlet"%>
<%@page import="com.babybus.sdteam.vo.Student"%>
<%@page import="com.babybus.sdteam.bo.LoginServlet"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
     <title>My JSP 'AddUser.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="学生信息管理">
  <link rel="stylesheet" type="text/css" href="styles.css">
  </head>
  <body>
  <%
  String id= request.getParameter("id");
   if(id!=null){
    ManageServlet loginServlet =new ManageServlet();
    Student student = loginServlet.getStudentById(id);
    pageContext.setAttribute("theUser",student);
    pageContext.setAttribute("method","update");
    pageContext.setAttribute("title","修改");
  }
  else{
    pageContext.setAttribute("method","add");
    pageContext.setAttribute("title","添加");
  }
  %>
  <form action="Mangage?method=${method}" method="post" >
  <input type="hidden" name="userid" value="${theUser.id}">
  <table width="100%" height="200px" border="1">
  <tr>
    <td colspan="2">${title}</td>
  </tr>
  <tr>
    <td align="right">学生名</td>
    <td>
  <input type="text" name="studentname" value="${theUser.studentname}">
</td>   
</tr>
  <tr>
    <td align="right">年龄:</td>
    <td> 
  <input type="text" name="age" value="${theUser.age}">
</td>   
</tr>     
<tr>
    <td align="right">班级:</td>
    <td> 
  <input type="text" name="classname" value="${theUser.classname}">
</td>   
</tr>
  <tr>
    <td colspan='2' align="center">     
  <input type="submit" value="保存" name="btnSubmit">        
  <input type="reset" value="重置" name="btnCancel">     
</td>
  </tr>
</table>
</form>
  </body>
</html>

  有了页面支撑,我们需要后台的Servlet进行数据处理转发

/**
* 业务处理
* @param req
* @param rep
* @throws IOException
* @throws ServletException
*/
public void process(HttpServletRequest req,HttpServletResponse rep) throws ServletException, IOException {
  String method = req.getParameter("method");
  System.out.println("操作:" + method);
  Student student = new Student();
  if(!"del".equals(method)) {
    // 进行编码转换,避免中文乱码
    String studentname = new String(req.getParameter("studentname").getBytes("ISO-8859-1"),"utf-8");
    int age = Integer.parseInt(req.getParameter("age"));
    String classname = new String(req.getParameter("classname").getBytes("ISO-8859-1"),"utf-8");
    student.setStudentname(studentname);
    student.setAge(age);
    student.setClassname(classname);
  }   StudentDao dao = new StudentDao();
  // 修改
  if("update".equals(method)) {
    String id = req.getParameter("userid");
    student.setId(Integer.parseInt(id));
    try {
      dao.updateStudent(student);
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  // 增加
  else if("add".equals(method)) {
    try {
      dao.insertStudent(student);
    } catch(SQLException e) {
      e.printStackTrace();
    }
  }
  // 删除
  else if("del".equals(method)) {
    try {
      String id = req.getParameter("userid");
      dao.deleteStudent(Integer.parseInt(id));
    }catch (SQLException e) {
      e.printStackTrace();
    }
  }   ManageServlet manageservlet = new ManageServlet();
  // 获取全部列表
  List<Student> resultlist = manageservlet.getStudentByCondition(null);
  req.setAttribute("students", resultlist);
  RequestDispatcher dispatcher = req.getRequestDispatcher("UserList.jsp");
  dispatcher.forward(req, rep);
}

  上面就是全部的增加删除修改的代码。下面给出两个页面的截图效果

  通过上面的例子我们就可以很好的掌握了J2EE的入门

结语

  • 受益,掌握了J2EE的入门

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)

转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4579275.html

[JavaWeb基础] 004.用JSP + SERVLET 进行简单的增加删除修改的更多相关文章

  1. javaweb练手项目jsp+servlet简易购物车系统

    简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...

  2. jsp/servlet实现简单上传和下载

    使用JSP/Servlet简单实现文件上传与下载 jsp上传页面代码: <%@ page language="java" import="java.util.*&q ...

  3. javaweb基础(22)_Servlet+JSP+JavaBean实战登陆

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  4. IDEA+JSP+Servlet+Tomcat简单的登录示例

    1.用IDEA新建Java WEB项目并配置Tomcat 这一部分可以参考之前的一篇随笔 https://www.cnblogs.com/lbhym/p/11496610.html 2.导入Servl ...

  5. jsp+servlet+mysql简单实现用户登陆注册

    原码,项目中遇到的错误,解决方法,文章最后有链接可以获取 项目简介 *有的网友说在修改和删除时会触发error,建议各位不要去把用户名命名为中文! 功能描述 登陆,注册,用户一览表,修改,删除,添加, ...

  6. jsp+servlet的简单实现

    开发环境 tomcat7.0,MyEclipse 10 1.建一个简单的Web Project ,项目名jspServlet: 2.在src目录下建一个package ,为com.fandy.serv ...

  7. [JavaWeb基础] 007.Struts2的配置和简单使用

    1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller), ...

  8. JSP+Servlet+mysql简单示例【图文教程】

    下载MYSQL:http://dev.mysql.com/downloads/ 下载安装版的 然后安装(安装步骤就不详细说了) 安装好之后,点击托盘图标,打开管理工具 创建一个数据库   数据库的名字 ...

  9. [JavaWeb基础] 006.Struts1的配置和简单使用

    1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller), ...

随机推荐

  1. Jenkins 部署(基于 windows)

    一.安装 jdk,配置环境变量 二.安装 tomcat 和 jenkins 1.检查电脑上 8080 端口是否被占用: 命令行中输入:netstat -ano 2.下载Tomcat Tomcat官方网 ...

  2. 自己封装函数,实现数组的内置方法indexOf的功能

    在学习或开发过程中,经常会有朋友需要使用到一个数组方法-indexOf,这里我们先来谈谈它的功能:返回指定数据所在的索引,如果没有则返回-1. 那么我们在使用时通常是直接使用它这个数组内置方法 今天这 ...

  3. 《Vue.js 2.x实践指南》 已出版

    <Vue.js 2.x实践指南>其实在一年前就已经完稿了,只是由于疫情的缘故耽搁了很久才下厂印刷.阅读本书需要具备HTML.CSS和JS基础,本书针对的用户群体主要是:想要快速学习vue技 ...

  4. 【FreeRTOS学习04】小白都能懂的 Queue Management 消息队列使用详解

    消息队列作为任务间同步扮演着必不可少的角色: 相关文章 [FreeRTOS实战汇总]小白博主的RTOS学习实战快速进阶之路(持续更新) 文章目录 相关文章 1 前言 2 xQUEUE 3 相关概念 3 ...

  5. uCOS2014.1.7

    主要关于任务堆栈: 在计算机中一般设置一个专用的地址寄存器用来存放堆栈的栈顶地址,这个寄存器称为堆栈指针(SP). 任务堆栈有两种,一种是地址向下增长的,PC就是采用这样的堆栈: 另一种是地址向上增长 ...

  6. window 10电脑永不熄屏的方法

    你的电脑是不是人还没有离开一会儿,经常锁屏,输入密码??反复反复,特别的折磨人,别急,下面我教你,告别反复,从此我的电脑我做主. 第一步,打开设置,进入个性化界面,点击锁屏界面,往下滑 第二步,找到屏 ...

  7. python100例 11-20

    011 兔子问题 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? f1=1 f2=1 for i ...

  8. shrine

    0x01 import flask import os app = flask.Flask(__name__) app.config['FLAG'] = os.environ.pop('FLAG') ...

  9. 站在CSS3的肩上定义选择器

    按上下文选择元素 按祖先元素选择要格式化的元素 输入ancestor,这里的ancestor是希望格式化的元素的祖先元素的选择器. 输入一个空格(必不可少). 如果需要,对后续的每个祖先元素重复第(1 ...

  10. 我的linux学习日记day8

    链接文件 linux中链接有两种,一种是硬链接,一种是软链接 一.硬链接 硬链接是指通过索引节点来进行链接创建硬链接的方法如下:ln 源文件 硬链接文件具有相同inode号的多个文件互为硬链接文件删除 ...