实验二 服务器端简单程序设计

一、实验目的 

通过一个小型网站的开发掌握JSP基础知识,加深对sessionrequestresponsecookie等对象的理解,掌握其使用方法,进一步深入掌握HTMLCSSJavaScript等知识

二、实验内容和基本要求

1) 编写index.jsp文件,展示某一类物品或知识的介绍,可以是歌曲、人物、名胜古迹等要求至少有三个条目,用户登录后才能浏览这三个条目的内容。如果用户尚未登录,需要显示用户为“游客”,否则显示用户名。页面下端设置超链接,指向login.jsp。如果用户尚未登录,单击了某一条目的内容,则系统自动转向login.jsp。

2) 编写login.jsp文件,该页面包含一个表单,表单中有两个input标记,分别让用户输入用户名和密码,还有一个登录按钮。当用户单击“登录”后,将表单数据以post的方式提交给check.jsp。

3) 编写check.jsp,该页面使用request对象获取客户端发送过来的用户名和密码,并对用户的合法性进行验证。如果用户输入的用户名和密码不相同,则提示用户登录失败,2秒钟之后自动转向login.jsp页面。如果用户输入的用户名和密码相同,则提示用户登录成功,2秒钟之后转入登录前页面。(提示:登录前页面的记录可以在用户单击的每个网页中,使用session对象的某个属性记录用户访问的当前网页)。

4) 编写三个条目的内容网页。每个网页的上端都需要展示登录的用户名。下端需要“回到首页”的超链接。这三个条目的内容网页只有用户登录后才能浏览。

5) 当用户合法登录后,客户端保留5分钟的Cookie。当用户关闭浏览器后,5分钟之内再次访问时可以免登陆。

6) 将网页源代码和浏览器截图写入实验报告。

三、实验步骤

浏览器截图:

 

 

 

 

 

 

 

代码:

1.

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

<%@ page import="javax.servlet.http.*" %>

<%@ page session="true" %>

 

<!DOCTYPE html>

<html>

<head>

   <title>学长介绍</title>

</head>

<body>

<%

   String username = (String) session.getAttribute("username");

   if(username == null) {

       username = "游客";

   }

%>

<h1>你好,<%= username %>!</h1>

 

<ul>

   <li><a href="song1.jsp">蒲熠星</a></li>

   <li><a href="song2.jsp">石凯</a></li>

   <li><a href="song3.jsp">郭文韬</a></li>

</ul>

<a href="login.jsp">登录</a>

</body>

</html>

 

2.

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

<%@ page import="javax.servlet.http.*" %>

<%@ page session="true" %>

 

<!DOCTYPE html>

<html>

<head>

   <title>验证结果</title>

</head>

<body>

<%

   String username = request.getParameter("username");

   String password = request.getParameter("password");

 

 

 

   if(username != null && password != null && username.equals(password)) {

       session.setAttribute("username", username);

       Cookie loginCookie = new Cookie("username", username);

       loginCookie.setMaxAge(300); // 设置Cookie持续时间为5分钟

       response.addCookie(loginCookie);

 

       String lastPage = request.getParameter("lastPage");

       if (lastPage == null || lastPage.trim().isEmpty()) {

           lastPage = "index.jsp"; // 默认页面

       }

       response.sendRedirect(lastPage); // 重定向到原试图访问的页面

       return;

   } else {

       out.print("登录失败,用户名和密码不匹配!");

       response.setHeader("Refresh", "2; URL=login.jsp");

   }

 

 

%>

</body>

</html>

 

 

 

 

3.

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

<%@ page import="javax.servlet.http.*" %>

<%@ page session="true" %>

 

<!DOCTYPE html>

<html>

<head>

   <title>登录</title>

</head>

<body>

<%

   String username = (String) session.getAttribute("username");

   if(username == null) {

       username = "游客";

   }

%>

<h1>你好,<%= username %>!</h1>

<form action="check.jsp" method="post">

   用户名:<input type="text" name="username"><br>

   密码:<input type="password" name="password"><br>

   <!-- 添加隐藏字段保存最后页面 -->

   <input type="hidden" name="lastPage" value="<%= session.getAttribute("lastPage") != null ? session.getAttribute("lastPage").toString() : "index.jsp" %>">

 

   <input type="submit" value="登录">

</form>

</body>

</html>

 

 

4.

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

<%@ page import="javax.servlet.http.*" %>

<%@ page session="true" %>

 

<!DOCTYPE html>

<html>

<head>

   <title>蒲熠星</title>

</head>

<body>

<%

 

   if (session.getAttribute("username") == null) {

       session.setAttribute("lastPage", request.getRequestURI()); // 保存试图访问的页面

       response.sendRedirect("login.jsp");

       return;

   }

 

 

String username = null; // 初始化用户名为null

   if (session.getAttribute("username") != null) {

       username = session.getAttribute("username").toString();

   } else {

       response.sendRedirect("login.jsp");

       return; // 重要:在重定向后调用 return,防止继续执行后续代码

   }

%>

<h1>欢迎, <%= username != null ? username : "游客" %>!</h1>

<h2>蒲熠星的详细介绍</h2>

 

 

<p>蒲熠星,1994年4月20日出生于四川省绵阳市,中国内地男游戏主播、演员、影评人、作家,本科毕业于南京大学,硕士毕业于约翰斯·霍普金斯大学。

   2014年,参加CETV-1全国大学生益智节目《天才知道》南京大学专场赛 ,最终获得全国第4名。

   2015年,参加CCTV-6电影益智青春真人秀节目《电影新青年》。

   2016年,参加江苏卫视答题闯关类电视节目《一站到底》,成功守擂6期。

   2017年,参加《一站到底》五年巅峰会,成为最终胜者,并获得“战神之神”称号。

   2018-2023,参加芒果多部综艺。

   2023年,作为导演拍摄记录片《卡车维修技术与猫》。

   2023年8月,出版长篇悬疑小说《有人自林中坠落》,该书入选央视网年度荐书盛典文学类推荐书单。

   2024年,发布新歌,开始参加音乐节。</p>

<a href="index.jsp">回到首页</a>

</body>

</html>

 

 

 

5.

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

<%@ page import="javax.servlet.http.*" %>

<%@ page session="true" %>

 

<!DOCTYPE html>

<html>

<head>

   <title>石凯</title>

</head>

<body>

<%

   if (session.getAttribute("username") == null) {

       session.setAttribute("lastPage", request.getRequestURI()); // 保存试图访问的页面

       response.sendRedirect("login.jsp");

       return;

   }

   String username = null; // 初始化用户名为null

   if (session.getAttribute("username") != null) {

       username = session.getAttribute("username").toString();

   } else {

       response.sendRedirect("login.jsp");

       return; // 重要:在重定向后调用 return,防止继续执行后续代码

   }

%>

<h1>欢迎, <%= username != null ? username : "游客" %>!</h1>

<h2>石凯的详细介绍</h2>

 

 

<p>石凯,1999年12月14日出生于湖南省岳阳市,中国内地男歌手、影视演员,毕业于四川师范大学

   2018年11月,以演唱成员的身份参加湖南卫视声乐演唱节目《声入人心第一季》 出道。

   2019年3月,推出个人首支数字单曲《麋鹿王》,跨出了他擅长的美声领域,在旋律上充满着符合青春气质的轻快明亮。

   11月,以“名侦探学院学员”的身份参加益智成长真人秀《明星大侦探之名侦探学院第一季》,后成为该节目的固定嘉宾。

   2020年6月3日,发行参与作词并演唱的益智成长真人秀节目《明星大侦探之名侦探学院》主题曲《NO.1——南波万》。

   7月29日参加芒果实景密室逃脱真人秀《密室大逃脱大神版第二季》,之后又接连录制了该节目的第三至第五季。

   4月15日,发布个人单曲《纸面战场》。

   2022年,相继发布个人单曲《独家听众》《YOU》《终场表演》《别明天就现在》

   2023年9月30日,石凯开启“K计划”个人巡演长沙站。

   2023年11月30日,石凯发布新专辑先行曲《数星一整夜》。

   12月14日,发布单曲《没留住你》。

   2024年1月30日,发布个人单曲《风》。</p>

<a href="index.jsp">回到首页</a>

</body>

</html>

 

 

6.

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

<%@ page import="javax.servlet.http.*" %>

<%@ page session="true" %>

 

<!DOCTYPE html>

<html>

<head>

   <title>郭文韬</title>

</head>

<body>

<%

   if (session.getAttribute("username") == null) {

       session.setAttribute("lastPage", request.getRequestURI()); // 保存试图访问的页面

       response.sendRedirect("login.jsp");

       return;

   }

   String username = null; // 初始化用户名为null

   if (session.getAttribute("username") != null) {

       username = session.getAttribute("username").toString();

   } else {

       response.sendRedirect("login.jsp");

       return; // 重要:在重定向后调用 return,防止继续执行后续代码

   }

%>

<h1>欢迎, <%= username != null ? username : "游客" %>!</h1>

<h2>郭文韬的详细介绍</h2>

 

 

<p>郭文韬,1994年4月10日出生于青海西宁大通县,中国内地男演员,毕业于北京大学光华管理学院。

 

   2012年以671分的高考总分获得青海省高考理科状元,毕业后主演了微电影《少城旧事》《浮尘弥漫》及《赵姑娘》。

   2017年作为“北大站队”队员参加江苏卫视答题闯关类电视节目《一站到底》世界名校争霸赛。

   2024年4月12日,发行单曲《勇敢的人先享受世界》。</p>

<a href="index.jsp">回到首页</a>

</body>

</html>

 

 

 

 

四、心得体会

通过本次实验,完成这个JSP实验后,我对于Web开发中的关键概念和技术有了更深入的理解。通过实际的开发实践,更加深入地理解了JSPJavaServer Pages)的基本原理和用法。实验中频繁使用到了sessionrequestresponsecookie等对象,这些是Web开发中非常常用的对象。学会了如何使用它们来传递数据、管理用户会话以及实现用户认证功能。加强了对HTMLCSSJavaScript等前端技术的应用能力,使页面更加美观、交互更加友好。实验要求用户登录后才能查看特定内容,这就涉及到了用户认证和会话管理。我意识到了在实际的Web开发中,保护用户隐私和安全是非常重要的,同时也需要提供良好的用户体验。

posted @     阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示