学生管理系统

 

3.1 登录功能实现

1.创建一个web目录

2.在web目录下创建一个index.jsp

3.在页面中获取会话域中的用户名,获取到了就显示添加和查看功能的超链接,没获取到就显示登录功能的超链接

4.在web目录下创建一个login.jsp,实现登陆页面

5.创建LoginServlet,则重定向到登陆页面

6.如果用户名为空,则重定向到登陆页面

 

 index.jsp

<%--
  Created by IntelliJ IDEA.
  User: 12270
  Date: 2021/3/18
  Time: 21:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>学生管理系统首页</title>
  </head>
  <body>
 <%--
      获取会话域中的数据
      如果获取到了则显示添加和查看功能的超链接
      如果没获取到则显示登录功能额超链接
 --%>
  <%Object username = session.getAttribute("username");
    if (username==null){
  %>
  <a href="/stu/login.jsp">请登录</a>
  <%}else{%>
 <a href="/stu/addStudent.jsp">添加学生</a>
 <a href="/stu/listStudentServlet">查看学生</a>
 <%}%>
  </body>
</html>

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: 12270
  Date: 2021/3/18
  Time: 21:46
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>学生登陆</title>
</head>
<body>
    <form action="/stu/loginStudentServlet" method="get"autocomplete="off">
        姓名:<input type="text" name="username"><br>
        密码:<input type="password" name="password"><br>
        <button type="submit">登录</button>

    </form>
</body>
</html>
LoginStudentServlet
package com.itheima.servlet;

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 java.io.IOException;

@WebServlet("/loginStudentServlet")
public class LoginStudentServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取到用户名和密码
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //2.判断用户名
        if (username == null||"".equals(username)) {
            //2.1用户名为空,重定向到登陆页面
            resp.sendRedirect("/stu/login.jsp");
            return;
        }


        //2.2用户名不为空,将用户名存入到会话域对象中
        req.getSession().setAttribute("username",username);
        //3.重定向到首页
        resp.sendRedirect("/stu/index.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

Student

package com.itheima.bean;

public class Student {
    private String username;
    private int age;
    private int score;

    public Student() {
    }

    public Student(String username, int age, int score) {
        this.username = username;
        this.age = age;
        this.score = score;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "username='" + username + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }
}

  

 

案例实现-添加功能

1.在web目录下创建一个addStudent.jsp,实现添加学生的表单项

2.创建AddStudentServlet,获取学生信息并保存到文件中

3.通过定时刷新功能2s后跳转到首页  

addStudent.jsp

<%--
  Created by IntelliJ IDEA.
  User: 12270
  Date: 2021/3/18
  Time: 22:03
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加学生</title>
</head>
<body>
<form action="/stu/addStudentServlet" method="get" autocomplete="off">
    学生姓名:<input type="text" name="username"><br>
    学生年龄:<input type="number" name="age"><br>
    学生成绩:<input type="number" name="score"><br>
    <button type="submit">保存</button>
</form>
</body>
</html>

addStudentServlet

package com.itheima.servlet;

import com.itheima.bean.Student;

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 java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/*
*
*实现添加功能
* */
@WebServlet("/addStudentServlet")
public class AddStudentServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        //1.获取表单中的数据
        String username=req.getParameter("username");
        String age=req.getParameter("age");
        String score = req.getParameter("score");
        //2.创建学生对象并赋值
        Student stu=new Student();
        stu.setUsername(username);
        stu.setAge(Integer.parseInt(age));
        stu.setScore(Integer.parseInt(score));

        //3.将学生对象的数据保存到d:\\stu.txt中
        BufferedWriter bw=new BufferedWriter(new FileWriter("d:\\stu.txt",true));
        bw.write(stu.getUsername()+","+stu.getAge()+","+stu.getScore());
        bw.newLine();
        bw.close();
        //通过定时刷新功能相应给浏览器

        resp.getWriter().write("添加成功。2秒后自动跳转到首页");
        resp.setHeader("Refresh","2;URL=/stu/index.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
} 

  案例实现-查看功能

1.创建ListStudentServlet,读取文件中的学生信息到集合中

2.将集合重定向到会话域中

3.重定向到listStudent.jsp页面上

4.在web目录下创建一个listStudent,jsp

5.定义表格标签,在表格中获取会话域的集合数据,将数据显示在页面上

LoginStudentServlet

 

package com.itheima.servlet;

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 java.io.IOException;

@WebServlet("/loginStudentServlet")
public class LoginStudentServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取到用户名和密码
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //2.判断用户名
        if (username == null||"".equals(username)) {
            //2.1用户名为空,重定向到登陆页面
            resp.sendRedirect("/stu/login.jsp");
            return;
        }


        //2.2用户名不为空,将用户名存入到会话域对象中
        req.getSession().setAttribute("username",username);
        //3.重定向到首页
        resp.sendRedirect("/stu/index.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

listStudent.jsp

<%@ page import="java.util.ArrayList" %>
<%@ page import="com.itheima.bean.Student" %><%--
  Created by IntelliJ IDEA.
  User: 12270
  Date: 2021/3/18
  Time: 22:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>查看学生</title>
</head>
<body>
    <table width="600px" border="1px">
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>成绩</th>

        </tr>
        <%ArrayList<Student> students = (ArrayList<Student>) session.getAttribute("students");
            for (Student stu:students){


        %>
        <tr>
            <td><%=stu.getUsername()%></td>
            <td><%=stu.getAge()%></td>
            <td><%=stu.getScore()%></td>
        </tr>
        <%}%>
    </table>
</body>
</html>

  

  

  

posted @ 2021-03-18 22:46  星梦泪痕  阅读(385)  评论(0编辑  收藏  举报