JavaWeb课程设计-学生信息管理系统(Jsp+Servlet+MySql)

}

3. 实现业务层(Service)

编写业务层接口:

/**

  • 用户管理的业务接口

*/

public interface UserService {

}

实现业务层接口:

public class UserServiceImpl implements UserService {

private UserDao dao = new UserDaoImpl();

}

4.实现表现层功能

编写表现层:

@WebServlet(“/loginServlet”)

public class LoginServlet extends HttpServlet {

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

/*

  • Code

*/

}

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

this.doPost(request, response);

}

}

5.由于表现层Servlet太多,我们可以做简单的提取

编写BaseServlet类,然后由其他servlet继承

public class BaseServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {

// 获取请求标识

String methodName = request.getParameter(“method”);

// 获取指定类的字节码对象

Class<? extends BaseServlet> clazz = this.getClass();//这里的this指的是继承BaseServlet对象

// 通过类的字节码对象获取方法的字节码对象

Method method = clazz.getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);

// 让方法执行

method.invoke(this, request, response);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

5.编写对应的前端页面:以user_login.jsp为例

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

<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

管理员登录

管理员登录


×

${login_msg}

运行截图:

在这里插入图片描述

测试登录功能,发现中文乱码问题(直接继承HttpServlet不会出现,继承BaseServlet会出现)

6.编写过滤器解决中文乱码问题

@WebFilter(“/*”)

public class CharchaterFilter implements Filter {

protected String encoding;

@Override

public void destroy() {

// TODO 自动生成的方法存根

}

@Override

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

// TODO 自动生成的方法存根

HttpServletRequest request=(HttpServletRequest)req;

HttpServletResponse response=(HttpServletResponse)res;

String method=request.getMethod();

if(method.equalsIgnoreCase(“post”)){

request.setCharacterEncoding(“utf-8”);

}

response.setContentType(“text/html;charset=utf-8”);

chain.doFilter(request, response);

}

@Override

public void init(FilterConfig arg0) throws ServletException {

// TODO 自动生成的方法存根

}

}

7.编写列表页面,并在后端代码上实现响应的功能

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

网站后台管理

学生信息管理

  • ${user.username}
  •  注销
  • 首页
  • 学生管理
  • 班级管理
  • 课程管理
  • 关于我们
  • 管理首页
  • 学生管理
  • 学生信息
  • 添加学生

    删除选中

    编号 姓名 性别 年龄 班级 电话 邮箱

    <c:forEach items=“${pb.list}” var=“student” varStatus=“s”>

    ${student.id} ${student.name} ${student.gender} ${student.age} ${student.classno} ${student.phone} ${student.email} 修改 

    删除

    </c:forEach>

      <c:if test=“${pb.currentPage == 1}”>

    • </c:if>

      <c:if test=“${pb.currentPage != 1}”>

    • </c:if>

      «

      <c:forEach begin=“1” end=“${pb.totalPage}” var=“i” >

      <c:if test=“${pb.currentPage == i}”>

    • ${i}
    • </c:if>

      <c:if test=“${pb.currentPage != i}”>

    • ${i}
    • </c:if>

      </c:forEach>

    • »

      p b . t o t a l C o u n t 条记录,共 {pb.totalCount}条记录,共 pb.totalCount条记录,共{pb.totalPage}页

      在这里插入图片描述

      8.实现不同信息的删除修改功能,并进一步完善

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

      <%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

      修改学生信息

      修改学生信息

      <c:if test=“${student.gender == ‘男’}”>

      </c:if>

      <c:if test=“${student.gender == ‘女’}”>

      </c:if>

      ## 最后

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

      因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

      如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

      由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

      <c:if test=“${student.gender == ‘男’}”>

      </c:if>

      <c:if test=“${student.gender == ‘女’}”>

      </c:if>

      ## 最后

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

      因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

      [外链图片转存中…(img-CgEyyAv2-1715714898599)]

      [外链图片转存中…(img-mwA345Hl-1715714898600)]

      [外链图片转存中…(img-2tI3FtOf-1715714898600)]

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

      如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

      由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值