刘财进 实验5 WEB编程语言语法基础
实验5 WEB编程语言语法基础姓名:刘财进 学号:6100411185 班级:网工111班一、实验目的1、 理解JSP程序的运行机制;2、 掌握JSP注释、JSP指令、JSP动作和JSP脚本元素等基本语法。二、实验内容1、 显示服务器端和客户端时间。2、 根据提供的代码调试程序。理解JSP各种元素的使用。三、实验要求1、理解JSP程序的运行机制;2、重点掌握以下JSP元素:l HTML注释、隐藏注释、Java注释l page指令、include指令l <jsp:include>动作、<jsp:forward>动作、<jsp:param>动作l 声明、表达式、Scriptlet四、实验环境硬件环境:PC微机软件环境:Windows 操作系统、JDK1.3+Tomcat、文本编辑器(Notepad、editplus等)或者Frontpage或者Dreamweaver 五、实验步骤1、 在Tomcat安装目录下的webapps子目录下,创建一个jsp子目录,并在jsp子目录下创建一个WEB-INF子目录(注意大小写)。 2、 进入jsp子目录,编写一个简单的JSP程序cstime.jsp,要求程序中既能显示服务器端时间,也能显示客户端时间。3、 在jsp子目录下,输入下面所附的login.jsp、login_check.jsp、footer.jsp、welcome.jsp 四个文件的源码,然后在浏览器地址栏中输入http:/localhost:8080/jsp/login.jsp,观察浏览页面的结果,并分析login.jsp和login_check.jsp两个程序。六、程序源代码=程序(login.jsp)=<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.0 Transitional/EN"><% page language="java" contentType="text/html; charset=gb2312"%> <% page info="一个简单的登陆程序" %><html><head> <title>一个简单的登陆程序</title></head><body> <%-登陆界面-%> <div align="center"> 用户登录 <hr> <form method=get action=login_check.jsp> <table> <tr> <td>Please input your name</td> <td><input type=text name=name value=<%=request.getParameter("name")%>> </td> </tr> <tr> <td>Please input password</td> <td><input type=password name=password></td> </tr> <tr colspan=2> <td align=center><input type=submit value=login></td> </tr> </table> </form> </div> <jsp:include page="footer.jsp"/></body></html>=程序(login_check.jsp)=<% page contentType="text/html; charset=gb2312" %><%! String getDate() return new java.util.Date().toLocaleString(); %> <html><body><!-这是是一个典型的JSP,它包含了JSP中常用的各种元素-><%-进行登陆检查-%><% String name=request.getParameter("name"); String password=request.getParameter("password"); / if验证通过,forward->welcome.jsp /else forward->login.jsp if(password.equals("jspuser") %> <jsp:forward page="welcome.jsp"><jsp:param name="user" value="<%=name%>"/><jsp:param name="time" value="<%=getDate()%>"/></jsp:forward><% else %><jsp:forward page="login.jsp"><jsp:param name="user" value="<%=name%>"/></jsp:forward> <%></body></html>=程序(welcome.jsp)=<% page contentType="text/html; charset=gb2312" language="java" %>恭喜你于<%=request.getParameter("time")%>时刻登陆成功!<br>欢迎你,<%=request.getParameter("name")%>!<% include file="footer.jsp" %>=程序(footer.jsp)=<hr>WEB程序设计实验指导<!- page end ->=程序(cstime.jsp)=<% page language="java" contentType="text/html;charset=utf-8"%><% page import="java.util.*"%><html><head><title>显示服务器端和客户端时间</title></head><body><br/><%String dayStr="星期日","星期一","星期二","星期三","星期四","星期五","星期六"Date dnow=new Date();int dyear=1900+dnow.getYear();int dmonth=dnow.getMonth()+1;int ddate=dnow.getDate();String dday=dayStrdnow.getDay();int dhours=dnow.getHours();int dminutes=dnow.getMinutes();int dseconds=dnow.getSeconds();String dhoursStr;String dminutesStr;String dsecondsStr;if(dhours<10)dhoursStr="0"+dhours;elsedhoursStr=String.valueOf(dhours);if(dminutes<10)dminutesStr="0"+dminutes;elsedminutesStr=String.valueOf(dminutes); if(dseconds<10)dsecondsStr="0"+dseconds;elsedsecondsStr=String.valueOf(dseconds);out.print("<h1 style="color:red">当前服务器时间为:"+dyear+"年"+dmonth+"月"+ddate+"日 "+dday+" "+dhoursStr+":"+dminutesStr+":"+dsecondsStr+"</h1>");%><h1 id="time" style="color:blue"></h1><script type="text/javascript">function showTime () var dayStr="星期日","星期一","星期二","星期三","星期四","星期五","星期六"var now=new Date(); var year=1900+now.getYear(); var month=now.getMonth()+1; var date=now.getDate(); var day=dayStrnow.getDay(); var hours=now.getHours(); var minutes=now.getMinutes(); var seconds=now.getSeconds(); if(hours<10) hours="0"+hours;if(minutes<10) minutes="0"+minutes;if(seconds<10) seconds="0"+seconds;document.getElementById("time").innerHTML="当前客户端时间为:"+year+"年"+month+"月"+date+"日"+" "+day+" "+hours+":"+minutes+":"+seconds;setTimeout('showTime()',1000);showTime ();</script></body></html>七、截图 八实验小结1、请解释<%page include%>、<%include%>、<jsp:include>三者之间的本质区别。2、观察成功登陆后,welcome.jsp页面中是否有乱码,如果有,试着用多种方法解决这个问题,并解释出现乱码的原因以及解决乱码问题的道理。答:1:<% page %> 只能包含静态内容。 <%include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理, 把所有代码合在一起,编译成一个servlet <jsp:include>:所有代码分别处理,在页面被请求的时候才编译,被编译成多个 servlet,页面语法相对独立,处理 2:采用的编码不同,Eclipse会默认采用Iso-8859,这是老外的习惯编码,可以在 服务器端控制数据采用的编码输出到浏览器,并用命令控制浏览器采用同一 个编码来解码;