本项目也是MVC架构,JavaBean(M),JSP(v),Servlet(C),并且加入了DAO模式。DAO模式实现了把数据库表的操作转化成对Java类的操作,即利用关系数据库实现数据库的操作,对于Java语言或JSP,在实现数据库操作时,可以采用将数据库表和普通的Java类映射,将数据表转换类(对象),然后利用对象实现对数据库的操作,从而提高了程序的可读性以及实现了更改数据库的方便性。
在系统设计中,采用DAO模式的主要优点如下:1)抽象出数据访问方式(增、删、改、查等),在访问数据源(数据库)时,完全感觉不到数据源(数据库)的存在。2)将数据访问集中在独立的一层,所有数据访问都由DAO代理,从而将数据访问的实现与系统的其余部分
后端:JavaServlet:用于处理客户端请求并生成动态的Web内容。JavaServerPages(JSP):用于创建动态的Web页面。JavaDatabaseConnectivity(JDBC):用于在Java程序中连接和操作数据库。JavaBean:用于封装数据和业务逻辑的Java类。JavaFilter:用于在请求处理过程中拦截和处理请求。JavaListener:用于监听和处理JavaWeb应用程序中的事件。JavaStandardTagLibrary(JSTL):用于简化JSP页面中的标签操作。前端:bootstarp前端框架:更快速、更便捷地构建美观的网站和Web应用程序JSTL技术:用于简化JSP页面中的标签操作Ajax技术:通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
创新点:
JavaBean目录下的guanliyuan.java和Student.java:定义了两个JavaBean类,分别用于表示管理员和学生的信息。
该代码是一个用于管理用户的DAO类,其中包含了两个方法:getList和add。getList方法用于获取用户列表,它通过执行SQL查询语句获取数据库中的用户信息,并将其存储在一个List集合中返回。而add方法用于增加用户信息,它将用户信息插入到数据库中的指定表中。在这两个方法的实现中,通过数据库连接、预处理语句和结果集来操作数据库。
名为StudentDao的Java类,是一个用于操作学生信息的数据库访问层。该类中包含了多个静态方法,用于实现对学生的增删改查操作。
这些方法的实现使用了JDBC的PreparedStatement和ResultSet类,通过调用getConnection()方法获取数据库连接,使用getConnection.prepareStatement()方法创建PreparedStatement对象,通过调用setInt()和setString()等方法为PreparedStatement对象的参数赋值,然后调用executeQuery()和executeUpdate()方法执行相应的SQL语句进行数据库操作。最后通过ResultSet对象遍历获取查询结果或执行更新操作。
这个Java函数是一个实现了Filter接口的类,名为EncodingFilter。在该类中,有一个私有的静态变量encoding,用于存储在初始化过程中从web.xml配置文件中获取的字符编码。EncodingFilter类实现了Filter接口中的三个方法:destroy()、doFilter()和init()。-destroy()方法在过滤器被销毁时被调用,可以在该方法中进行一些资源的释放操作,但是在这个函数中没有进行任何操作。
在该方法中,首先通过config.getInitParameter("CharsetEncoding")从web.xml配置文件中获取初始化参数"CharsetEncoding"的值,并将其赋给encoding变量。然后通过调用request.setCharacterEncoding(encoding)和response.setCharacterEncoding(encoding)设置请求和响应的字符编码。最后,通过调用chain.doFilter(request,response)将请求和响应传递给下一个过滤器或目标处理器来处理。-init()方法在过滤器被初始化时被调用,用于接收web.xml配置文件中的初始参数。在这个函数中,通过调用config.getInitParameter("CharsetEncoding")从web.xml配置文件中获取初始化参数"CharsetEncoding"的值,并将其赋给encoding变量。综上所述,EncodingFilter类用于对请求和响应进行字符编码的转换,通过初始化参数"CharsetEncoding"可以指定要使用的字符编码。
这个Java函数是一个基于Servlet的过滤器类,用于在请求到达目标资源之前进行拦截和处理。它实现了Filter接口,并使用@WebFilter注解进行配置,将filterName设置为"performance",将urlPatterns设置为"/*",表示过滤所有的URL请求。它还包含一个initParams属性,其中包含一个名为"IP"的参数,其值为"172.11"。在doFilter方法中,它首先获取请求的IP地址,并检查是否为本机IP。如果是本机IP,则设置请求和响应的字符编码,并继续处理过滤器链。如果不是本机IP,则返回一个403错误响应。在init方法中,它从FilterConfig对象中获取名为"IP"的参数,并将其赋值给类成员变量IP。如果"IP"参数不存在,则将其设置为默认值"localhost"。
主要用于对Web应用进行过滤操作。在该类中,有三个成员变量:sessionKey、redirectUrl和uncheckedUrls,分别表示从配置文件中获取的sessionKey、重定向URL和未检查的URL列表。在初始化方法init中,通过getInitParameter方法获取配置文件中的参数值,并将其赋给相应的成员变量。在doFilter方法中,首先将ServletRequest和ServletResponse强制转换为HttpServletRequest和HttpServletResponse,以获取请求的URL。然后,根据uncheckedUrls列表判断请求的URL是否属于不需要进行过滤的URL之一,如果是,则调用filterChain.doFilter方法放行请求;否则,从session中获取username属性,如果不存在,则重定向到redirectUrl页面;如果存在,则调用filterChain.doFilter方法放行请求。
listener文件夹下的listener.java:实现了一个HttpSessionListener,用于监听和处理HttpSession的创建和销毁事件,以统计在线用户数量。
这个Java函数是一个会话监听器,用于跟踪在线用户数量。当session创建时,onlineCount增加;当session销毁时,onlineCount减小。可以通过调用getOnlineCount方法获取当前在线用户数量
Servlet文件夹下的FindSeverlet.java和SearchSevlet.java:定义了两个Servlet,分别用于处理查找学生信息的请求。
这个Sevlet是一个基于Servlet的Java函数,使用@WebServlet注解进行路径映射,路径为"/find"。它继承了HttpServlet类,并重写了doPost方法来处理HTTPPOST请求。在doPost方法中,首先将请求的字符编码设置为UTF-8,然后将响应的输出内容类型设置为text/html;charset=UTF-8。接下来,它通过req.getParameter("id")方法从请求中获取一个名为id的参数,并将其转换为整数类型。然后,它调用StudentDao的getStudentList方法,将id作为参数传递进去,获取与该id对应的Student对象的列表。接下来,它将获取到的列表通过req.setAttribute("list",list)方法设置为请求的属性,以便在后续的处理中使用。最后,它将请求转发到searchStudent.jsp页面进行显示,通过req.getRequestDispatcher("searchStudent.jsp").forward(req,resp)方法进行转发。
这个函数的作用是根据请求中的id参数,从数据库中获取到与该id对应的Student对象的列表,并将列表传递到searchStudent.jsp页面进行显示。
这个Sevlet是一个基于Servlet的搜索功能的实现。它被注解@WebServlet注解标记为路径为/search的Servlet。它从HTTP请求中获取一个名为id的参数,并调用StudentDao的getStudentList方法来获取与id对应的Student对象的列表。然后,它将列表传递给searchStudent.jsp页面进行显示。在处理请求时,它使用req.setCharacterEncoding和resp.setContentType方法来设置请求和响应的字符编码为UTF-8。它还使用req.getRequestDispatcher方法来转发请求到searchStudent.jsp页面进行处理。这个类重写了HttpServlet的doGet和doPost方法来处理HTTPGET和POST请求。
checkcode文件夹下的checkcode.java:定义了一个Servlet,用于生成随机的验证码图像。
这些代码共同构成了一个简单的JavaWeb应用程序,用于处理用户请求、与数据库交互、实现用户验证和权限控制等功能。
这个JSP页面,用于处理用户在add.jsp页面上提交的注册表单。页面首先设置请求字符编码为UTF-8,然后获取表单中的email和password参数。接着,创建一个guanliyuan对象,将获取到的email和password设置为对象的属性,并调用guanliyuanDao的add方法将对象添加到数据库中。添加完成后,通过response.sendRedirect方法将用户重定向到zhuceSuccess.jsp页面。最后,页面输出id和password的值。
用于查询学生信息的JSP页面。页面包含一个表单,用户可以输入学号来查询学生信息。查询结果会以表格的形式展示出来。页面还包含一个JavaScript函数f(),用于判断用户是否输入了学号。如果用户未输入学号,会弹出提示框并阻止表单提交。
还有部分功能未实现,部分接口可以优化,未来会持续改进,并发布在互联网上