使用MVC模式实现一个超简单的网上书店系统

该实验报告详细描述了如何使用MVC设计模式构建一个简单的网上书店系统,包括登录、个人中心和安全退出功能。主要涉及JSP、Servlet、数据库访问及用户模型。登录后,主页面显示欢迎信息,并可访问个人中心,退出则清除用户数据。实验总结强调了session对象的作用以及RequestDispatcher和sendRedirect的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用MVC模式实现网上书店(大二实验报告)


1.问题描述:

主页面要求实现如下图所示:

在这里插入图片描述

登录前,若选择“个人中心”,则提示请登录;登录后,页面显示如图所示:

在这里插入图片描述

在主页面显示“欢迎你XXX”,并可进入个人中心。选择“安全退出”,则回到登录前的界面

2.设计思路

项目由三个页面组成(注册页面先不实现),即登录界面,个人中心,以及主页面。

bookmain.jsp 主页面
Login.jsp 登录界面
person.jsp 个人中心

有两个servlet。一个是登录时需要进行判断转发,一个是退出时需要进行判断转发。

Exit.java 退出的servlet
LoginSession.java 登录的servlet

有一个访问数据库的类:LoginMySQL.java

有一个数据模型类:User.java

有一个判断类:LoginManagement.java

综上所述,MVC设计模式为:

controller层:Exit.java LoginSession.java
dao层:LoginMySQL.java
model层:User.java
service层:LoginManagement.java

3.代码实现
  1. 实现主页面bookmain.jsp

    <%@page import="javax.swing.text.Document"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="model.User"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <div>
        <div style="width: 800px; margin: auto" align="center">
          <h3 align="center">网上书店</h3>
          <a href="Login.jsp">登录</a>
          <a href="">注册</a>
          <a href="person.jsp">个人中心</a>
          <a href="Exit">安全退出</a><span id="welcome"></span>
        </div>
        <%
          User user=(User)session.getAttribute("user");
          
          if(user != null){%>
           <script>
            document.getElementById("welcome").innerHTML="欢迎你" + "<%=user.getAccount() %>";
           </script><%
          }else{ %>
           <script type="text/javascript">
            document.getElementById("welcome").innerHTML="";
           </script><%
          } 
        %>
        </div>
    </body>
    </html>
    

    将登录指向Login.jsp 个人中心指向person.jsp 安全退出指向servlet的Exit,并设置它的id为welcome方便后来插入内容。java代码部分则,如果session对象中属性"name"值为空则不进行添加操作,如果部位空,则在id为welcome的标签后插入内容:欢迎你XXX

  2. 实现Login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link rel="stylesheet" href="main.css">
    </head>
    <body>
    	<form action="LoginSession" method="post">
    	账号:<input type="text" size="20" name="account"><br>
    	密码:<input type="password" size="20" name="secret">
    	<input type="submit" value="submit">
    	</form>
    	<%
    	if (session.getAttribute("user") != null) {
    		if (request.getAttribute("log") != null) {
    			String temp = (String)request.getAttribute("log");
    			if (temp.equals("err")) {
    				out.println("账号密码错误");
    			}
    		}
    	}
    	%>
    </body>
    </html>
    

    用一个表单实现一个简单的账户密码的输入功能,使用post方法,action指向servlet:LoginSession

  3. 实现LoginSession.java

    package controller;
    
    import java.io.IOException;
    import model.User;
    
    import javax.servlet.RequestDispatcher;
    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 javax.servlet.http.HttpSession;
    
    import service.LoginManagement;
    
    @WebServlet("/LoginSession")
    public class LoginSession extends HttpServlet {
         
         
    	private static final long serialVersionUID = 1L;
           
        public LoginSession() {
         
         
            super(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值