精华内容
下载资源
问答
  • web程序设计实验报告

    2014-12-27 16:49:58
    web程序设计实验沈世根版本,ASP.NET实例从基础到高级,详细的实验步骤,简单明了
  • 山东大学 web技术 网页设计网站建设 实验总汇 共有6个文件,实验一,实验三,实验四,实验6 实验18 实验20. 实验题目记不清了,好几个是各种国内外教育网站和软件公司的比较,还有把图片切割的实验等等。数据库...
  • WEB程序设计实验报告,有需要的可以下载下来看看。
  • Web程序设计开发试验报告,期末要求的,提供给有需要的朋友吧。
  • 这是一篇利用html+css+java+jap+tomcat开发的简单java web系统的课程实际报告,完整表述了简单的wen项目的开发流程及所用技术,希望对于初学者有所帮助
  • Java Web 实验报告

    2016-01-05 14:09:12
    Java Web 实验报告 防盗链的设计
  • 大四软件工程专业课程组 asp.net远程教学网站 WEb体系结构课程设计实验报告
  • Web实验报告

    2021-06-06 16:51:16
    Web实验报告 实验目的: 了解web前端开发的具体过程,进一步的熟悉HTML、Bootstrap、JS。提高动手和实际制作网站的能力。 Web框架解释 本次将网站主要分为了三部分head、body、footer。其中body主要讲述了个人的...

    Web的实验报告

    实验目的:

    了解web前端开发的具体过程,进一步的熟悉HTML、Bootstrap、JS。提高动手和实际制作网站的能力。

    Web框架解释

    本次将网站主要分为了三部分head、body、footer。其中body主要讲述了个人的一些兴趣爱好、竞赛成果以及给自己订下的一些小目标。本次实验通过运用了bootstrap完成。

    实验部分代码解释

    点击此超链接可以访问到我制作的一个介绍学校的小网站

    <a href="http://write-hand.gitee.io/my-first-mdb/" target="_blank" class="btn-rounded-white">了解我的学校</a>
    

    在头部点击相关的模块都可以跳转到网页相关的片段:

        <header>
            <div id="mobile-menu-close">
                <span>Close</span> <i class="fa fa-times" aria-hidden="true"></i>
            </div>
            <ul id="menu" class="shadow">
                <li>
                    <a href="#关于">关于</a>
                </li>
                <li>
                    <a href="#竞赛">竞赛</a>
                </li>
                <li>
                    <a href="#学习教育">学习教育</a>
                </li>
                <li>
                    <a href="#目标">目标</a>
                </li>
                <li>
                    <a href="#博客">博客</a>
                </li>
                <li>
                    <a href="#技能">技能</a>
                </li>
                <li>
                    <a href="#交流">实验报告</a>
                </li>
            </ul>
        </header>
    

    实验总结

    通过本次的实验,我掌握了Web前端开发的过程。本且了解了Bootstrap开发的框架及运用。提高了我实际的编程能力。学习到了github、码云的运用,以及Markdown的编辑方式。本学期的web课程让我受益匪浅。让我认识到了我这个菜鸟也可以制作出一些东西出来,虽然web课程结束了,但是我不会停止我在这个方面的学习,希望自己以后可以制作出更好的网站。

    展开全文
  • Web攻防实验报告

    2015-01-24 22:41:53
    Web攻防实验报告设计WebGoat攻击和预防以及XSS攻击预防的详细实验步骤,了解Web攻防原理
  • Web Service程序设计实验报告

    千次阅读 2018-11-21 15:51:18
      一、实验要求   二、运行环境   三、实验原理   四、实验步骤   四、实验心得   五、详细代码(简易计算器) 一、实验要求 编写一个网页,使其具有简单的数值计算功能。 二、运行环境 Windows10,...

    主要内容包括:
      一、实验要求
      二、运行环境
      三、实验原理
      四、实验步骤
      四、实验心得
      五、详细代码(简易计算器)

    一、实验要求

    编写一个网页,使其具有简单的数值计算功能。
    

    二、运行环境

    Windows10,Microsoft Visual Studio 2017
    

    三、实验原理

    Web Service调用原理:
    

    图1

    实现一个完整的Web服务工作流程:

    • Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册;
    • Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务;
    • Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读;
    • 利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;
    • Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。

    四、实验步骤

    本程序以Microsoft .Net为开发平台,通过Microsoft Visual Studio 2017来创建Web Service服务。

    1、启动Microsoft Visual Studio 2017,新建项目;
    图2
    2、在新打开的窗口左边的选择框中,在已安装的模板下,选择Visual C# -> Web -> 先前版本,选择新建ASP.NET空网站,点击确定,继续;
    图3
    3、新建项目的界面右侧,有个“解决方案资源管理器”对话框,点击新建的项目名称,右键点击并选择添加 -> Web服务(ASMX),(可以选择对其重新命名),并继续;
    图4
    4、在WebService.cs中添加自定义测试功能代码(即自己想要实现的功能的代码);
    图5
    5、运行asmx文件(即上一步中的WebService.cs文件):
    图6
    运行成功,我们需要记住浏览器中的URL即上图中红色方框标记的地址,在后续步骤中将会用上;

    6、和第三步类似,在项目的解决方案管理器中,点击项目名称,并添加一个Web窗体,并给其命名为“Add”,继续;
    图7
    7、在新建的Add.aspx文件中,从工具箱(默认在项目界面左侧)中拖出三个控件:textbox1,textbox2,label分别用来显示整数a,整数b, 以及计算的和。另外再添加一个点击按钮工具“Button”,并为其添加一个点击事件“ OnClick=“BtnAdd_Click” ”,其功能为调用Web服务:
    图8
    8、现在,为网站项目添加Web服务,点击新建项目名称 -> 添加 -> 服务引用:
    图9
    9、在弹出的“添加服务引用”窗口中,把第5步生成的服务地址填入“地址”栏,然后点击“转到”,在显示的服务中,选择“WebServiceSoap”,点击确定,继续;
    图10
    成功添加服务引用后,会在项目的目录结构中显示出来
    图11
    10、在项目的目录结构中,点击第6步生成的“Add.aspx”文件,打开其源代码:
    图12
      在打开的Add.aspx.cs文件中,添加按钮控件“Button”对应的逻辑代码,实例化一个服务对象,需要注意的是,“Button”逻辑代码中的函数名(这里为BtnAdd_Click)必须与第7步中的Add.aspx文件中的Button工具的点击事件“OnClick=“BtnAdd_Click” ”描述相一致,才能在Web服务调用时完成函数的调用:
    图12
    11、现在运行Add.aspx文件,在输入框中分别输入两个整数,然后点击按钮“加”,其结果就会在标签“Label”中显示出来:
    图13
    12、到此,本Web Service程序的基本实现步骤就已经完成,其他的具体功能、代码和页面显示效果将在后面的详细代码中给出。支持的计算功能包括:加、减、乘、除、阶乘和开根号,下面是本程序的最终实现结果展示示例:
    图14
    图15

    四、实验心得

      在写这个程序的时候,所接触的WebService相关知识也就只有课堂上老师讲的,以及课本上所涉及的内容,刚开始的时候,感觉迷茫,不知道从哪里开始。后来在网上看了一些相关的资料,在慢慢的把这个程序整体框架完成。当然,具体的函数功能代码不是问题,但页面的显示效果又让我感到苦恼,后来在舍友的帮助下,以及自己在网上学习了一些相关的学习资料,才最终完成了这个简单的计算器。
      尽管这个项目很简单,因为所使用的Visual Studio平台已经提供了相关的框架,我们只需要把需要实现的功能代码添加进去,就会得到我们想要的结果。但它却涵盖了Web服务生成、发表和调用的全过程,所以通过这次实验,加深了我对Web服务相关知识的理解,也对今后的学习打下了基础。最重要的是,要学会自己去接触并吸收新知识的能力。

    五、详细代码(简易计算器)

    1、WebService.cs代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    
    /// <summary>
    /// WebService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class WebService : System.Web.Services.WebService
    {
        [WebMethod]
        public double ForSUM(double a, double b)
        {
            return a + b;
        }
    
        [WebMethod]
        public double ForSub(double a, double b)
        {
            return a - b;
        }
    
        [WebMethod]
        public double ForMul(double a, double b)
        {
            return a * b;
        }
        [WebMethod]
        public double ForDiv(double a, double b)
        {
            return a / b;
        }
        
        [WebMethod]
        public double ForFac(double a)
        {
            double t =1;
            for(double i =1;i<=a;i++)
            {
                t *= i;
            }
            return t;
        }
        [WebMethod]
        public double ForSqrt(double a)
        {
            return System.Math.Sqrt(a);
        }
    }
    

    2、Calculate.aspx代码,这部分代码包含了该程序在浏览器中的界面点击按钮描述和显示效果:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Calculate.aspx.cs" Inherits="Calculate" %>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>简单数字运算</title>
        <style>
            body {
                font-family:楷体;
                font-size:22px;  
            }
            .bo {
                margin-top:100px;
                margin-left:100px;
                width:600px;
                height:auto;
                border:2px solid #858c66;
                background-color:rgba(149, 156, 99, 1);
            }
            p{  
                text-align:center;
                font-size:40px;
                color:black;
                margin-bottom: 20px;
                margin-top: 20px;
            }
            table{
                padding-left:110px;
                margin-bottom:10px;
            }
            .result{
                padding-left:50px;
                font-size:40px;
            }
            .button{
                font-size:20px;
                font-family:楷体;
            }
            .answer_view{
                background-color:lightgray;
                width:100%;            
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div class="bo">
             <div>
                 <p>简易计算器</p>   
                       <div>
                             <asp:Label ID="res" runat="server" Text="答案:" Class="result"></asp:Label>
                       </div> 
                 <div class="answer_view">
                 <table>  
                    <tr>
                        <td><asp:Label ID="labResult" runat="server" Text="" >&nbsp</asp:Label> </td>
                    </tr> 
                </table>
                 </div>
                <table> 
                    <tr>  
                        <td> <asp:Label ID="labA" runat="server" Text="A">a:</asp:Label> </td>  
                        <td> <asp:TextBox ID="txtA" runat="server"></asp:TextBox> </td>  
                    </tr>  
                    <tr>
                        <td> <asp:Label ID="labB" runat="server" Text="B">b:</asp:Label> </td>  
                        <td> <asp:TextBox ID="txtB" runat="server"></asp:TextBox> </td>  
                    </tr>
                </table>
                <table>
                    <tr>
                        <td> <asp:Button ID="Button1" runat="server" Text="加" OnClick="btnSum_Click"  class="button"/> </td>  
                        <td> <asp:Button ID="Button2" runat="server" Text="减" OnClick="btnSub_Click"  class="button" /> </td>   
                        <td> <asp:Button ID="Button4" runat="server" Text="乘" OnClick="btnMul_Click"   class="button"/> </td> 
                        <td> <asp:Button ID="Button5" runat="server" Text="除" OnClick="btnDiv_Click"   class="button"/> </td>
                        <td> <asp:Button ID="Button3" runat="server" Text="阶乘" OnClick="btnFac_Click"  class="button" /> </td>
                        <td><asp:Button ID="Button6" runat="server" Text="开根号" OnClick="btnSqrt_Click"  class="button" /></td> 
                    </tr>
                 </table>
                   <span>提示:只能对a求阶乘(a为整数)和开根号。如果数的位数过长,会超出这个框,但结果是正确的~( ̄▽ ̄)~*</span>
                        
             </div>
        </div>
        </form>
    </body>
    </html>
    

    3、Calculate.aspx.cs代码,该部分代码包含了该程序在浏览器界面中的点击按钮的逻辑实现:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class Calculate : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void btnSum_Click(object sender, EventArgs e)
        {
            WebService fs = new WebService();
            double a = txtA.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtA.Text.ToString().Trim());
            double b = txtB.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtB.Text.ToString().Trim());
            labResult.Text = a+"+"+b+"="+fs.ForSUM(a, b).ToString();
        }
        protected void btnSub_Click(object sender, EventArgs e)
        {
            WebService fs = new WebService();
            double a = txtA.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtA.Text.ToString().Trim());
            double b = txtB.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtB.Text.ToString().Trim());
            labResult.Text = a + "-" + b + "=" + fs.ForSub(a, b).ToString();
        }
    
        protected void btnMul_Click(object sender, EventArgs e)
        {
            WebService fs = new WebService();
            double a = txtA.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtA.Text.ToString().Trim());
            double b = txtB.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtB.Text.ToString().Trim());
            labResult.Text = a + "*" + b + "=" + fs.ForMul(a, b).ToString();
        }
        protected void btnDiv_Click(object sender, EventArgs e)
        {
            WebService fs = new WebService();
            double a = txtA.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtA.Text.ToString().Trim());
            double b = txtB.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtB.Text.ToString().Trim());
            labResult.Text = a + "/" + b + "=" + fs.ForDiv(a, b).ToString();
        }
        protected void btnFac_Click(object sender, EventArgs e)
        {
            WebService fs = new WebService();
            double a = txtA.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtA.Text.ToString().Trim());
            double b = System.Math.Floor(a);
            labResult.Text =b+"!"+"="+fs.ForFac(b).ToString();
        }
        protected void btnSqrt_Click(object sender, EventArgs e)
        {
            WebService fs = new WebService();
            double a = txtA.Text.ToString().Trim() == "" ? 0 : Convert.ToDouble(txtA.Text.ToString().Trim());
            labResult.Text = "√" + a+"=" + fs.ForSqrt(a).ToString();
        }
    }
    
    展开全文
  • Web技术实验报告

    2021-05-05 12:32:34
    武汉理工大学,计算机学院,web技术实验报告。代码在github上。

    Web技术实验报告

    实验一

    第一部分:实验分析与设计(可加页)

    一、实验内容描述(问题域描述)

    1.1 实验内容
    (1)在个人电脑上搭建 Web 服务器环境,Web 服务器可以选用 IIS 或 Apache,Java Web 应用
    服务器选用 Tomcat,并完成 IIS 或 Apache 与 Tomcat 的集成,请记录配置的 步骤,以及配置成
    功后的截图。
    (2)设计一个用户信息输入页面,完成用户个人信息的填写,当用户提交表单时,通过 alert 显示
    用户的输入信息,界面设计如图 1 所示。
    要求:
    ⚫ 姓名中英文均可,长度不能超过 10 个字符
    ⚫ 身份证号码进行验证
    ⚫ 对邮箱格式进行验证
    ⚫书写自我介绍的时候,下面的已用字节和剩余字节随着输入内容的变化,而相应的 进行变
    化。
    (3)设计一个主页布局页面,界面设计如图 2 所示,页面主题可以自定要求
    i. 使用 div 进行页面布局 ,定义各个部分的 CSS 样式表,通过 id 或 class 属性将样 式
    作用于每一个 div,完成页面的布局。
    ii. 实现响应式布局,分为 4 种情况:
    a) 浏览器窗口大于 1000px , Left 占 300px 固定宽度,剩余宽度给 Body
    b)浏览器窗口小于 1000px,且大于 800px , Left 占 30%,剩余宽度给 body
    c) 浏览器窗口小于 800px,且大于 480px ,显示 1 列,宽度设为 auto,不浮动;
    d)浏览器窗口小于 480px,显示 1 列,并隐藏 Left
    1.2 实验目的
    (1) 掌握 Web 服务器环境的搭建
    (2) 掌握 HTML 静态网页设计与布局
    (3) 掌握 CSS 技术美化网页的方法
    (4) 掌握 JavaScript 技术控制网页的方法

    二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻

    辑或者算法描述)
    2.1 配置 tomcat 服务器
    下载 tomcat10 服务器压缩包,解压到 D 盘。并修改配置文件,设置端口号为 8080,修改日志
    文件的编码为 GBK.
    2.2 设计用户输入表
    (1) 新建 html 文档,修改标题,引入 js 文件和 css 文件。
    (2) 使用 form 表单,form 表单中使用

    来控制布局。
    (3) 加入标签用来输入内容,设置并设置其 type 来设置输入的格式。
    (4) 加入标签作为文本区输入内容。
    (5) 通过 onchange 来监听输入区的变化,通过 document.getElementById("").value 来获得输入
    的内容。从而时刻监听。
    (6) 通过正则表达式来判断用户输入的内容是否符合规范。
    var emailreg = /^([a-zA-Z]|[0-9])(\w|-)+@[a-zA-Z0-9]+.([a-zA-Z]{2,4})$/;
    var cardidreg=/\d{15}|\d{18}/;
    用 test()来验证正则表达式。
    (7) 当点击提交时,使用 window.open()来打开一个窗口,用来提示用户信息。
    2.3 设置布局页面
    (1) 将页面划分四个区域,包括首部,左边导航,中间主体,尾部。
    (2) 设置各自的高度其中将左边导航设置宽度为 30%。
    (3) 添加页面响应样式。@media screen and (max-width: ***px)。根据屏幕的宽度来调整页面
    布局。三、主要仪器设备及耗材
    代码编辑器:notepad++.
    结果预览:谷歌浏览器。

    第二部分:实验调试与结果分析(可加页)

    一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

    1.1 遇到的问题。
    (1) 单选框无法只能选中一个。
    (2) 屏幕宽度变化时,页面布局没用改变。
    1.2 调试过程,解决办法。
    (1) 单选框中两个标签要设置同样的 name 值。
    (2) 在@media screen and (max-width: 1000px)中,值要和 max-width 中间有一个空格。

    二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

    2.1 Form 表单实验结果。
    (1) Form 表单的页面如图 3.
    (2) Form 表单不按照要求输入信息时的提示如图 4.
    (3) Form 表单文本输入区剩余输入字符数提示如图 5.
    (4) Form 表单提交时提示如图 6.
    图 3 图 4
    图 5 图 62.2 页面布局实验结果
    (1) 原界面如图 7.
    (2) 屏幕宽度小于 1000 时,界面如图 8.
    (3) 屏幕宽度小于 800 时,界面如图 9.
    (4) 屏幕宽度小于 450 时,界面如图 10.
    图 7 图 8

    图 9 图 10

    三、实验小结、建议及体会

    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    实验二

    第一部分:实验分析与设计(可加页)

    一、实验内容描述(问题域描述)

    1.1 实验内容
    (1) 在个人电脑上安装 MySQL 服务器,请记录配置的步骤,以及配置成功后的截图。在 MySQL
    数据库服务器中,创建一个新的数据库 qcdata,并且在里面新建一个 UserAccount 表,表中
    包含这些字段:编号(int),姓名(string),密码(string) ,性别(string) , 出生年月(date) 存款
    金额(float)。
    (2) 采用 JSP+Servlet+JavaBean 技术编写一个 Web 应用程序,实现用户的开户,编辑, 查询,
    销户。
    (3) 进一步实现用户的存款,取款和转账功能。(选做)
    要求:
    i. 界面风格自行设计,符合一般用户使用习惯
    ii. 界面实现响应式布局,适合 Pad 用户和手机用户使用
    1.2 实验目的
    (1) 掌握 Intelli J 集成开发平台。
    (2) 掌握 MySQL 数据库的安装和配置。
    (3) 掌握 JSP 编程技术。
    (4) 掌握 Servlet 编程技术。
    (5) 掌握 JavaBean 编程技术。
    (6) 理解 MVC 编程模式。

    二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻 辑或者算法描述)

    2.1 前端控制层
    (1) 前端控制类添加@WebServlet(url)注解,表示此为 controller 类。用以处理 url 的网络请求。
    (2) 继承 HttpServlet 类,实现其中的 doGET()和 doPOST()方法,来处理前端的网络请求。
    (3) doGET()和 doPOST()方法将调用 service 中的类来完成数据处理。
    2.2 数据服务成。
    对数据进行处理,如数据的类型的转换,数据内容的判断等。并调用 dao 中类进行数据持久化。
    2.3 数据库接口层。
    (1) ComConfig 类为配置类,其中配置了连接 sqlserver 的相关参数。如账号,密码,驱动等。
    (2) 祖类 DaoBase 用于数据库连接。
    (3) UserDom 类为实体类,与数据库中的 UserAccount 表对应。
    (4) UserAccountDao 类进行执行 sql 语句。2.4 前端页面
    (1) Jsp 文件,通过 serrion 来获取当前用户的信息。
    (2) 使用 var xmlhttp=new XMLHttpRequest();来执行前后端通信。
    三、主要仪器设备及耗材
    开发工具:idea
    Web 服务器:tomcat
    数据库:sqlserver
    页面模板引擎:tomcat jsp-api
    架构:MVC
    Js 库:jquery

    第二部分:实验调试与结果分析(可加页)

    一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

    1.1 遇到的问题
    (1) 无法解析 jsp。
    (2) 无法解释@WebServlet()。
    (3) @WebServlet()不起作用。
    (4) 无法加载 sqlserver 驱动。
    (5) 后端内容修改,但是前端无法更新。
    1.2 调试过程,解决方法
    (1) 引入 tomcat 文件夹下 lib 文件夹下的 jsp-api 库。
    (2) 引入 tomcat 文件夹下 lib 文件夹下的 servlet-api 库。
    (3) 引入 tomcat 支持。
    (4) 将 sqlserver 的驱动放置在 WRB-INF/lib 文件夹下,将其作为项目部署到 tomcat.
    [注]由于 sqljdbc42 在 tomcat 中部署存在的问题,当停止服务时,并不会 sqljdbc 并不会释
    放对数据库的连接,会持续报出多连接的警告,但是并不影响对数据库的使用。可通过主动
    配置连接池来管理或者降低 tomcat 版本。
    (5) 将 webapp 前端内容标注为资源文件。更改配置,当框架停用时更新资源。清楚浏览器缓存,
    当调试时,打开浏览器开发者工具,来防止页面记录。

    二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

    2.1 登录界面结果如图 1.
    图 12.2 注册界面结果如图 2.
    图 2
    2.3 主页界面如图 3
    2.4 查询个人信息界面如图 4

    图 3 图 4
    2.5 修改个人信息界面如图 5 和图 6

    图 5 图 6
    2.7 取款的界面如图 7,取款成功的界面如图 8

    图 7 图 82.8 转账界面如图 9,转账成功后对方账户界面如图 10

    图 9 图 0

    三、实验小结、建议及体会

    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

    实验三

    第一部分:实验分析与设计(可加页)

    一、实验内容描述(问题域描述)

    1.1 实验内容
    (1)采用 SSM 框架来实现实验二中的 Web 应用程序,实现用户的开户,编辑,查询, 销户。
    (2)进一步实现用户的存款,取款和转账功能。(选做)
    要求:
    i. 界面风格自行设计,符合一般用户使用习惯
    ii. 界面实现响应式布局,适合 Pad 用户和手机用户使用
    1.2 实验目的
    (1) 掌握 Spring 框架技术
    (2) 掌握 SpringMVC 技术
    (3) 掌握 Mybatis 技术

    二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻 辑或者算法描述)

    2.1 配置 pom.xml 文件
    (1) 引入 thymeleaf 模板引擎用来解析前端页面。
    (2) 引入 com.microsoft.sqlserver 数据库驱动。
    (3) 引入 com.alibaba 用来封装 JSON,进行数据传输。
    (4) 引入 org.projectlombok 进行实体类自动注解。
    2.2 全局配置
    (1) 新建 application.yaml 文件。程序会自动扫描其中的配置。
    (2) 配置 spring 的 datasource。来配置数据库的驱动,地址,账号和参数。
    (3) 配置 thymeleaf 的路径和缓存。
    (4) Mybatis 扫描的 xml 文件和实体类包。
    (5) 配置@Configuration 类,用来自定义页面映射。
    2.3 前端控制层
    (1) 类之前添加@Controller 注解,标注此为 controller 类,用来处理网络请求。
    (2) 函数前@RequestMapping 注解,标注此函数用来处理该 url 的请求。
    (3) 通过@Autowired 自动注解来获得 Service 的服务。
    2.4 数据服务层。
    (1) 类之前标注@Service,标注此类为 service 类。
    (2) 通过@Autowired 自动注解,来获取 Mybatis 的 mapper 接口的服务。2.5 数据库接口层
    (1) 接口前添加@Mapper,标注此接口为 mapper 的接口,程序执行时,mybatis 会自动扫描此类,
    并与对应的 xml 文件绑定,执行 sql 语句。
    (2) Resource 文件夹下新建 mybatis/mapper 文件夹,里面防止 mapper 的 xml 文件,根据 2.2 的
    配置,mybatis 会扫描此 xml 文件,并执行其中的 sql 语句。
    2.6 前端
    (1) 使用 thymeleaf 来获取相关后端设置的相关参数。
    (2) 使用 var xmlhttp=new XMLHttpRequest();来执行前后端通信。

    三、主要仪器设备及耗材

    开发工具:idea
    后端框架:springboot
    Web 服务器:tomcat
    数据库:sqlserver
    数据库连接:mybatis
    页面模板引擎:thymeleaf
    架构:MVC
    Js 库:jquery
    项目托管:MAVEN

    第二部分:实验调试与结果分析(可加页)

    一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

    1.1 遇到的问题
    (1) 前端页面无法更新。
    (2) 前端找不到访问的页面。
    1.2 调试过程,解决办法
    (1) 在 application.yaml 文件中配置 thymeleaf,关闭其缓存。
    (2) 自定义配置类,添加@Configuration 注解,标注此为配置类。添加接口 WebMvcConfigurer,
    实现其 addViewControllers(ViewControllerRegistry registry)函数,即可自定义页面映射。

    二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

    2.1 登录界面如图 1,注册界面如图 2

    图 1 图 22.2 修改个人信息界面如图 3 和图 4

    图 3 图 4
    2.3 取款界面和取款成功界面如图 5 和图 6

    图 5 图 6
    2.4 转账界面如图 7,转账成功后对方账户界面如图 8

    图 7 图 8
    2.5 存款界面如图 9,存款成功界面如图 10

    图 9 图 10

    三、实验小结、建议及体会

    ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp

    展开全文
  • 包含源代码和截图
  • 实验课题 会话技术Cookie和Session的应用 二. 实验目的 1.掌握Cookie对象和常用API的运用。 2.掌握Session对象和常用API的运用。 三. 实验内容 1、完成课本任务5-2。 2、完成课本任务5-3。 四. 实验步骤 在以下表格...

    一.实验课题
    会话技术Cookie和Session的应用

    二. 实验目的
    1.掌握Cookie对象和常用API的运用。
    2.掌握Session对象和常用API的运用。

    三. 实验内容
    1、完成课本任务5-2。
    2、完成课本任务5-3。

    四. 实验步骤
    在以下表格中给出实验内容的相应代码。

    5-2 实现购物车
    BOOK.java

    1./** 
    2. * BOOK.java 
    3. */  
    4.  
    5.package sessioin.shoppingcar;  
    6.  
    7./** 
    8. * @Title:BookStore Shopping cart 
    9. * @Description: [用session建一个购物车] 
    10. * @Param:  
    11. * @author <a href="mail to: 1018726071@qq.com">JSQ97</a> 
    12. * @CreateDate: 2020年5月30日 下午4:08:01</p>  
    13. * @update: [序号][日期YYYY-MM-DD] [更改人姓名][变更描述]      
    14. *  
    15. *     1.方法与步骤 
    16. *      1)创建Book封装图书信息:Book 
    17. *      2)创建BookDataBase 模拟数据库,里面保存图书 
    18. *      3)提供图书的购买页面:ListBookServlet 
    19. *      4)添加购物车:PurcharseServlet 
    20. *      5)回显购物车图书信息:CartServlet 
    21. */  
    22.public class Book {  
    23.    private String id;  
    24.    private String name;  
    25.    //Alt+shift+s 创造构造参数快捷键  
    26.    /** 
    27.     *  
    28.     */  
    29.    public Book() {  
    30.          
    31.    }  
    32.      
    33.    /** 
    34.     * @param id 
    35.     * @param name 
    36.     */  
    37.    public Book(String id, String name) {  
    38.        this.id = id;  
    39.        this.name = name;  
    40.    }  
    41.      
    42.    /** 
    43.     * @return the id  
    44.     */  
    45.    public String getId() {  
    46.        return id;  
    47.    }  
    48.    /** 
    49.     * @param id the id to set 
    50.     */  
    51.    public void setId(String id) {  
    52.        this.id = id;  
    53.    }  
    54.    /** 
    55.     * @return the name 
    56.     */  
    57.    public String getName() {  
    58.        return name;  
    59.    }  
    60.    /** 
    61.     * @param name the name to set 
    62.     */  
    63.    public void setName(String name) {  
    64.        this.name = name;  
    65.    }  
    66.      
    67.}  
    

    BookStoreDataBase.java

    1.package sessioin.shoppingcar;  
    2.  
    3.import java.util.Collection;  
    4.import java.util.LinkedHashMap;  
    5.import java.util.Map;  
    6.  
    7./** 
    8. * @Title:BookStoreDataBase 
    9. * @Description: [创建一个模拟的数据库] 
    10. * @Param:  
    11. * @author <a href="mail to: 1018726071@qq.com">JSQ97</a> 
    12. * @CreateDate: 2020年5月30日 下午4:15:50</p>  
    13. * @update: [序号][日期YYYY-MM-DD] [更改人姓名][变更描述]      
    14. */  
    15.public class BookDataBase {  
    16.    /** 
    17.     * 创建模拟数据库,static静态代码块内内容只加载一次 
    18.     */  
    19.    private static Map<String,Book> map = new LinkedHashMap<String,Book>();  
    20.    static {  
    21.        map.put("1",new Book("1","javaWeb"));  
    22.        map.put("2",new Book("2","jdbc入门"));  
    23.        map.put("3",new Book("3","java基础"));  
    24.        map.put("4",new Book("4","Struts框架"));  
    25.        map.put("5",new Book("5","hibernate框架"));  
    26.    }  
    27.    //1. 得到所有图书的方法  
    28.    /** 
    29.     * @return 
    30.     */  
    31.    public static Collection<Book> getAll(){  
    32.        return map.values();  
    33.    }  
    34.    //2. 根据map的key,也就是图书id来得到某一本图书  
    35.    /** 
    36.     * @param id 
    37.     * @return 
    38.     */  
    39.    public static Book getBook(String id) {  
    40.        return map.get(id);  
    41.    }  
    42.}  
    

    ListBookServlet.java

    1.package sessioin.shoppingcar;  
    2.  
    3.import java.io.IOException;  
    4.import java.io.PrintWriter;  
    5.import java.util.Collection;  
    6.  
    7.import javax.servlet.ServletException;  
    8.import javax.servlet.annotation.WebServlet;  
    9.import javax.servlet.http.HttpServlet;  
    10.import javax.servlet.http.HttpServletRequest;  
    11.import javax.servlet.http.HttpServletResponse;  
    12.  
    13./** 
    14. * 提供一个购买图书的页面 
    15. */  
    16.@WebServlet("/List")  
    17.public class ListBookServlet extends HttpServlet {  
    18.    private static final long serialVersionUID = 1L;  
    19.         
    20.    
    21.  
    22.    /** 
    23.     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    24.     */  
    25.    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    26.        // 处理响应中文的乱码问题  
    27.        response.setContentType("text/html;charset = utf-8");  
    28.        //1.得到所有的图书  
    29.        Collection<Book> books = BookDataBase.getAll();  
    30.        //2.回显页面  
    31.        PrintWriter out = response.getWriter();  
    32.        out.print("以下是本网站售卖的所有图书:"+ "<br/><br/>");  
    33.        //3.遍历集合,把图书回显页面  
    34.        for(Book b:books) {  
    35.            //4.得到图书的名称  
    36.            String name = b.getName();  
    37.            String id = b.getId();  
    38.            //5.提供一个购买图书的链接  
    39.            String url = "<a herf = '/BookStore/BookDataBase/purcharse?id = "+id+"'>点击购买</a>";  
    40.            out.print("图书名称:   "+name+"                "+url+"<br/><br/>");  
    41.        }  
    42.          
    43.    }  
    44.  
    45.    /** 
    46.     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    47.     */  
    48.    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    49.        // TODO Auto-generated method stub  
    50.        this.doGet(request, response);  
    51.    }  
    52.  
    53.}  
    

    CartServlet.java

    1.package servlet_test;  
    2.  
    3.import java.io.IOException;  
    4.import java.io.PrintWriter;  
    5.import java.util.List;  
    6.  
    7.import javax.servlet.ServletException;  
    8.import javax.servlet.http.HttpServlet;  
    9.import javax.servlet.http.HttpServletRequest;  
    10.import javax.servlet.http.HttpServletResponse;  
    11.import javax.servlet.http.HttpSession;  
    12.  
    13./** 
    14. * Servlet implementation class CartServlet 
    15. */  
    16.public class CartServlet extends HttpServlet {  
    17.    private static final long serialVersionUID = 1L;  
    18.  
    19.    /** 
    20.     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    21.     */  
    22.    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    23.        // TODO Auto-generated method stub  
    24.        response.setContentType("text/html;charset = utf-8");  
    25.        PrintWriter out = response.getWriter();  
    26.        //变量cart引用用户的购物车  
    27.        List<Book> cart = null;  
    28.        //变量pruFlag标记用户是否买过商品  
    29.        boolean pruFlag = true;  
    30.        //获得用户的session  
    31.        HttpSession session = request.getSession(false);  
    32.        //如果session为null,pruFlag设置为false  
    33.          
    34.        if(session == null) {  
    35.            pruFlag = false;  
    36.        }else {  
    37.            //获得用户购物车  
    38.            cart = (List) session.getAttribute("cart");  
    39.            //如果用过的购物车为null,pruFlage设置为False  
    40.            if(cart == null) {  
    41.                pruFlag = false;  
    42.            }  
    43.        }  
    44.        /* 
    45.        * 如果pruFlag为False,表明用户没有购买图书,重定向到ListServlet页面 
    46.        */  
    47.          
    48.        if(pruFlag = false) {  
    49.            out.write("对不起!您还没有购买任何商品!<br />");  
    50.        }else {  
    51.            //否则显示用户购买图书信息  
    52.            out.write("您购买的图书有: <br />");  
    53.            double price = 0;  
    54.            for(Book b:cart) {  
    55.                out.write(b.getName()+"<br/>");  
    56.            }  
    57.        }  
    58.    }  
    59.  
    60.    /** 
    61.     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    62.     */  
    63.    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    64.        // TODO Auto-generated method stub  
    65.        doGet(request, response);  
    66.    }  
    67.  
    68.}  
    

    PurchaseServlet.java

    1.package servlet_test;  
    2.  
    3.import java.io.IOException;  
    4.import java.util.ArrayList;  
    5.import java.util.List;  
    6.  
    7.import javax.servlet.ServletException;  
    8.import javax.servlet.http.Cookie;  
    9.import javax.servlet.http.HttpServlet;  
    10.import javax.servlet.http.HttpServletRequest;  
    11.import javax.servlet.http.HttpServletResponse;  
    12.import javax.servlet.http.HttpSession;  
    13.  
    14./** 
    15. * Servlet implementation class PurchaseServlet 
    16. */  
    17.public class PurchaseServlet extends HttpServlet {  
    18.    private static final long serialVersionUID = 1L;  
    19.  
    20.    /** 
    21.     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    22.     */  
    23.    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    24.        // 获得用户购买的商品  
    25.        String id = request.getParameter("id");  
    26.        if(id == null) {  
    27.            //如果id==null(没有此书),就重定向到listBookServlet页面  
    28.            String url = "/ListBookServlet";  
    29.            response.sendRedirect(url);//重定向  
    30.            return;  
    31.        }  
    32.          
    33.        Book b = BookDataBase.getBook(id);  
    34.        //创建或获得用户的session对象  
    35.        HttpSession session = request.getSession();  
    36.        //从session对象里获得用户的购物车  
    37.        List<Book> cart = (List)session.getAttribute("cart");  
    38.        if(cart == null) {  
    39.            //首次购买,为用户创建一个购物车(List集合模拟购物车)  
    40.            cart = new ArrayList<Book>();  
    41.            //将购物车存入Session对象  
    42.            session.setAttribute("cart", cart);  
    43.        }  
    44.            cart.add(b);//这个是购物车列表  
    45.            //创建cookie存放session的标识号  
    46.            Cookie cookie = new Cookie("UserID",session.getId());  
    47.            cookie.setMaxAge(60*30);//这个是cookie的有效时间:60s*30个=半小时  
    48.            cookie.setPath("/servlet_test");//设置该cookie项有效目录路径  
    49.            response.addCookie(cookie);  
    50.            //重定向到购物车页面  
    51.            String url = "/servlet_test/CartServlet";  
    52.            response.sendRedirect(url);  
    53.          
    54.    }  
    55.  
    56.    /** 
    57.     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    58.     */  
    59.    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    60.        // TODO Auto-generated method stub  
    61.        doGet(request, response);  
    62.    }  
    63.  
    64.}  
    

    CartServlet.java

    1.package servlet_test;  
    2.  
    3.import java.io.IOException;  
    4.import java.io.PrintWriter;  
    5.import java.util.List;  
    6.  
    7.import javax.servlet.ServletException;  
    8.import javax.servlet.http.HttpServlet;  
    9.import javax.servlet.http.HttpServletRequest;  
    10.import javax.servlet.http.HttpServletResponse;  
    11.import javax.servlet.http.HttpSession;  
    12.  
    13./** 
    14. * Servlet implementation class CartServlet 
    15. */  
    16.public class CartServlet extends HttpServlet {  
    17.    private static final long serialVersionUID = 1L;  
    18.  
    19.    /** 
    20.     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    21.     */  
    22.    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    23.        // TODO Auto-generated method stub  
    24.        response.setContentType("text/html;charset = utf-8");  
    25.        PrintWriter out = response.getWriter();  
    26.        //变量cart引用用户的购物车  
    27.        List<Book> cart = null;  
    28.        //变量pruFlag标记用户是否买过商品  
    29.        boolean pruFlag = true;  
    30.        //获得用户的session  
    31.        HttpSession session = request.getSession(false);  
    32.        //如果session为null,pruFlag设置为false  
    33.          
    34.        if(session == null) {  
    35.            pruFlag = false;  
    36.        }else {  
    37.            //获得用户购物车  
    38.            cart = (List) session.getAttribute("cart");  
    39.            //如果用过的购物车为null,pruFlage设置为False  
    40.            if(cart == null) {  
    41.                pruFlag = false;  
    42.            }  
    43.        }  
    44.        /* 
    45.        * 如果pruFlag为False,表明用户没有购买图书,重定向到ListServlet页面 
    46.        */  
    47.          
    48.        if(pruFlag = false) {  
    49.            out.write("对不起!您还没有购买任何商品!<br />");  
    50.        }else {  
    51.            //否则显示用户购买图书信息  
    52.            out.write("您购买的图书有: <br />");  
    53.            double price = 0;  
    54.            for(Book b:cart) {  
    55.                out.write(b.getName()+"<br/>");  
    56.            }  
    57.        }  
    58.    }  
    59.  
    60.    /** 
    61.     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    62.     */  
    63.    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    64.        // TODO Auto-generated method stub  
    65.        doGet(request, response);  
    66.    }  
    67.  
    68.}  
    

    5-3 实现用户登录
    IndexServlet.java

    1.package login;  
    2.  
    3.import java.io.IOException;  
    4.import javax.servlet.ServletException;  
    5.import javax.servlet.http.Cookie;  
    6.import javax.servlet.http.HttpServlet;  
    7.import javax.servlet.http.HttpServletRequest;  
    8.import javax.servlet.http.HttpServletResponse;  
    9.import javax.servlet.http.HttpSession;  
    10.  
    11./** 
    12. * Servlet implementation class IndexServlet 
    13. */  
    14.public class IndexServlet extends HttpServlet {  
    15.    private static final long serialVersionUID = 1L;  
    16.    /** 
    17.     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    18.     */  
    19.    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    20.        // 解决中文乱码  
    21.        response.setContentType("text/html;charset = utf-8");  
    22.        //创建或者获取保存用户信息的session对象  
    23.        HttpSession session = request.getSession();  
    24.        User user = (User) session.getAttribute("user");  
    25.        if(user == null) {  
    26.            response.getWriter().print("您还没有登录,请<a href = 'servlet_test/login.html'>登录</a>");  
    27.        }else {  
    28.            response.getWriter().print("您已登录,欢迎你 " + user.getUsername() + " !");  
    29.            response.getWriter().print("<a href = '/login/LogoutServlet'>退出</a>");  
    30.            //创建cookie存放Session的标识号  
    31.            Cookie cookie = new Cookie("JSESSIONID",session.getId());  
    32.            cookie.setMaxAge(60*30);  
    33.            cookie.setPath("/login");  
    34.            response.addCookie(cookie);  
    35.        }  
    36.    }  
    37.  
    38.    /** 
    39.     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    40.     */  
    41.    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    42.        // TODO Auto-generated method stub  
    43.        doGet(request, response);  
    44.    }  
    45.  
    46.}  
    

    LoginServlet.java

    1.package login;  
    2.  
    3.import java.io.IOException;  
    4.import java.io.PrintWriter;  
    5.  
    6.import javax.servlet.ServletException;  
    7.import javax.servlet.http.HttpServlet;  
    8.import javax.servlet.http.HttpServletRequest;  
    9.import javax.servlet.http.HttpServletResponse;  
    10.  
    11./** 
    12. * Servlet implementation class LoginServlet 
    13. */  
    14.public class LoginServlet extends HttpServlet {  
    15.    private static final long serialVersionUID = 1L;  
    16.    /** 
    17.     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    18.     */  
    19.    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    20.        // TODO Auto-generated method stub  
    21.        response.setContentType("text/html;charset = utf-8");  
    22.        String username = request.getParameter("username");  
    23.        String PSW = request.getParameter("PSW");  
    24.        PrintWriter pw = response.getWriter();  
    25.        //假设正确的用户名是JWH 密码是123 (这一段之后可以连接数据库扫描用户)  
    26.        if(("JWH").equals(username) && ("123").equals(PSW)) {  
    27.            User user = new User();  
    28.            user.setUsername(username);  
    29.            user.setPSW(PSW);  
    30.            request.getSession().setAttribute("user", user);  
    31.            response.sendRedirect("/login/IndexServlet");  
    32.        }else {  
    33.            pw.write("用户名或密码错误,登录失败");  
    34.        }  
    35.    }  
    36.  
    37.    /** 
    38.     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    39.     */  
    40.    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    41.        // TODO Auto-generated method stub  
    42.        doGet(request, response);  
    43.    }  
    44.  
    45.}  
    

    LogoutServlet.java

    1.package login;  
    2.  
    3.import java.io.IOException;  
    4.import javax.servlet.ServletException;  
    5.import javax.servlet.http.HttpServlet;  
    6.import javax.servlet.http.HttpServletRequest;  
    7.import javax.servlet.http.HttpServletResponse;  
    8.  
    9./** 
    10. * Servlet implementation class LogoutServlet 
    11. */  
    12.public class LogoutServlet extends HttpServlet {  
    13.    private static final long serialVersionUID = 1L;  
    14.    /** 
    15.     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    16.     */  
    17.    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    18.        // 将session对象中的user对象移除  
    19.        request.getSession().removeAttribute("user");  
    20.        response.sendRedirect("/login/IndexServlet");  
    21.    }  
    22.  
    23.    /** 
    24.     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    25.     */  
    26.    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    27.        // TODO Auto-generated method stub  
    28.        doGet(request, response);  
    29.    }  
    30.  
    31.}  
    

    Login.html

    1.<!DOCTYPE html>  
    2.<html>  
    3.<head>  
    4.<meta charset="UTF-8">  
    5.<title>login</title>  
    6.</head>  
    7.<body>  
    8.    <!-- form的action属性:必需的 action 属性规定当提交表单时,向何处发送表单数据 -->  
    9.    <form name="reg" action="login.LoginServlet" method="post">  
    10.        用户名:<input name = "username" type = "text" /><br />  
    11.        密码:<input name = "PSW" type = "password" /><br />  
    12.            <input type = "submit" value = "提交" id = "bt" />  
    13.    </form>  
    14.</body>  
    15.</html>  
    

    五. 实验结果(截图)
    此处对上述所有实验内容最终呈现的网页或操作界面进行截图展示
    1.购物车实现:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2.实现用户登录
    在这里插入图片描述
    在这里插入图片描述
    六.心得与体会(不少于100字)

    1. 找到了在word里插入好看的代码的方法:highlight不管用我秃了,好像highlight只能导出来HTML然后再粘贴。我直接用PlanetB网站一键生成代码,舒服多了。

    2. Session和Cookie的区别:
      1). cookie数据存放在客户的浏览器上,session数据放在服务器上。
      2). cookie主要用于登录网站:今天输入用户名密码登录了,第二天也可以直接打开。
      3). 而session主要是购物车:服务器端需要用session储存一些信息来判别。
      可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

      有关session的使用方法https://www.cnblogs.com/xdp-gacl/p/3855702.html

    3. 之前跟着视频做完一直都不知道为什么我那个点击购买的链接做不出来,后来跟着书改完代码发现可以做出来:
      把ListBookServlet.java里那个url去掉<a href></a>标签,放到out.Print里直接用”<a href = ‘”+url+”’>点击购买</a>。

    4. 关于点击购买后404页面的问题:ListBookServlet.java里的Url填错了我吐了。

    5. 关于购买第二本书的时候页面不显示cookie出错的问题:
      PurchaseServlet.java里的if(cart==null)的 } 缺失,导致首次创建完session后没有后续指令。(相当于只有if没有else)

    6. 关于login页面点击提交用户名密码后404,且登录IndexServlet可以正常跳转到login的问题(未解决):
      ★ 猜测1:login.html的action有问题,不知道post到哪了。检测action的url可以正常连接到LoginServlet.java
      解决1:尝试更改form的method,get、post、删除都试过了没用。
      ★ 猜测2:绝壁是LoginServlet出问题了!不能正常检测和链接到IndexServlet
      解决2:逐字逐句的对着书看了一遍,没有错误(疯狂挠头)。response的重定向链接也可以正常跳转。不懂为什么

    展开全文
  • Web系统开发实验报告

    2015-06-05 10:31:11
    1、掌握创建数据库、表的方法。 2、掌握使用ADO.NET模型操作数据库的基本步骤。 3、掌握SqlDataReder、SqlCommand等对象的使用方法。
  • 在Servlet中,如果当前Web资源不想处理请求时,可以通过forward()方法将当前请求传递给其它的Web资源进行处理,这种方式称为请求转发。本案例将模拟演示在一个servlet查询到用户id,然后请求转发到另外一个servlet,...
  • web开发技术实验报告

    千次阅读 2019-06-02 19:29:33
    classify.java package mybean.data; public class Classify { String id="",name="",backNews="请输入信息"; public String getId() { return id; } public void setId(String id) { ...public St...
  • web网站设计课程设计报告(实训报告)

    热门讨论 2010-01-05 19:25:42
    这个东西交作业很好不错哦 web网站设计 设计报告 实训报告 个人网站设计实训报告 web网站设计实训报告
  • 个人主页网站设计实验报告

    热门讨论 2010-10-23 22:29:53
    使用基本的HTML标签设计一个个人网站,只要至少有如下栏目:个人档案,个性栏目(题目自拟),电子相册,在线视听,信息反馈。 (2) 在HTML文档中使用表格;使用表单和常用HTML输入元素;使用框架;使用导航菜单;...
  • 6学时 实验题目:①Web Service环境搭建;②REST式服务作为一个HttpServlet类;③JAX-RSWebService;④;⑤;⑥ 常见报错:Severalports(8005,8080,8009)requiredbyTomcatv7.0Serveratlocalhostarealreadyinuse? ...
  • Web实验报告及代码

    2013-05-12 11:33:05
    使用word编写一个HTML文件,存为2-1.html,... ... ... 编写一个带有表格、图片和文字的页面,并添加背景颜色和背景音乐。 ... 编写一个带有map标记码的页面。...编写一个带有表单的页面,包括文本框、口令框、单选框、下拉菜单组件
  • 这是一个关于asp基础练习的课程设计作业,里面有教务处,学生,教师三大模块功能,详情见文档
  • 1、使用VSCode开发工具完成"青木商城"网站个人中心页面和订单支付确认页面的编写,具体页面布局和内容参考大型电商网站; 2、使用git进行代码管理并上传个人中心页面和订单支付确认页面到gitee或GitHub上; 3、将...
  • 网页设计实验报告

    2018-06-04 17:16:29
    此资源为原创,包含网页及实验报告,转载请注明出处。
  • 大二上学期的web选修课期末大作业,仅供参考,如果有错的希望更正,有问题可以私信,emmm,也想不到说啥了
  • Web实验课程报告

    2019-12-26 09:48:57
    本学期web实验课我做了两方面的内容,一方面是有机农场管理系统的继续完善,另一方面是系统模块功能的展,实现利用Cookie的登录注册功能。 仔细研究了去年的web项目,在有机农场管理系统的基础上更改了原系统的...
  • 网站建设实训的实验报告
  • 关于你的程序的功能,我在实验报告中致写了一下,你可以参考你们毕业设计那个在线系统的功能,对我给写的参考功能再完善一下。比如(1)学生子模块:能让学生在线申请或选择自己的设计型实验题目,并能上传自己的实验...
  • web实验报告——JSP动态网页编程

    千次阅读 2010-05-13 23:46:00
    实验报告一. 基本思路及实验结果(记录各种运行情况或页面的运行效果);1、使用TOMCAT服务器配置jsp应用1)打开TOMCAT/webapps子目录,创建一web应用(如myweb),将example0.jsp与example1.jsp文件复制入内,并在...
  • 网站规划与网页设计 课程实验--使用层叠样式表CSS(code+report)凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,611
精华内容 4,244
关键字:

web网站设计实验报告