Web程序设计实验指导书实验学时:28
实验一 JSP实验环境组建与JSP应用(2学时)
一、实验目的
(1)通过运行程序,了解JSP的运行原理;
(2)掌握JSP开发环境的配置和部署;
(3)部署运行JSP程序。
二、实验内容
1.开发环境搭建
Step1:安装和设置JDK
以jdk1.6为例,安装位置C:\Program Files\Java\jdk1.6.0_12
创建环境变量:JAVA_HOME为C:\Program Files\Java\jdk1.6.0_12
在建环境变量PATH中添加:%JAVA_HOME%\bin;
创建环境变量CLASSPATH:
%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Step2:安装支持JSP的Web服务器
以Tomcat6.0.29为例,安装位置d:\Tomcat6
Step3:安装MyEclipse
安装MyEclipse9
Step4:设置Tomcat,可以从MyEclipse中直接启动Tomcat6
操作步骤:Window→Preferences→MyEclipse Enterprise Workbench→MyEclipse→Servers→Tomcat→Tomcat6.x
●Tomcat Server选择Enable
●Tomcat home directory:d:\tomcat6
●设置Tomcat运行使用的JDK:展开Tomcat6.x,单击JDK,单击tomcat JDK
name:后的Add,在打开的页面中,单击JRE home后的Directory按钮,选择输入C:\Program Files\Java\jdk1.6.0_12
2.开发和运行JSP程序
?创建Web项目
File→New→Web Project(如:Myjsp)
?新建JSP文件(如firstJsp.jsp)
?编辑JSP文件
?发布项目到Tomcat
右击项目名称Myjsp→MyEclipse→Add and Remove Project Deployments
Project:选择Myjsp项目,并单击Add,弹出Project Deployments对话框,
在对话框中,选择server为Tomcat 6.x,并单击Finish
?运行测试
?启动Tomcat 6.x
?运行JSP文件
浏览器中输入:http://localhost:8080/Myjsp/firstJsp.jsp
3.练习
(1)编写一个JSP程序,在页面中输入系统时间,要求:输入的系统时间时判断当前时间是“上午”、“中午”还是“下午”,并给出友好的提示信息。例如,当前系统时间是上午,在页面输出“早上好,新的一天即将开始,你准备好了吗?”;当前系统时间是中午,在页面输出“午休时间,正午好时光!”;当前系统时间是下午,在页面中输出“下午继续努力工作吧”。
参考代码:
<%@page language="java"import="java.util.*,java.text.*"pageEncoding="I SO-8859-1"%>
<%
Date d=new Date();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss");
String time=format.format(d);
out.println("Current time is "+time);%>
<%
//Excise1.5
int h=d.getHours();
if(h>=1 && h<=12)
out.println(h+"hour Good morning");
elseif(h>=13 && h<=16)
out.println(h+"hour Good aftermoon");
else
out.println(h+"hour Good evening");
%>
(2)编写一个电子商城的用户注册页面,要求该主页面中包含用户设置的用户名、密码、真实姓名、性别、年龄等表单,并使用Javascript编写函数,当用户点击“提交”按钮时,会检查用户名、密码、真实姓名等项是否为空。
三、复习和预习内容
眼过千遍不如手动一遍,所以一定要多动手写程序,才可能真正的理解程序的逻辑和内涵。
复习JSP程序的结构、部署和运行过程;预习JSP语法的相关内容。希望大家能在实验中多思考,多给自己提问题,多设想几种可能。做实验时不要满足于验证书本知识。在以后的实验中,请读者自己设计具体的实验步骤,尽可能自己补充增加一些内容,以提高自己的实践能力。
实验二JSP语法(2学时)
一、实验目的
(1)掌握JSP文件的HTML元素等的使用。
(2)掌握JSP文件中的脚本元素、指令元素和动作元素,灵活使用JSP中的各种元素。
二、实验内容
1、通过include指令元素,制作一个新闻网页的首页,其中,该页面上侧包含新闻的logo 图片,左侧包含含有新闻类别的超链接信息,右侧包含所有新闻的查询信息。
(1)创建名称“top.jsp”页面,该页面的主要代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
新闻LOGO区域
(2)创建名称“left.jsp”页面,该页面的主要代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
新闻操作区域
(3)创建名称“right.jsp”页面,该页面的主要代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
新闻显示区域
(4)创建名称“down.jsp”页面,该页面的主要代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
网站版权信息区域
(5)创建名称“index.jsp”页面,该页面的主要代码如下:<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*" errorPage=""%>
<%@ include file="top.jsp"%> | |
<%@ include file="left.jsp"%> | <%@ include file="right.jsp"%> |
<%@ include file="down.jsp"%> |
(6)程序运行结果如下图所示。
2、编写一个电子商城的用户注册页面,要求该主页面中包含用户设置的用户名、密码、真实姓名、性别、年龄等表单,并使用JavaScript编写函数,当用户单击“提交”按钮时,会检测用户名、密码和真实姓名等项是否为空。
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*" errorPage=""%>
function userCheck() {
if (https://www.docsj.com/doc/5a18728609.html,ername.value == "") {
window.alert("请输入用户名");
return false;
}
if (document.form1.password.value == "") {
window.alert("请输入用户密码");
return false;
}
if (document.form1.repassword.value == "") {
window.alert("请输入密码确认");
return false;
}
if (document.form1.repassword.value != document.form1.password.value) {
window.alert("您输入的两次密码并不相同");
return false;
}
if (document.form1.realname.value == "") {
window.alert("请输入用户真实姓名!");
return false;
}
if (document.form1.realname.value == "") {
window.alert("请输入用户真实姓名!");
return false;
}
if (document.form1.age.value == "") {
window.alert("请输入用户年龄!");
return false;
}
if (document.form1.born.value == "") {
window.alert("请输入出生日期");
return false;
}
if (document.form1.address.value == "") {
window.alert("请输入地址");
return false;
}
if (document.form1.introduce.value == "") {
window.alert("请输入自我介绍");
return false;
}
return true;
}
程序运行结果如下图所示。
实验三JSP内置对象(4学时)
一、实验目的
(1)掌握内置对象request、response、session、application、out和exception等的含义、用法和作用域范围。
(2)在实际应用中,根据不同的需求使用JSP不同作用域范围的内置对象。
二、实验内容
1、实现客户端的登录和留言页面等。
(1) login.jsp:登录页面,如图3-1所示。
图3-1
(2) doLogin.jsp(无页面):登录处理页面,假定正确的用户名为admin,口令为123。如果用户名和口令不正确则显示登录错误信息,否则登录成功后,重定向到messageBoard.jsp(留言板页面),可以进行留言。
(3) messageBoard.jsp: 留言板页面,能实现如图3-1所示的留言。
图3-2
(4) showMessage.jsp:显示留言信息页面,如图3-3所示。该页面能显示留言者(必须为login.jsp页面中输入的用户名)、标题和内容,要求能正确显示图3-2所示的留言内容。提示:留言者的用session保存
图3-3
参考代码:
login.jsp:
<%@page language="java"import="java.util.*"pageEncoding="gb2312"%>
doLogin.jsp:
<%@page language="java"pageEncoding="gb2312"%>
<%
String userName=request.getParameter("username");//获取用户名
String passWord=request.getParameter("password");//获取口令
if(userName.equals("admin") && passWord.equals("123")){ //用户名和密码正确
session.setAttribute("name",userName); //用户名写入session,显示留言时需要
response.sendRedirect("messageBoard.jsp"); //重定向到留言页面
}
else{
response.sendError(500,"登陆错误,用户名或密码不正确!");
}
%>
messageBoard.jsp
<%@page contentType="text/html;charset=gb2312"%>
showMessage.jsp:
<%@page contentType="text/html; charset=GBK"%>
留言者:<%=session.getAttribute("name") %>
<%=message.getTitle() %>
<%=message.getContent() %>
<%=request.getParameter("title") %>
<%=request.getParameter("content") %>
bean.Message.java
package bean;
publicclass Message {
private String title; //存储留言标题
private String content; //存储留言内容
public String getContent() {
return content;
}
publicvoid setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
publicvoid setTitle(String title) {
this.title = title;
}
}
2、编写用户注册实例,当在用户注册页面中没有输入任何信息时,则返回用户注册页面,如果在用户注册页面中输入完整的用户注册信息后,则进入显示用户注册信息页面。(选做) (1)创建名称为“UserInfo.java”类文件,该文件的主要代码如下:
package com;
public class UserInfo {
private String username="";
private String password="";
private String repassword="";
private String realname="";
private String sex="";
private String age="";
private String born="";
private String address="";
private String introduce="";
public String getUsername() {
return username;
}
public void setUsername(String username) {
https://www.docsj.com/doc/5a18728609.html,ername = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) { this.password = password;
}
public String getRepassword() {
return repassword;
}
public void setRepassword(String repassword) { this.repassword = repassword;
}
public String getRealname() {
return realname;
}
public void setRealname(String realname) { this.realname = realname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getBorn() {
return born;
}
public void setBorn(String born) {
this.born = born;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
}
(2)用户注册页面的代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*" errorPage=""%>
function userCheck() {
if (https://www.docsj.com/doc/5a18728609.html,ername.value == "") {
window.alert("请输入用户名");
return false;
}
if (document.form1.password.value == "") {
window.alert("请输入用户密码");
return false;
}
if (document.form1.repassword.value == "") {
window.alert("请输入密码确认");
return false;
}
if (document.form1.repassword.value != document.form1.password.value) {
window.alert("您输入的两次密码并不相同");
return false;
}
if (document.form1.realname.value == "") {
window.alert("请输入用户真实姓名!");
return false;
}
if (document.form1.realname.value == "") {
window.alert("请输入用户真实姓名!");
return false;
}
if (document.form1.age.value == "") {
window.alert("请输入用户年龄!");
return false;
}
if (document.form1.born.value == "") {
window.alert("请输入出生日期");
return false;
}
if (document.form1.address.value == "") {
window.alert("请输入地址");
return false;
}
if (document.form1.introduce.value == "") {
window.alert("请输入自我介绍");
return false;
}
return true;
}
(3)显示用户注册信息的页面代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*" errorPage=""%>
<%request.setCharacterEncoding("gb2312");%>
用户名: | <%=userInfo.getUsername()%> |
密码: | <%=userInfo.getPassword()%> |
确认: | <%=userInfo.getRepassword()%> |
用户真实姓名: | <%=userInfo.getRealname()%> |
性别: | <%=userInfo.getSex()%> |
年龄: | <%=userInfo.getAge()%> |
出生: | <%=userInfo.getBorn()%> |
地址: | <%=userInfo.getAddress() %> |
介绍: | <%=userInfo.getIntroduce() %> |
(4)实例执行过程如下图所示。
三、复习和预习内容
眼过千遍不如手动一遍,所以一定要多动手写程序,才可能真正的理解程序的逻辑和内涵。
复习JSP语法;预习JSP内置对象的相关内容。希望大家能在实验中多思考,多给自己提问题,多设想几种可能。做实验时不要满足于验证书本知识。在以后的实验中,请读者自己设计具体的实验步骤,尽可能自己补充增加一些内容,以提高自己的实践能力。
Web应用程序设计综合实验报告题目:网上购物系统 学生姓名: XXX 学号: XXXXXXXXXXX 院(系): XXXXXXX 专业: XXXXXXXXXX 指导教师: XXXXXXXXXX 2014 年 7月 6 日
1、选题背景 随着计算机技术的发展和网络人口的增加,网络世界也越来越广播,也越来越来越丰富,网上商城已经成为网上购物的一股潮流。互联网的跨地域性和可交互性使其在与传统媒体行业和传统贸易行业的竞争中是具有不可抗拒的优势。在忙碌丰富的社会生活中,人们开始追求足不出户就能买到心仪的商品,是越来越多的上网爱好者实现购物的一种方式,对于企业来说,网络交易能大大提高交易速度、节约成本。在这种形势下,传统的依靠管理人员人工传递信息和数据的管理方式就无法满足企业日益增长的业务需求,因而开发了这样一个具有前台后台的网上商城系统,以满足购物者和企业的需求。 因此这次毕业设计题目就以目前现有的网上商城系统为研究对象,研究一般的网上商城的业务流程,猜测其各个功能模块及其组合、连接方式,并分析其具体的实现方式,最后使用Java加web服务器和数据库完成一个网上商城系统的主要功能模块。通过这样一个设计,可以提高自己Java编程的水准,也练习了怎样构建一个完整的系统,从系统的需求分析到设计,直至编码、测试并运行,熟悉并掌握一个完整的Web开发流程,为今后工作打下基础。 1.1设计任务 从以下几个方面实现网络商城的基本功能: 1、用户部分: (1)用户的登录和注册,用户必须注册才能购物,注册时系统会对注册信息进行验证,进入系统或是结账时,用户可以进行登录,登录时,如果密码错误,系统会进行验证并提示错误。 (2)浏览商品,实现用户可以在网络商店中随意浏览商品,商品按类别分类,方便用户查找不同类别的商品 (3)购物车管理,能实现添加商品、删除商品、更新商品的功能。 (4)生成订单,查看购物车后单击下一步则生成订单信息表,一旦提交订单,则购物车就不能被改变。 2、管理员部分:
Web程序设计实验报告 姓名:冯刚 学号:200905030324 班级:计科3班
Html代码: 1.首页代码