java web 入门实例servlet篇(显示后台数据库列表,删除某一条记录并显示)

编写过程中需要注意的问题:

1.建立eclipse动态web工程时,需要改写编译后class文件的位置,通常情况下是这个位置:/WebContent/WEB-INF/classes

2.配置的页面链接和servlet类之间有两种方式:

1)通过在web.xml文件中进行配置:示例如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>jspshow1</display-name>

  <servlet>
   <servlet-name>listTheStudent</servlet-name>
   <servlet-class>com.guodiantong.javaweb.ListTheStudent</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>listTheStudent</servlet-name>
  <url-pattern>/list</url-pattern>
  </servlet-mapping>
  <servlet>
  <servlet-name>deleteTheStudent</servlet-name>
  <servlet-class>com.guodiantong.javaweb.DeleteServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>deleteTheStudent</servlet-name>
  <url-pattern>/delete</url-pattern>
  </servlet-mapping>
</web-app>

2)通过在eclipse新建servlet时,自动指示设置页面请求和servlet类之间的链接关系:如下图所示

new--->servlet

这种也能实现请求和对应的servlet类之间的映射,通过这种方式你会发下,tomcat使用的注解的方式@WebServlet,这种方式在web.xml文件中并没有通过 1)的那种方式显现出来

谈完上述注意的地方,下面开始见工程:先看下项目的目录结构

先看下所有的jsp文件:test.jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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>
<a href="list">list all students</a>
</body>
</html>

  students.jsp文件:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.util.List" %>
<%@page import="com.guodiantong.javaweb.*" %>
<!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>
<%=request.getAttribute("students") %>
<br>
<%

  List<Student> stus=(List<Student>)request.getAttribute("students");
%>
<table>
<tr>
  <th>flowid</th>
  <th>type</th>
  <th>id_card</th>
  <th>exam_card</th>
  <th>studentname</th>
  <th>location</th>
  <th>grade</th>
  <th>操作</th>
  <%
      for(Student student:stus){

   %>
	<tr>
	   <td><%=student.getFlowid() %></td>
	   <td><%=student.getType() %></td>
	   <td><%=student.getIdcard() %></td>
	   <td><%=student.getExam_card() %></td>
	   <td><%=student.getStudentname() %></td>
	   <td><%=student.getLocation() %></td>
	   <td><%=student.getGrade() %></td>
	   <td><a href="delete?flowid=<%=student.getFlowid() %>">删除</a></td>
	</tr>  

<%
    }
%>
</table>

</body>
</html>

success.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>
  操作成功!!
  <a href="list">refresh</a>
</body>
</html>

  下面是servlet类的代码:List请求对应的servlet类:ListTheStudent.java

package com.guodiantong.javaweb;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ListTheStudent extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        List<Student> students=new ArrayList<Student>();
        StudentDao studentDao=new StudentDao();
        students=studentDao.getAll();
        request.setAttribute("students", students);
        request.getRequestDispatcher("/students.jsp").forward(request, response);
    }

}

delete请求对应的jservlet  java类:DeleteServlet.java

package com.guodiantong.javaweb;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DeleteServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    String flowid=request.getParameter("flowid");
    StudentDao studentDao=new StudentDao();
    studentDao.deleteStudent(flowid);
    request.getRequestDispatcher("/success.jsp").forward(request, response);
    }

}

项目中最重要的StudentDao.java

package com.guodiantong.javaweb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class StudentDao {
public   List<Student>  getAll(){
    Connection connection=null;
    PreparedStatement preparedStatement=null;
    ResultSet resultSet=null;
    List<Student> students=new ArrayList<Student>();

   try {
       String driverClass="com.mysql.jdbc.Driver";
       String url="jdbc:mysql:///dsm";
       String user="root";
       String password="12345678";
       Class.forName(driverClass);
    connection=DriverManager.getConnection(url, user, password);
    String sql="SELECT flow_id,Type,id_card,exam_card,student_name,location,grade "
            +"FROM examstudent";
    preparedStatement=connection.prepareStatement(sql);
    resultSet=preparedStatement.executeQuery();
    while(resultSet.next()){
        String flowid=resultSet.getString(1);
        System.out.println(flowid);

        String type=resultSet.getString(2);
        String idcard=resultSet.getString(3);
        String exam_card=resultSet.getString(4);
        String studentname=resultSet.getString(5);
        String location=resultSet.getString(6);
        String grade=resultSet.getString(7);
        Student student=new Student(flowid, type, idcard, exam_card,
                studentname, location, grade);
        students.add(student);

    }
} catch (Exception e) {
    e.printStackTrace();
}finally{
    try {
        if(resultSet !=null){
            resultSet.close();
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        if(preparedStatement !=null){
            preparedStatement.close();
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        if(connection !=null){
            connection.close();
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
    return students;
}

public   void  deleteStudent(String flowid){
    Connection connection=null;
    PreparedStatement preparedStatement=null;

   try {
       String driverClass="com.mysql.jdbc.Driver";
       String url="jdbc:mysql:///dsm";
       String user="root";
       String password="12345678";
       Class.forName(driverClass);
    connection=DriverManager.getConnection(url, user, password);
    String sql="DELETE FROM examstudent where flow_id=?";
    preparedStatement=connection.prepareStatement(sql);
    preparedStatement.setString(1, flowid);
    preparedStatement.execute();

} catch (Exception e) {
    e.printStackTrace();
}finally{

    try {
        if(preparedStatement !=null){
            preparedStatement.close();
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        if(connection !=null){
            connection.close();
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}
}

项目中的javabean  :Student.java

package com.guodiantong.javaweb;

public class Student {
private String flowid;
private String type;
private String idcard;
private String exam_card;
private String studentname;
private String location;
private String grade;
public String getFlowid() {
    return flowid;
}
public void setFlowid(String flowid) {
    this.flowid = flowid;
}
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
public String getIdcard() {
    return idcard;
}
public void setIdcard(String idcard) {
    this.idcard = idcard;
}
public String getExam_card() {
    return exam_card;
}
public void setExam_card(String exam_card) {
    this.exam_card = exam_card;
}
public String getStudentname() {
    return studentname;
}
public void setStudentname(String studentname) {
    this.studentname = studentname;
}
public String getLocation() {
    return location;
}
public void setLocation(String location) {
    this.location = location;
}
public String getGrade() {
    return grade;
}
public void setGrade(String grade) {
    this.grade = grade;
}
public Student() {
    super();
}
public Student(String flowid, String type, String idcard, String exam_card,
        String studentname, String location, String grade) {
    super();
    this.flowid = flowid;
    this.type = type;
    this.idcard = idcard;
    this.exam_card = exam_card;
    this.studentname = studentname;
    this.location = location;
    this.grade = grade;
}
@Override
public String toString() {
    return "Student [flowid=" + flowid + ", type=" + type + ", idcard="
            + idcard + ", exam_card=" + exam_card + ", studentname="
            + studentname + ", location=" + location + ", grade=" + grade + "]";
}
}

提到javabean就需要看一下后台数据表格的结构:

就是这些!!

  

时间: 2024-12-19 08:08:55

java web 入门实例servlet篇(显示后台数据库列表,删除某一条记录并显示)的相关文章

Java Web入门项目之“网络交友”的设计与实现

前言:这个小项目是我刚学习JSP时,参考"JSP程序设计"这本书写的.这里之所以说参考这本书而不是照着这本书写,主要是因为我自己完成的时候删掉了不少繁琐的写法(比如:文件上传):同时对书中容易产生SQL注入漏洞,XSS跨站脚本漏洞等地方的写法进行了修改过滤:登录页面加上了随机验证码.除此之外,还添加了文件管理功能 PS:整个项目没有特别的难点,可以分为一个个功能点实现,大神轻喷,个人认为对初学Java Web的童鞋还是有参考意义的 注:整个项目的完整源代码和sql文件我会在文末给出下载

java web.xml listener servlet 和filter的加载顺序

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. 最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servle

[java web 入门](一)MyEclipse &amp;amp; HelloWorld 记录

第一部,下载安装MyEclipse for mac. http://downloads.myeclipseide.com/downloads/products/eworkbench/2014/installers/myeclipse-spring-2014-GA-offline-installer-macosx.dmg   http://downloads.myeclipseide.com/downloads/products/eworkbench/2014/installers/myeclip

Java小白入门系列 第一篇 写在前面

2018年8月30日  22:00:17 郑州  多云 Sue Java小白入门系列 第一篇  写在前面 写在前面: 首先声明一下,本人也是正在学Java,并不是多么专业人士,只是最近受老师的启发,所以准备写个关于java新手入门系列的博客,包括搭建Java开发环境.Java入门知识,也会分享一些好用的软件及破解器之类的,一方面是巩固所学的知识,另一方面是给有兴趣的小白做练手.入门之用,本系列博客完全开放,所有资源不收任何费用,欢迎大家转发留言,入门之用,不喜勿喷,恶人绕道! Java是不是很难

java web入门-servlet初步

Java web三大组件:Servlet.Filter.Listener. servlet是单例的,一个对象只会有服务器创建一个对象. 每个servlet必须实现javax.servlet.Servlet接口 实现servlet接口的三个方式: 实现javax.servlet.Servlet接口 继承javax,servlet.GenericServelet类 继承javax.servlet.http.HttpServlet类 servlet接口五个方法: public void init(Se

java web学习笔记-jsp篇

转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,java/c#/php,javascript,xml,主流的动态网页脚本(jsp,asp.net,php) 1.2搭建java web开发环境 jdk1.7+tomc

Java Web开发之Servlet、JSP基础

有好多年不搞Java Web开发了,这几天正好国庆放假,放松之余也有兴趣回头看看Java Web开发技术的基础. 我们都知道,Servlet是Java Web开发的重要基础,但是由于Servlet开发相对繁琐,代码量庞大而且不易维护,美工无法参与界面设计开发等不足,于是就诞生了jsp.jsp是对servlet开发模型的重要升级.有了jsp,Java Web开发技术才真正被广泛使用. 一.Servlet 在Java Web开发当中,新建一个类继承(派生)自HttpServlet类即可创建一个Ser

阿里云服务器云数据库免费体验(Java Web详细实例)

一.效果展示 博主部署了两个war包到阿里云服务器上,一个是没有连接数据库的,另外一个是连接了数据库的. (由于阿里云服务器免费使用15天,下面链接约2016年3月9日后无效) (1)无数据库版访问地址:http://120.25.235.171:8080/web_exception_project-0.0.1-SNAPSHOT/login.jhtml 只能用luoguohui,123456登录,在controller写死了. (2)有连接数据库版访问地址:http://120.25.235.1

Java Web入门学习路线图的规划

Java作为学习编程开发入门语言,可能对于许多新手来说可能有点摸不着北,做位一名有几年开发经验的老鸟,希望给一些新人分享经验,当然其他老鸟如果有什么意见可以指出,我也会努力纠正. 本人工作是有关Java Web 开发,所以我会以Java Web标准开发去做一个标准,当然Java 能做的事情很多,包括Android,Java Me等,后期只要我们努力可以学习更多,更深的我也说不了,我现在只谈谈怎么去入门,至于登堂入室,大家有了套路以后,都能够达到.我写这个初衷,是因为我本来是一名非计算机专业的学生