好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

JavaWeb实现学生信息管理系统(2)

本文接着 上一篇 ,继续为大家分享了JavaWeb实现学生信息管理系统的第二篇,供大家参考,具体内容如下

今日任务:实现学生管理系统的查找和添加功能!

一、查询学生信息

1. index.jsp

先写一个JSP页面【WebContent/index.jsp】,里面放一个超链接

?

1

< a href = "StudentListServlet" rel = "external nofollow" >显示所有学生列表</ a >

2. StudentListServlet.java

写StudentListServlet【com.servlet包下的StudentListServlet.java】,接受请求,去调用service,再由service调用dao

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

package com.servlet;

 

import java.io.IOException;

import java.sql.SQLException;

import java.util.List;

 

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.domain.Student;

import com.service.StudentService;

import com.service.impl.StudentServiceImpl;

 

/**

  *

  * 负责查询所有的学生信息,然后呈现到list.jsp页面上

  *

  */

@WebServlet ( "/StudentListServlet" )

public class StudentListServlet extends HttpServlet {

 

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  

  

   try {

    //1.查询出来所有的学生

    StudentService service = new StudentServiceImpl();

    List<Student> list = service.findAll();

   

    //2.先把数据存储到作用域中

    //3..跳转页面

   

   } catch (SQLException e) {

  

    e.printStackTrace();

   }

  

  }

 

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

   doGet(request, response);

  }

 

}

3. StudentDao.java & StudentDaoImpl.java

3.1 StudentDao.java【com.dao包下】

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

package com.dao;

 

import java.sql.SQLException;

import java.util.List;

 

import com.domain.Student;

 

/**

  * 这是针对学生表的数据访问

  * @author Administrator

  *

  */

public interface StudentDao {

  /**

   * 查询所有学生

   * @return  List<Student>

   */

  List<Student> findAll() throws SQLException;

}

3.2 StudentDaoImpl.java【com.dao.impl包下】

实现StudentDao里的findAll()方法。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class StudentDaoImpl implements StudentDao {

  /**

   * 查询所有学生

   * @throws SQLException

   */

  @Override

  public List<Student> findAll() throws SQLException {

  

   QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());

   String sql = "select * from stu" ;

   List<Student> list = runner.query(sql, new BeanListHandler<Student>(Student. class ));

   return list;

  }

}

4. StudentService.java 和 StudentService.java

4.1 StudentService.java

代码同StudentDao.java,

?

1

2

3

4

5

6

7

8

9

10

public interface StudentService {

 

  /**

   * 查询所有学生

   * @return   List<Student>

   *

   */

  List<Student> findAll() throws SQLException;

 

}

4.2 StudentService.java

?

1

2

3

4

5

6

7

8

public class StudentServiceImpl implements StudentService{

 

  @Override

  public List<Student> findAll() throws SQLException {

   StudentDao dao = new StudentDaoImpl();

   return dao.findAll();

  }

}

5. 在StudentListServlet存储数据,并作出页面响应

?

1

2

3

4

5

//2.先把数据存储到作用域中

request.setAttribute( "list" , list);

   

//3..跳转页面

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

6. list.jsp

在list.jsp【WebContent/list.jsp】上显示数据。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>   

<%@ taglib prefix="c" uri="http://java.sun测试数据/jsp/jstl/core" %>

<!DOCTYPE html>

< html >

< head >

< meta charset = "UTF-8" >

< title >学生列表页面 </ title >

</ head >

< body >

  < table border = "1" width = "700" >

  

   < tr >

    < td colspan = "8" >

     < a href = "add.jsp" rel = "external nofollow" >添加</ a >

    </ td >

   </ tr >

  

   < tr align = "center" >

    < td >编号</ td >

    < td >姓名</ td >

    < td >性别</ td >

    < td >电话</ td >

    < td >生日</ td >

    < td >爱好</ td >

    < td >简介</ td >

    < td >操作</ td >

   </ tr >

  

   < c:forEach items = "${list }" var = "stu" >

    < tr align = "center" >

    < td >${stu.sid }</ td >

    < td >${stu.sname }</ td >

    < td >${stu.gender }</ td >

    < td >${stu.phone }</ td >

    < td >${stu.birthday }</ td >

    < td >${stu.hobby }</ td >

    < td >${stu.info }</ td >

    < td >< a href = "#" rel = "external nofollow"   rel = "external nofollow" >更新</ a >  < a href = "#" rel = "external nofollow"   rel = "external nofollow" >删除</ a ></ td >

   </ tr >

   </ c:forEach >

  

  </ table >

</ body >

</ html >

7. 查找结果如下:

二、添加学生信息

1. add.jsp

我们需要先跳转到增加页面,编写增加页面add.jsp【WebContent/add.jsp】

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

< body >

 

  < h3 >添加学生页面</ h3 >

 

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

   < table border = "1" width = "600" >

    < tr >

     < td >姓名</ td >

     < td >< input type = "text" name = "sname" ></ td >

    </ tr >

    < tr >

     < td >性别</ td >

     < td >

      < input type = "radio" name = "gender" value = "男" >男

      < input type = "radio" name = "gender" value = "女" >女

     </ td >

    </ tr >

    < tr >

     < td >电话</ td >

     < td >< input type = "text" name = "phone" ></ td >

    </ tr >

    < tr >

     < td >生日</ td >

     < td >< input type = "text" name = "birthday" ></ td >

    </ tr >

    < tr >

     < td >爱好</ td >

     < td >

      < input type = "checkbox" name = "hobby" value = "游泳" >游泳

      < input type = "checkbox" name = "hobby" value = "篮球" >篮球

      < input type = "checkbox" name = "hobby" value = "足球" >足球

      < input type = "checkbox" name = "hobby" value = "看书" >看书

      < input type = "checkbox" name = "hobby" value = "写字" >写字

     </ td >

    </ tr >

    < tr >

     < td >简介</ td >

     < td >

      < textarea rows = "3" cols = "20" name = "info" ></ textarea >

     </ td >

    </ tr >

    < tr >

     < td colspan = "2" >< input type = "submit" value = "添加" ></ td >

    </ tr >

   </ table >

  </ form >

 

</ body >

实现结果如下:

2. AddServlet.java

点击添加,提交数据到AddServlet,处理数据。
【备:com.servlet包下的AddServlet.java】

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  

   request.setCharacterEncoding( "utf-8" );

  

   try {

 

    //1.获取客户端提交上来的数据

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

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

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

    String birthday = request.getParameter( "birthday" );  //传过来是1989-10-18

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

    

    //String hobby = request.getParameter("hobby");

    String [] h = request.getParameterValues( "hobby" );

    //[篮球,足球,写字]-----篮球,足球,写字

    String hobby = Arrays.toString(h);

    hobby = hobby.substring( 1 ,hobby.length()- 1 );

   

    //2.添加到数据库

   

    //String-------Date

    Date date = new SimpleDateFormat( "yyyy-MM-dd" ).parse(birthday);

   

    Student student = new Student(sname,gender,phone,hobby,info,date);

    StudentService service = new StudentServiceImpl();

    service.insert(student);

   

    //3.跳转到列表页

    //这里是直接跳转到页面上,那么这个页面会重新翻译一次,上面那个request里面的数据就没有了

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

   

    //servlet除了能跳jsp之外,还能跳servlet

    request.getRequestDispatcher( "StudentListServlet" ).forward(request, response);

   

   

   } catch (Exception e) {

    e.printStackTrace();

   }

   

  }

3. StudentDao & StudentService

?

1

2

3

4

5

6

/**

  * 添加学生

  * @param student  需要添加到数据库的学生对象

  * @throws SQLException

  */

void insert(Student student) throws SQLException;

4. Dao & Service的实现

4.1 StudentDaoImpl.java

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@Override

public void insert(Student student) throws SQLException {

 

  QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());

  String sql = "insert into stu values(null,?,?,?,?,?,?)" ;

  runner.update(sql,

    student.getSname(),

    student.getGender(),

    student.getPhone(),

    student.getBirthday(),

    student.getHobby(),

    student.getInfo()

   

    );

}

4.2 StudentServiceImpl.java

?

1

2

3

4

5

6

@Override

  public void insert(Student student) throws SQLException {

   StudentDao dao = new StudentDaoImpl();

   dao.insert(student);

  

  }

5. 注意

完成了上述存储工作之后,需要跳转到列表页面,这里不能直接跳转到列表页面,否则没有什么内容显示。应该先跳转到查询所有学生信息的那个servlet,即StudentListServlet,再由这个servlet跳转到列表页面。

?

1

request.getRequestDispatcher( "StudentListServlet" ).forward(request, response);

hobby的value有多个值。处理时需多次转化:

?

1

2

3

4

5

//String hobby = request.getParameter("hobby");

String [] h = request.getParameterValues( "hobby" );

//[篮球,足球,写字]-----篮球,足球,写字

String hobby = Arrays.toString(h);

hobby = hobby.substring( 1 ,hobby.length()- 1 );

6. 添加结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://blog.csdn.net/weixin_44270855/article/details/104223040

查看更多关于JavaWeb实现学生信息管理系统(2)的详细内容...

  阅读:32次