JSP基础实验(期末复习)

实验1 jsp开发环境搭建

一、搭建JSP开发环境

         JSP开发环境是用来开发、测试和运行JSP程序的地方。在此以JDK_1.7.0_75、apache-tomcat-8.0.52、EelipseLunaServiceRelease2(4.4.2)为例,安装配置JSP开发环境。

(一)安装JDK要点:安装完jdk后,需手动配置JDK_HOME、PATH和CLASS_PATH环境变量。

(二)安装Tomcat要点:若手动安装Tomcat,需配置CATALINA_HOME和PATH环境变量。安装后需要先测试TOMCAT:在浏览器中输入:http://localhost:8080访问Tomcat首页。

(三)安装Eclipse内容要点:

(1)绑定Eclipse与Tomcat。在Eclipse中选择“窗口”→“首选项”。依次单击“Server”→“RuntimeEnviroments”→“Add”,选择相应版本的Tomcat及其安装路径,单击Finish按钮,完成Eclipse的绑定配置。

(2)设置UTF-8编码方式为,防止出现乱码。在Eclipse中选择“窗口”→“首选项”。依次在“常规”→“工作空间”中的“文本文件编码”设置“其他”的值为“UTF-8”;在“常规”→“内容类型”→“Java源文件”中设置“缺省编码”的值为“UTF-8”;在“Web”→“JSPFiles”中将编码方式改为“UTF-8”

二、创建JSP网站,并制作简单的JSP网页

(一)创建一个JSP网站,并使用记事本制作一个JSP网页,在页面中显示“您好,这是我的第一个JSP站点。”

1.创建JSP网站和JSP网页。

在Tomcat的安装目录下webapps/Root下新建sy1站点文件夹,在其中使用记事本创建一个JSP文件,文件名为“sy1_1.jsp”。

<html>
<head>
<title>test.jsp</title>
</head>
<body>
<%out.println("您好,这是我的第一个JSP站点!");%>
</body></html>

2.发布测试创建的“test.jsp”文件。

在IE浏览器中输入:http://localhost:8080/sy1/sy1_1.jsp

3.查看网页中的汉字是否正常显示?如果显示为乱码,可做如下操作。在网页代码的第一行(或<html>的上面)插入如下代码,解决汉字为乱码的问题。

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

(二)使用Eclipse创建JSP网站,并制作一个简单JSP网页,在页面中显示100以内的和

1.创建Web项目。打开Eclipse开发环境,选择“文件”→“新建”→“DynamicWebProject”,在打开的对话框中,输入项目名“sy1”,并选定“TargetRuntime”为“ApacheTomcatv7.0”,点击“完成”按钮,完成Web项目的创建。

2.创建JSP文件。右单击“sy1”项目的“WebContent”目录,选择“新建”→“JSPFile”,在“NewJSPFile”对话框的文件名中输入“sy1_2.jsp”,点击“完成”按钮,完成JSP页面的创建。在页面的<body>标签中,输入以下代码:

<% int sum=0; for(int i=1;i<=100;i++){ sum+=i; } %>
	<% out.println("1到100的和为:"+sum); %>

3.运行JSP文件。在页面的空白处点击鼠标右键,选择“运行方式”→“RunonServer”运行JSP文件。

实验2 Web前端基础

任务一:创建并设计一个网站主页

1.打开Eelipse,新建一个JSP网站,名称为“sy2”。

2.新建一个JSP文件,并将其命名为“sy2_1.jsp”。

3.打开sy2_1.jsp页面,按照“图2.1效果图1”,制作机械工业出版社的网站首页。

4.要求:

(1)利用Dreamweaver软件进行前端网页设计

(2)CSS样式存放在style.css中

(3)图片存放在images文件夹中

(4)页面中的新闻列表内容要加入向上滚动效果(正常+无缝)图2.1效果图1

滚动文字(正常+无缝)代码:

1.正常滚动代码鼠标悬停

(1)文字滚动

<marquee direction="up" width="200px" onmouseover=stop() onmouseout=start() scrollAmount="1" scrollDelay="5">
	插入你要输入的文字
</marquee>

(2)图片滚动

<marquee onMouseOut=this.start() onMouseOver=this.stop() scrolldelay=2>
	<img src=图片地址>
		<img src=图片地址>
			<img src=图片地址>
				<img src=图片地址>
</marquee>

控制滚动方向direction=left左、up上;控制滚动速度scrollAmount=1

2.无缝滚动

占位

任务二:创建并设计一个表单网页

1.新建一个JSP文件,并将其命名为“sy2_2.jsp”。

2.打开sy2_2.jsp页面,按照“图2.2效果图2”,制作一个表单网页。

3.要求:

(1)制作一个简单的用户注册页面,包括用户名(username)、密码(password)、确认密码(pass2)、邮箱(useremai)和电话(uerphone),及注册和重置按钮。

<form action="zhuce.jsp" name="myForm" id="formsub" onSubmit="returnformsub()" method="post">
			<table cellpadding="0" cellspacing="0">
				<tr>
					<td>用户名:</td>
					<td>
						<input type="text" name="username" id="username" onClick="checkusername()" />
					</td>
					<td>
						<label id="usernameerror"></label>
					</td>
				</tr>
				<tr>
					<td>密码:</td>
					<td>
						<input type="password" name="pass" id="pass" onclick="checkpass()" />
					</td>
					<td>
						<label id="passerror"></label>
					</td>
				</tr>
				<tr>
					<td>确认密码:</td>
					<td>
						<input type="password" name="pass2" id="pass2" onclick="checkpass2()" />
					</td>
					<td>
						<label id="pass2error"></label>
					</td>
				</tr>
				<tr>
					<td>邮箱:</td>
					<td>
						<input type="text" name="useremail" id="useremail" onClick="checkuseremail()" />
					</td>
					<td>
						<label id="useremailerror"></label>
					</td>
				</tr>
				<tr>
					<td>电话:</td>
					<td>
						<input type="text" name="uerphone" id="uerphone" onClick="checkphone()" />
					</td>
					<td>
						<label id="uerphoneerror"></label>
					</td>
				</tr>
				<tr>
					<td>
						<input type="submit" value="注册" />
					</td>
					<td>
						<input type="reset" value="重置" />
					</td>
				</tr>
			</table>
		</form>

(2)对各输入项的内容使用Javascript进行验证。

<script type="text/javascript">
				function checkusername() {
					var username = document.getElementById("username");
					var usernameerror = document.getElementById("usernameerror");
					var unamevalue = username.value;
					if (unamevalue.length < 6 || unamevalue.length > 20) {
						usernameerror.innerHTML = "<font color='red'>用户格式不对</font>";
						return false;
					}
					else { usernameerror.innerHTML = "正确"; return true; }
				}
				function checkpass() {
					var pass = document.getElementById("pass");
					var passerror = document.getElementById("passerror");
					var passvalue = pass.value;
					if (passvalue.length < 6 || passvalue.length > 20) {
						passerror.innerHTML = "<font color='red'>密码格式不对,必须介于6至20</font>";
						return false;
					}
					else {
						passerror.innerHTML = "正确"; return true;
					}
				}
				function checkpass2() {
					var pass = document.getElementById("pass");
					var pass2 = document.getElementById("pass2");
					var pass2error = document.getElementById("pass2error");
					var passvalue = pass.value;
					var pass2value = pass2.value;
					if (passvalue != pass2value) {
						pass2error.innerHTML = "<font color='red'>密码不一致</font>";
						return false;
					}
					else {
						pass2error.innerHTML = "正确"; return true;
					}
				}
				function checkuseremail() {
					var useremail = document.getElementById("useremail");
					var useremailerror = document.getElementById("useremailerror");
					var useremailvalue = useremail.value;
					//js  /正则表达式/
					var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
					if (!reg.test(useremailvalue)) {
						useremailerror.innerHTML = "<font color='red'>邮箱格式不对</font>";
						return false;
					}
					else {
						useremailerror.innerHTML = "正确";
						return true;
					}
				}
				function checkphone() {
					var phone = document.getElementById("uerphone");
					var phoneerror = document.getElementById("uerphoneerror");
					var phonevalue = phone.value;
					if (phonevalue.length != 11) {
						phoneerror.innerHTML = "<font color='red'>手机号位数不正确</font>";
						return false;
					}
					else {
						phoneerror.innerHTML = "正确"; return true;
					}
				}
				function Required_Username() {
					var x = document.forms["myForm"]["username"].value;
					if (x == null || x == "") { alert("用户名不能为空!"); return false; }
				}
				function formsub() {
					if (Required_Username()) {
						if (checkusername() & checkpass() & checkpass2() & checkuseremail()) { return true; }
						else { return false; }
					}
					else { window.location.reload(); }
				}
			</script>

实验3 JSP语法基础

打开Eelipse,新建一个JSP网站,名称为“sy3”,并按以下任务要求完成各项任务。

任务一:编写程序片,输出1到100的和

1.新建一个JSP页面,并将其命名为“sy3_1.jsp”;

2.打开sy3_1.jsp页面,编写程序片,在页面中输出1到100的和;

3.在程序片的第一行和最后一行加上注释文字(注释方法任意),如“程序片开始”、“程序片结束”。

<%
    //计算1~100的和
    int sum=0;
    for(int i=1;i<=100;i++){
            sum+=i;
    }
    //循环接收输出和
%>
<% out.println("1到100的和为:"+sum); %>

任务二:获取并显示用户输入的用户名信息

1.新建两个JSP页面,分别是“sy3_2.jsp”和“showinfo.jsp”;

2.在sy3_2.jsp页面中插入一个表单,一个用于接收用户名的文本框和一个“提交”按钮,将用户输入的信息提交给“showinfo.jsp”页面

<form action="showinfo.jsp" method="post">
	用户名:<input type="text" name="yhm"></input>
	<input type="submit" value="提交"></input>
</form>

3.当输入用户名,并点击提交按钮后,用户名信息将显示在“showinfo.jsp”页面中。

<%="用户名为:" + request.getParameter("yhm")%>

获取表单提交来的值

<%=request.getParameter("username")%>

任务三:指令和动作引入网页

1.新建三个JSP页面,分别是“sy3_3.jsp”、“top.jsp”和“bottom.jsp”;

2.在“sy3_3.jsp”页面中使用表格快速创建一个简单的上中下布局网页框架,其中网页上部内容使用<%@includefile=""%>指令插入“top.jsp”网页,在网页下部使用<jsp:includepage=""/>动作插入“bottom.jsp”网页;

<table>
			<tr>
				<td>
					<%@ include file="top.jsp" %>
				</td>
			</tr>
			<tr>
				<td>
				中间
				</td>
			</tr>
			<tr>
				<td>
					<jsp:include page="bottom.jsp"/>
				</td>
			</tr>
		</table>

3.“top.jsp”和“bottom.jsp”分别用于网页上部和下部内容的显示,可对这两个网页做简单的内容设计。

动作元素

<jsp:include page=”bottom.jsp”flush=”true”/>

指令元素

<%@ include file="top.jsp" %>

任务四:获取并显示年月日的值

1.新建两个JSP页面,分别是“sy3_4.jsp”和“showtime.jsp”;

2.在“sy3_4.jsp”页面中插入一个表单,三个用于显示年、月、日值的下拉列表和一个“提交”按钮,将选择的日期信息提交给“showtime.jsp”页面,效果如下图所示;

<body>
	<p><b>自动获取年月日的值</b></p>
	<table>
		<tr>
			<td>出生日期:</td>
			<td>
				<form action="showtime.jsp" method="post">
					<select name="nian" id="nian">
						<% for(int i=2000;i<=2022;i++) out.print("<option value='"+i+"'>"+i+"</option>");
							%>
					</select>年

					<select name="yue" id="yue">
						<% for(int j=1;j<=12;j++) out.print("<option value='"+j+"'>"+j+"</option>");
							%>
					</select>月

					<select name="ri" id="ri">
						<% for(int k=1;k<=31;k++) out.print("<option value='"+k+"'>"+k+"</option>");
							%>
					</select>日
					&nbsp;&nbsp;<input type="submit" value="提交"></input>
				</form>
			</td>
		</tr>
	</table>
</body>

3.在“showinfo.jsp”中接收并显示用户在“sy3_4.jsp”页面中选择的日期信息。

<body>
<%=request.getParameter("nian")+"年"%>
<%=request.getParameter("yue")+"月"%>
<%=request.getParameter("ri")+"日"%>
</body>

实验4 JSP指令与动作的使用

任务一:显示系统当前的日期时间

时间格式设置方式1:

1.新建一个JSP页面“sy4_1.jsp”;

2.在sy4_1.jsp页面中使用page指令的import属性导入java.util.Date类或java.util.*类;

<%@ page import="java.util.Date" %>

3.在sy4_1.jsp页面中编写程序,使用Date对象的toLocaleString()方法获取并显示系统当前日期时间。

<body>
时间格式设置方式1:
<%
   Date dd=new Date();
   out.print(dd.toLocaleString());
%>
</body>

时间格式设置方式2:

1.新建一个JSP页面“sy4_2.jsp”;

2.在sy4_2.jsp页面中使用page指令的import属性导入java.util.*类和java.text.*类; 

<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>

3.在sy4_2.jsp页面中编写程序,使用SimpleDateFormat类格式化日期。

<body>
时间格式设置方式2:
<%
   Date dNow = new Date( );
   SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
   out.print( ft.format(dNow) );
%>
</body>

任务二:页面出现异常的处理

1.新建两个JSP页面,分别是“sy4_3.jsp”和“error.jsp”;

2.在“sy4_3.jsp”页面中使用page指令的errorPage属性指定页面出现异常时所转向的页面。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error.jsp" %>
<%
//此页面如果发生异常,将向error.jsp抛出异常,并令其进行处理
int x1=5;
int x2=0;
int x3=x1/x2;
out.print(x3);
%>	

3.在“error.jsp”页面中使用page指令的isErrorPage属性指定为出错页面,此页面可以使用exception异常对象处理错误信息

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true" %>
<body>出现错误,错误如下:
		<hr>
		<%=exception.toString()%>
			<%=exception.getMessage()%>
	</body>

	</html>
	<%response.setStatus(200); //设置响应的状态编码%>

4.运行“sy4_3.jsp”页面,查看结果。

任务三:使用指令和动作引入网页(同实验三的任务三)

1.新建三个JSP页面,分别是“sy4_4.jsp”、“top.jsp”和“bottom.jsp”;

2.在“sy4_4.jsp”页面中使用表格快速创建一个简单的上中下布局网页框架(如图4-1所示),其中,在网页上部使用<%@includefile=""%>指令插入“top.jsp”网页,在网页下部使用<jsp:includepage=""/>动作插入“bottom.jsp”网页;

3.“top.jsp”用于网页上部内容的显示,要求按下图所示制作一个导航栏内容(如图4-2所示)。

4.“bottom.jsp”用于网页下部内容的显示,要求按下图所示制作一个显示版权信息的页面(如图4-3所示)。

<body>
			<table border="1" width="880" align="center" cellspacing="0" cellpadding="0">
				<tr height="100" bgcolor="#2d2d2d" align="center">
					<td width="219">
						<font color="6ab84d" size="6"><b>logo</b></font>
					</td>
					<td colspan="3" width="800" align="right">
						<%@ include file="top.jsp" %>
					</td>
				</tr>
				<tr>
					<td bgcolor="#53d6d7" width="20%" height="500" align="center"><b>左侧栏目</b></td>
					<td bgcolor="#38cbca" width="60%" height="500" align="center"><b>主体内容</b></td>
					<td bgcolor="#53d6d7" width="20%" height="500" align="center"><b>新闻链接</b></td>
				</tr>
				<tr height="50" bgcolor="#2d2d2d" align="center">
					<td colspan="3">
						<font color="white" size="6"><b>
								<jsp:include page="bottom.jsp"/>
							</b></font>
					</td>
				</tr>
			</table>

任务四:forward动作跳转页面

1.新建三个JSP页面,分别是“sy4_5.jsp”、“CheckLogin.jsp”和“Success.jsp”;

2.在“sy4_5.jsp”页面中创建一个登录页面(如图4-4所示)图4-4登录页面

<body>
<form action="CheckLogin.jsp" method="post">
	<table>
		<tr>
			<td>输入用户名</td>
			<td>
				<input type="text" name="name">
			</td>
		</tr>
		<tr>
			<td>输入密码</td>
			<td>
				<input type="password" name="password">
			</td>
		</tr>
		<tr colspan=2>
			<td>
				<input type="submit" value="登录">
			</td>
			</tr>
	</table>
</form>
</body>

3.在“CheckLogin.jsp”页面中对登录的用户信息进行检测

<body>
		<% String name=request.getParameter("name"); 
           String password=request.getParameter("password");
			if(name.equals("zmr") && password.equals("123")) { %>
			<jsp:forward page="Success.jsp" />
			<% } else { %>
				<jsp:forward page="sy4_5.jsp" />
				<% } %>
	</body>

4.在“Success.jsp”页面中创建一个登录登录成功后的欢迎页面

<body>
<h1>登录成功</H1>欢迎<%=request.getParameter("name")%>进入系统!
</body>

实验5 JSP内置对象的使用1

打开Eelipse,新建一个JSP网站,名称为“sy5”,并按以下任务要求完成各项任务。

任务一:获取用户表单提交的简单信息

1.新建两个JSP页面,分别是“sy5_1.jsp”和“sy5_1a.jsp”;

2.打开sy5_1.jsp页面,制作一个用户信息提交页面(如图5-1所示),其中包含两个文本框和一个提交按钮。在文本框中输入数据后,点击“提交”按钮,将信息提交给sy5_1a.jsp页面文件处理;

<body>
		<form action="sy5_1a.jsp" method="post">
			请输入学号:<input type="text" name="xh"></input><br>
			请输入姓名:<input type="text" name="xm"></input><br>
			<input type="submit" name="submit" value="提交"></input>
			<input type="reset" name="reset" value="重置">
		</form>
	</body>

3.打开sy5_1a.jsp页面,在这个页面中,接收用户在sy5_1.jsp页面中填写过的信息,并将信息显示出来(如图5-2所示)。图5-1用户信息提交页面图5-2信息显示页面提示:

(1)使用request对象的getParameter()方法获取用户表单提交的信息例如:request.getParameter("name");

(2)使用request对象的setCharacterEncoding()方法解决表单提交出现乱码的问题例如:request.setCharacterEncoding("UTF-8");

<body>
		<% request.setCharacterEncoding("UTF-8"); 
		   String xh=request.getParameter("xh"); 
		   String xm=request.getParameter("xm"); 
		%>
		   客户端提交的信息如下:<br>
		<%="学号:" + request.getParameter("xh") %><br>
		<%="姓名:" + request.getParameter("xm") %><br>
	</body>

任务二:获取用户表单提交的综合信息

1.新建两个JSP页面,分别是“sy5_2.jsp”和“sy5_2a.jsp”;

2.打开sy5_2.jsp页面,制作一个用户注册页面(如图5-3所示),其中包含学号(text)、姓名(text)、性别(radio)、出生日期(select)、爱好(checkbox)、提交(submit)表单标签。在该页面中输入信息后,点击“提交”按钮,将信息提交给sy5_2a.jsp页面文件处理;

<body>
		<form action="sy5_2a.jsp" method="post">
			<h2>用户登录</h2>
			<table>
				<tr>
					<td>学号:</td>
					<td>
						<input type="text" name="xh"></input>
					</td>
				</tr>
				<tr>
					<td>姓 名:</td>
					<td>
						<input type="text" name="xm"></input>
					</td>
				</tr>
				<tr>
					<td>性 别:</td>
					<td>
						<input type="radio" name="sex" id="radio1" value="男" checked>男
						<input type="radio" name="sex" id="radio2" value="女">女
					</td>
				</tr>
				<tr>
					<td>出生日期:</td>
					<td>
						<select name="nian" id="selnian">
							<% for(int i=2000;i<=2022;i++) out.print("<option value='"+i+"'>"+i+"</option>");
								%>
						</select>年

						<select name="yue" id="selyue">
							<% for(int j=1;j<=12;j++) out.print("<option value='"+j+"'>"+j+"</option>");
								%>
						</select>月

						<select name="ri" id="selri">
							<% for(int k=1;k<=31;k++) out.print("<option value='"+k+"'>"+k+"</option>");
								%>
						</select>日
					</td>
				</tr>
				<tr>
					<td>爱好:</td>
					<td>
						<input type="checkbox" name="ah" id="zq" value="足球">足球
						<input type="checkbox" name="ah" id="lq" value="篮球">篮球
						<input type="checkbox" name="ah" id="ymq" value="羽毛球">羽毛球
						<input type="checkbox" name="ah" id="ppq" value="乒乓球">乒乓球
					</td>
				</tr>
				<tr>
					<td></td>
					<td colspan="2">
						<input type="submit" value="提交" />
						<input type="reset" value="重填" />
					</td>
				</tr>
			</table>
		</form>
	</body>

3.打开sy5_2a.jsp页面,在这个页面中,接收用户在sy5_2.jsp页面中填写过的信息,并将信息显示出来(如图5-4所示)。

<body>
		<% request.setCharacterEncoding("UTF-8"); 
			String xh=request.getParameter("xh"); 
			String xm=request.getParameter("xm"); 
			String sex=request.getParameter("sex"); 
			String nian=request.getParameter("nian");
			String yue=request.getParameter("yue"); 
			String ri=request.getParameter("ri");
			String ah=request.getParameter("ah");
		%>
		<h2>客户端提交的信息如下:</h2>
		<%="学号:" + request.getParameter("xh")%><br>
		<%="姓名:" + request.getParameter("xm")%><br>
		<%="性别:" + request.getParameter("sex")%><br>
		<%="出生日期:" + request.getParameter("nian")+"年"+ request.getParameter("yue")+"月"+ request.getParameter("ri")+"日"%><br>
		<%="爱好:" + request.getParameter("ah")%><br>
		爱好:
		<%String b[]=request.getParameterValues("ah"); 
		if(b!=null) { 
			for(int i=0;i<b.length;i++) 
			{
				out.println(" "+b[i]+" ");
				}
			}
			%>
</body>

获取复选框中的选中的选项

<%Stringb[]=request.getParameterValues("ah"); 
if(b!=null){ 
	for(int i=0;i<b.length;i++){ 
		out.print(""+b[i]+""); 
	} 
} 
%>

任务三:使用response对象的setHeader()方法实现页面刷新功能

1.新建一个JSP页面“sy5_3.jsp”;

2.打开sy5_3.jsp页面,在页面中使用java.util.Date函数显示系统的当前时间(如图5-5所示)。要求设置页面每隔3秒钟自动刷新一次。

<body>
		<h1>现在时间(自动刷新):<%=new java.util.Date().toLocaleString() %></h1>
		<% response.setHeader("refresh","3"); %>
	</body>

任务四:使用response对象的sendRedirect()方法实现页面重定向功能

1.新建三个JSP页面,分别是“sy5_4.jsp”、“sy5_4a.jsp”和“sy5_4b.jsp”;

2.打开sy5_4.jsp页面,制作一个用户登录页面(如图5-6所示),其中包含账号(text)、密码(password)、提交(submit)、重置(reset)表单标签。在该页面中输入信息后,点击“提交”按钮,将信息提交给sy5_4a.jsp页面文件处理;

<body>
		<h1>用户登陆系统</h1>
		<form action="sy5_4a.jsp" method="post">
			<table>
				<tr>
					<td> 用户名</td>
					<td><input type="text" name="name"></td>
				</tr>
				<tr>
					<td> 密 &nbsp; &nbsp;码</td>
					<td><input type="password" name="password"></td>
				</tr>
				<tr colspan=2>
					<td><input type="submit" value="登录"></td>
					<td><input type="reset" value="重置"></td>
				</tr>
			</table>
		</form>
	</body>

3.打开sy5_4a.jsp页面,在这个页面中,编写用于验证用户信息的程序片。如果账号和密码正确,则使用response对象的sendRedirect()方法跳转到sy5_4b.jsp页面,并显示欢迎用户的信息(如图5-7所示);如果账号和密码错误,则在当前页中显示错误提示信息“用户名或密码不正确,请重新输入!”

<body>
			<% 
			request.setCharacterEncoding("UTF-8"); 
			String name=request.getParameter("name"); 
			String password=request.getParameter("password"); 
			if(name.equals("root")&&password.equals("123456")) {
				response.sendRedirect("sy5_4b.jsp?aa="+name);}
			else{  
				out.println(" 提示:用户名或密码不正确,请重新输入!");
				} 
				%>

	</body>

sy5_4b.jsp页面

<body>
		<%request.setCharacterEncoding("UTF-8"); 
		String aaname=request.getParameter("aa"); 
		out.println("欢迎您,"+aaname+"用户");
			%>
	</body>

综合练习1

打开Eelipse,新建一个JSP网站,名称为“ZHLX1”,并按以下要求完成综合练习1的各项任务。

1.新建五个JSP页面,分别是“login.jsp”、“logincheck.jsp”、“hindex.jsp”、“adduser.jsp”和“userinfo.jsp”;

2.打开login.jsp页面,制作一个用户登录页面(如图1所示),点击“提交”按钮,将信息提交给logincheck.jsp页面文件处理;

<body>
			<form name="form1" action="logincheck.jsp" method="post">
				<h1>用户登录</h1>
				用户名:
				<input type="text" name="yhm" maxlength="8" placeholder="请输入用户名"><br><br>
				密码:
				<input type="password" name="pwd" maxlength="16" placeholder="请输入密码"><br><br>
				<input type="submit" value="提交" onclick="dlcheck()">
			</form>
		</body>

3.打开logincheck.jsp页面,在这个页面中,接收用户在login.jsp页面中提交的信息,并验证是否为合法用户名信息。

<body>
		<%String yh=request.getParameter("yhm"); 
		String mm=request.getParameter("pwd"); 
		if(yh.equals("")||mm.equals("")) { 
			out.print("用户名或密码不能为空"); 
			response.setHeader("Refresh","3;URL=login.jsp"); 
			}
			else { 
				if(yh.equals("zmr") &&mm.equals("123456")){ 
					response.sendRedirect("hindex.jsp?user="+yh);
					}
			else{
				out.print("用户名或密码不正确.3秒后跳转到登录页面"); 
				response.setHeader("Refresh","3;URL=login.jsp"); 
				} 
				}
				%>
	</body>

4.打开hindex.jsp页面,在这个页面中,接收用户在login.jsp页面中填写过的合法用户名信息,并将用户名信息显示出来(如图3所示)。

5.打开hindex.jsp页面,在这个页面中,在左侧导航单元格中,制作“用户注册”和“添加新闻”栏目,并为“用户注册”添加超链接,链接到“adduser.jsp”页面。

<body>
		<table border="1" width="880" cellspacing="0" cellpadding="0">
			<tr height="100" align="center">
				<td colspan="2">
					<%@ include file="top.jsp" %>
				</td>
			</tr>

			<tr height="25" align="left">
				<td colspan="2"> 欢迎您,<%=request.getParameter("user")%>进入系统!</td>
			</tr>

			<tr>
				<td  width="300px" height="500" align="center">
					<p><a href="adduser.jsp">用户注册</a></p>
					<p>添加新闻</p>
				</td>
				<td  width="580px" height="500" align="center"><b>右侧内容</b></td>
			</tr>
			<tr height="150" align="center">
					<td colspan="2">
						<font color="black" size="6"><b>后台主页——网页底部</b></font>
					</td>
				</tr>
		</table>
	</body>

6.参照hindex.jsp页面,并按图4样式,制作adduser.jsp页面。图4用户注册页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
	<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
	<html>

	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
		<style type="text/css">
			.nav {
				margin: 5px;
			}

			.nav li {
				list-style-type: none;
			}

			.nav ul {
				font-size: 12px;
				display: flex;
				margin-left: 50px;
				margin-right: 50px;
				justify-content: space-around;
			}

			.nav li:hover {
				color: orange;
			}
		</style>
	</head>

	<body>
		<table border="1" width="880"  cellspacing="0" cellpadding="0">
			<tr height="100" align="center">
				<td colspan="2">
					<h1>后台主页——顶部</h1>
				</td>
			</tr>

			<tr height="25" align="left">
				<td colspan="2">
					<div class="nav">
						<ul>
							<li>首页</li>
							<li>关于我们</li>
							<li>新闻资讯</li>
							<li>产品介绍</li>
							<li>解决方案</li>
							<li>新品推送</li>
							<li>资料下载</li>
							<li>加盟合作</li>
							<li>联系我们</li>
						</ul>
					</div>
				</td>
			</tr>

			<tr>
				<td width="300px" height="500" align="center">
					<p><a href="adduser.jsp">用户注册</a></p>
					<p>添加新闻</p>
				</td>
				<td bgcolor="#ccff90" width="580px" height="500" align="left">
					<form action="userinfo.jsp" method="post">
			<table>
				<tr>
					<td>学号:</td>
					<td>
						<input type="text" name="xh"></input>
					</td>
				</tr>
				<tr>
					<td>姓 名:</td>
					<td>
						<input type="text" name="xm"></input>
					</td>
				</tr>
				<tr>
					<td>性 别:</td>
					<td>
						<input type="radio" name="sex" id="radio1" value="男" checked>男
						<input type="radio" name="sex" id="radio2" value="女">女
					</td>
				</tr>
				<tr>
					<td>出生日期:</td>
					<td>
						<select name="nian" id="selnian">
							<% for(int i=2000;i<=2022;i++) out.print("<option value='"+i+"'>"+i+"</option>");
								%>
						</select>年

						<select name="yue" id="selyue">
							<% for(int j=1;j<=12;j++) out.print("<option value='"+j+"'>"+j+"</option>");
								%>
						</select>月

						<select name="ri" id="selri">
							<% for(int k=1;k<=31;k++) out.print("<option value='"+k+"'>"+k+"</option>");
								%>
						</select>日
					</td>
				</tr>
				<tr>
					<td>爱好:</td>
					<td>
						<input type="checkbox" name="ah" id="zq" value="足球">足球
						<input type="checkbox" name="ah" id="lq" value="篮球">篮球
						<input type="checkbox" name="ah" id="ymq" value="羽毛球">羽毛球
						<input type="checkbox" name="ah" id="ppq" value="乒乓球">乒乓球
					</td>
				</tr>
				<tr>
					<td></td>
					<td colspan="2">
						<input type="submit" value="提交" />
						<input type="reset" value="重填" />
					</td>
				</tr>
			</table>
		</form>
				</td>
			</tr>
			<tr height="150" align="center">
					<td colspan="2">
						<font color="black" size="6"><b>后台主页——网页底部</b></font>
					</td>
				</tr>
		</table>

	</body>

	</html>

7.打开userinfo.jsp页面,在这个页面中,接收用户在adduser.jsp页面中填写的用户注册信息,并将信息显示出来(代码片段同实验五 任务2)。

实验6 JSP内置对象的使用2

打开Eelipse,新建一个JSP网站,名称为“sy6”,并按以下任务要求完成各项任务。

任务一:使用session对象记录用户登录信息

1.新建两个JSP页面,分别是“sy6_1.jsp”、“sy6_1a.jsp”和“sy6_1b.jsp”;

2.打开sy6_1.jsp页面,制作一个用户登录页面(如图6-1所示),其中包含两个文本框、一个“提交”按钮和一个“重置”按钮。在文本框中输入数据后,点击“提交”按钮,将信息提交给ch6_1a.jsp页面文件处理;

3.打开sy6_1a.jsp页面,在这个页面中,接收用户在sy6_1.jsp页面中输入的登录用户信息,并进行登录信息验证操作。

要求:

(1)设置用户名“zhangsan”,密码“123”

(2)登录成功后,将用户名的值保存到session变量“yhm”中,将登录成功标志标志的值“OK”保存到session变量“flag”中,并直接跳转到sy6_1b.jsp页面(如图6-2所示);

(3)若登录失败,则提示“登录失败!”,并设置在3秒钟后跳转到sy6_1.jsp页面(如图6-3所示)。

  

<%
if (request.getParameter("userName")!=null && request.getParameter("pwd")!=null)
{
	String name = request.getParameter("userName");
	String pwd = request.getParameter("pwd");
	if(name.equals("root")&& pwd.equals("123456"))
	{
		session.setAttribute("flag","OK");
		session.setAttribute("yhm", name);
		response.sendRedirect("sy6_1b.jsp");
}
else
{
	out.print("登录失败!");
	out.println("<h3>3秒钟后,自动跳转到登录页面!</h3>");
	response.setHeader("Refresh","3;sy6_1.jsp");
	}
}
%>

sy6_1b.jsp

<%
String strYhm=(String)session.getAttribute("yhm");
String strLogin=(String)session.getAttribute("flag");
if (strYhm!=null && strLogin!=null && strLogin.equals("OK"))
{
	out.println("登陆成功!");
	out.println("<h3>欢迎["+strYhm+"]进入网站主页!</h3>");
}
else
{
	out.println("您没有权限访问该页面,请先登录!");
	response.setHeader("Refresh","3;URL=sy6_1.jsp");
}
%>

任务二:使用session对象实现一个简单的问卷调查功能

1.新建三个JSP页面,分别是“sy6_2.jsp”、“sy6_2a.jsp”和“sy6_2b.jsp”;

2.打开sy6_2.jsp页面,制作一个个人基本信息填报页面(如图6-4所示),其中包含一个文本框、两个单选按钮、一个下拉列表、一个“提交”按钮和一个“重置”按钮。在输入个人基本信息后,点击“提交”按钮,将进入ch6_2a.jsp问卷调查页面;

<body>
<form action="sy6_2a.jsp" method="post">
      <h2>个人基本信息填报页面</h2>
      <table>
        <tr>
          <td>姓 &nbsp; &nbsp; &nbsp; &nbsp;名:</td>
          <td>
            <input type="text" name="xm" ></input>
            <span>*</span>
          </td>
        </tr>
        <tr>
          <td>性 &nbsp; &nbsp; &nbsp; &nbsp;别:</td>
          <td>
            <input type="radio" name="sex" id="radio1" value="男" checked>男
            <input type="radio" name="sex" id="radio2" value="女" >女
          </td>
        </tr>
         <tr>
          <td>出生日期:</td>
          <td>
            <select name="zy" id="zy">
            <option>计算机科学与技术</option>
            <option>网络工程</option>
            <option>软件工程</option>
            <option>大数据</option>
            </select>
          </td>
        </tr>
        <tr>
          <td></td>
          <td colspan="2">
            <input type="submit" value="提交" />
            <input type="reset" value="重填" />
          </td>
        </tr>
      </table>
</form>

</body>

3.打开sy6_2a.jsp页面,在这个页面中,接收并显示用户在sy6_2.jsp页面中输入的个人姓名和专业信息,及此次问卷调查的题目(如图6-5所示)。问卷填写完毕后,点击“提交”按钮,将进入ch6_2b.jsp问卷结果显示页面;

要求:

(1)题目的数量及内容可任意设置

(2)将姓名的值保存到session变量“stuName”中图6-5问卷调查页面

<body>
<% 
request.setCharacterEncoding("UTF-8");
String xm1 =request.getParameter("xm");
String xb1 =request.getParameter("xb");
String zy1 =request.getParameter("zy");
out.print("谢谢" +zy1+"专业的" +xm1+"同学,请开始填写向卷"); 
session.setAttribute("stuName", xm1); %>
<form name="form1" method="post" action="sy6_2b.jsp">
<p>第1题:中国的首都是哪个城市? </p>
<p> <input type= "radio" name="t1" id="radio" value="北京">北京</p>
<p> <input type="radio" name= "t1" id="radio" value="天津">天津</p>
<p> <input type="radio" name="t1" id="radio" value="山东">山东</p>
<p> <input type="radio" name= "t1" id="radio" value="辽宁">辽宁</p>
<p>第2题:宁夏回族自治区的首府是哪个城市? </p>
<p> <input type="radio" name="t2" id="radio" value= "银川">银川</p>
<p> <input type= "radio" name="t2" id="radio" value= "石嘴山" >石嘴山</p>
<p> <input type="radio" name="t2" id="radio" value= "吴忠">吴忠</p>
<p> <input type= "radio" name="t2" id= "radio" value= "中卫">中卫</p>
<p> <input type= "submit" name=" button" id=”button" value= "提交">
<input type="reset" name= "button2" id="button2" value= "重置">
</form>
</body>

 4.打开sy6_2b.jsp页面,在这个页面中,显示答题人员的姓名信息及答题结果(如图6-6所示);

要求:

(1)使用session对象获取并显示“stuName”中的姓名信息

(2)使用request对象获取并显示各题目的答题结果

<body>
<% 
request.setCharacterEncoding("UTF-8");
String dtr= (String)session.getAttribute("stuName");
String t1a=request.getParameter("t1");
String t2a=request.getParameter("t2");
out.print(dtr+"同学,你的问卷填写结果是: <br>"); 
out.print("第1题: "+t1a+"<br>");
out.print("第2题: "+t2a);
%>
</body>

任务三:使用Application对象实现一个计数器

1.新建一个个JSP页面“sy6_3.jsp”;

2.打开sy6_3.jsp页面,使用application对象统计当前页面访问次数。

要求:

(1)若用户是第一次访问,则显示“欢迎访问您首次访问本网站!”信息,并显示访问量(如图6-7所示)

(2)若用户非首次访问,则显示“欢迎再次访问本网站!”信息,并显示访问量(如图6-8所示)

<body>
<% 
int fwCount=0;
if( application.getAttribute("number")==null){
	out.println("欢迎访问您首次访向本网站!<br>");
	fwCount=1; 
}
else{
	out.println("欢迎再次访问本网站!<br> ");
	fwCount =(Integer)application.getAttribute("number")+1;
}
application.setAttribute("number",fwCount); 
%>
当前网页访问量:<%=fwCount%>
</body>

实验7 JSP数据库操作1

任务一:MySQL和Navicat的安装和配置

任务二:使用mysql数据库管理工具创建数据库和数据表

1.使用Navicat for MySQL创建一个“newsdb”数据库,创建“tb_user”和“tb_news”数据表,表中具体字段及数据如下:

 2.使用Navicat for MySQL新建查询,并在查询编辑器中编写SQL命令,对tb_news表中的数据进行增、删、改、查操作。

(1)查询tb_user表中的所有字段的信息 select * from tb_user

(2)查询tb_user表中用户名和密码的信息 select 用户名,密码 from tb_user

(3)查询tb_user表中小强的密码信息 select 密码 from tb_user where 用户名='小强'

(4)查询tb_news表中标题和时间的信息 select 标题,时间 fromt b_news

(5)查询tb_news表中编号为5的所有字段信息select * from tb_news where 编号=5

(6)查询tb_news表中前3行的标题和时间信息select * from tb_news limit 3

(7)查询tb_news表中前3行的标题和时间信息select * from tb_news limit 0,3

(8)查询tb_news表中从第2行开始,连续2行的标题和时间信息select * from tb_news limit 1,2

(9)查询tb_news表中前5行的标题和时间信息,按照时间的降序排序select * from tb_news order by 时间 desc limit 5

(10)修改tb_news表中编号为5的新闻的作者为“新华社”update tb_news set 作者='新华社' where 编号=5

(11)在tb_news表中任意增加一行数据,其中,作者为“曾山”insert into tb_news(标题,内容,作者,时间)values('曾山标题','曾山内容','曾山','2020-11-12')

(12)删除tb_news表中作者为“曾山”的数据 delete from tb_new swhere 作者='曾山'

任务三:使用JDBC的方式连接MySQL数据库并进行查询操作

1.打开Eelipse,新建一个JSP网站,名称为“sy7”

2.新建1个JSP页面“sy7_1.jsp”;

3.打开sy7_1.jsp页面,制作一个新闻列表页面(如图7-1所示),编写如下代码,连接newsdb数据库,将tb_news表中前5行新闻的新闻标题查询出来,并显示在网页中。

<body>   
   <h1>新闻列表页</h1>
   <%
   Class.forName("com.mysql.jdbc.Driver");
   Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/newsdb","root","123456");
   Statement stmt=conn.createStatement();
   ResultSet rs=stmt.executeQuery("select * from tb_news");
   while(rs.next()){
	   out.print(rs.getString("biaoti")+"<br>");
	}
	rs.close();
	stmt.close();
	conn.close();
	%>
 </body>

实验8 JSP数据库操作2

任务一:使用mysql数据库管理工具创建数据库和数据表 使用NavicatforMySQL创建一个“newsdb”数据库,创建一个“tb_news”数据表,表中具体字段属性及数据内容同实验7:

任务二:使用JDBC的方式连接MySQL数据库并进行查询操作

1.打开Eelipse,新建一个JSP网站,名称为“sy8”

2.新建2个JSP页面“sy8_1.jsp”和“sy8_1a.jsp”;

3.打开sy8_1.jsp页面,制作一个新闻列表页面(如图8-2所示),编写如下代码,连接newsdb数据库,从tb_news表中查询数据,并在页面中仅显示前5条新闻的标题和时间新闻的信息。

实现连接数据库并进行查询操作的步骤:

//第一步:将jar拷贝到WebContent/WEB-INF/lib目录中。
//第二步:在网页上部加入代码,导入java.sql包
<%@ page import="java.sql.*" %>
//第三步:在网页<body>标签中加入连接数据库并查询显示数据的代码
<% 
    String Driver="com.mysql.jdbc.Driver" ; 
	String URL="jdbc:mysql://127.0.0.1:3306/newsdb" ;
	Class.forName(Driver);
	Connection conn=DriverManager.getConnection(URL,"root","123456"); 
	Statement stmt=conn.createStatement(); 
	ResultSet rs=stmt.executeQuery("select * from tb_news limit 5"); 
%>


<h1>新闻列表</h1>
			<table border="1">
				<tr>
					<td width=200px>新闻标题</td>
					<td width=200px>发布时间</td>
				</tr>
				<% 
				while(rs.next()) { 
					out.print("<tr>");
					out.print("<td><a href=sy8_1a.jsp?newsid="+rs.getString("bianhao")+">"+rs.getString("biaoti")+"<a></td>");
					out.print("<td>"+rs.getString("time")+"</td>");
					out.print("</tr>");
					}
					rs.close();
					stmt.close();
					conn.close();
				%>
			</table>

4.打开sy8_1a.jsp页面,使得点击sy8_1.jsp中显示的任意一条新闻的标题或时间,在sy8_1a.jsp详细显示该新闻的详细内容(如图8-3所示)。

<body>
			<% 
			String Driver="com.mysql.jdbc.Driver" ; 
			String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ;
			Class.forName(Driver);
			Connection conn=DriverManager.getConnection(URL,"root","123456"); 
			Statement stmt=conn.createStatement(); 
			ResultSet rs=stmt.executeQuery( "select * from tb_news where bianhao="+request.getParameter("newsid") ); 
			if(rs.next()) { 
			%>
			<table width="600" border="1" align="center" cellpadding="0" cellspacing="0">
				<tr>
					<td align="center">
						<h1>网页顶部</h1>
					</td>
				</tr>
				<tr>
					<td height="27" align="center">
						<%=rs.getString("biaoti")%>
					</td>
					</tr>
				<tr>
					<td height="323" valign="top">
						<%=rs.getString("neirong")%>
					</td>
				</tr>
				<tr>
					<td height="32" align="right" valign="top">
						来源:<%=rs.getString("zuozhe")%>
						发布时间:<%=rs.getString("time")%>
					</td>
				</tr>
				<tr>
					<td align="center">
						<h2>网页底部</h2>
					</td>
				</tr>
			</table>
			<% } 
            rs.close(); 
            stmt.close(); 
            conn.close(); %>
		</body>

 实验9 JSP数据库操作3

任务一:使用mysql数据库管理工具创建数据库和数据表使用NavicatforMySQL创建一个“newsdb”数据库,创建一个“tb_news”数据表,表中具体字段属性及数据内容同实验7:

任务二:在新闻列表页添加增、删、改的链接,并完成数据增加操作

1.打开Eelipse,新建一个JSP网站,名称为“sy9”

2.将实验“sy8_1.jsp”和“sy8_1a.jsp”两个页面复制到本站点,并分别更名为“sy9_1.jsp”和“sy9_1a.jsp”;

3.打开“sy9_1.jsp”页面,在页面下方添加“添加新闻”、“修改新闻”和“删除新闻”三个文字链接,分别链接到“addnews.jsp”、“delnews.jsp”、“editnews.jsp”三个页面。

<span><a href=addnews.jsp>添加新闻<a></span>&nbsp;&nbsp;&nbsp;&nbsp;
<span><a href=delnews.jsp>修改新闻<a></span>&nbsp;&nbsp;&nbsp;&nbsp;
<span><a href=editnews.jsp>删除新闻<a></span>&nbsp;&nbsp;&nbsp;&nbsp;

4、打开“addnews.jsp”页面,制作1个用于添加新闻信息的页面

<body>
			<% 
			String Driver="com.mysql.jdbc.Driver" ; 
			String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ;
			Class.forName(Driver); Connection conn=DriverManager.getConnection(URL,"root","123456"); 
			Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from tb_news"); 
			if(rs.next()) { %>
				<form action="addnews_1.jsp" method="post" style="width: 30%; margin: auto">
					<table width="600" border="1" align="center" cellpadding="0" cellspacing="0">
						<tr>
							<td align="center" colspan="2">
								<h1>添加新闻</h1>
							</td>
						</tr>
						
						<tr>
							<td height="27" align="center">新闻标题</td>
							<td width="500"><input type="text" name="bt_text" style=" width:410px;"></td>
						</tr>
						<tr>
							<td height="27" align="center">新闻作者</td>
							<td width="500"><input type="text" name="zz_text" style=" width:410px;"></td>
						</tr>
						
						<tr>
							<td height="323" valign="top" colspan="2">新闻内容:<br>
								<textarea name="nr_text" value="请输入新闻内容" rows="20" cols="82"></textarea>
								<br>
								<input type="submit" value="插入新闻">
								<input type="reset" value="取消">
							</td>
						</tr>

						<tr>
							<td align="center" colspan="2">
								<h2>网页底部</h2>
							</td>
						</tr>
						
					</table>
					<% } 
					rs.close(); 
					stmt.close(); 
					conn.close(); %>
				</form>
		</body>

5、创建1个“addnews_1.jsp”页面,编写代码,实现添加新闻信息的功能

<%@ page import="java.sql.*" %>
		<%@ page import="java.util.Date" %>
			<%@ page import="java.text.SimpleDateFormat" %>
<body>
					<% 
					request.setCharacterEncoding("UTF-8"); 
					String bt=request.getParameter("bt_text"); 
					String zz=request.getParameter("zz_text"); 
					String nr=request.getParameter("nr_text"); 
					//获取日期
					Date now=new Date(); 
					SimpleDateFormat sj=new SimpleDateFormat("yyyy-MM-dd"); 
					//连接数据库
					String Driver="com.mysql.jdbc.Driver" ; 
					String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ; 
					Class.forName(Driver); 
					Connection conn=DriverManager.getConnection(URL,"root","123456"); 
					Statement stmt=conn.createStatement(); 
					//插入语句
					String sql="insert into tb_news(biaoti,zuozhe,neirong,time) values('"+bt+"','"+zz+"','"+nr+"','"+sj.format(now)+"')";
					int n=stmt.executeUpdate(sql); 
					if(n==1) {
						out.print("数据插入操作成功!"); 
						out.println("<h3>3秒钟后,自动跳转到新闻列表页面!</h3>");
						response.setHeader("Refresh","3;URL=sy9_1.jsp");
						}
					else{ 
						out.print("数据插入操作失败!");
						out.println("<h3>3秒钟后,自动跳转到新闻列表页面!</h3>");
						response.setHeader("Refresh","3;URL=sy9_1.jsp");
						}
					if(stmt!=null){ 
						stmt.close(); 
					}
					if(conn!=null){
						 conn.close(); 
						}
					%>
				</body>

综合项目2

打开Eelipse,新建一个JSP网站,名称为“ZHLX2”,并按以下要求完成综合练习1的各项任务。

1.新建8个JSP页面,分别是:

login.jsp用户登录页面

logincheck.jsp验证登录代码页面

loginout.jsp退出登录代码页面

hindex.jsp后台主页

adduser.jsp用户注册页面

adduser_1.jsp用户注册代码页面

userlist.jsp用户列表页面

userinfo.jsp用户信息显示页面

2.打开login.jsp页面,制作一个用户登录页面,点击“提交”按钮,将信息提交给logincheck.jsp页面文件处理;

<body>
			<form name="form1" action="logincheck.jsp" method="post">
				<h1>用户登录</h1>
				用户名:
				<input type="text" name="yhm" maxlength="8" placeholder="请输入用户名"><br><br>
				密码:
				<input type="password" name="pwd" maxlength="16" placeholder="请输入密码"><br><br>
				<input type="submit" value="提交" onclick="dlcheck()">
			</form>
		</body>

3.打开logincheck.jsp页面,在这个页面中,接收用户在login.jsp页面中提交的信息,并连接数据库,验证是否为合法用户信息

<%@ page import="java.sql.*" %>
<body>
		<%
		request.setCharacterEncoding("UTF-8");
		String yhm=request.getParameter("yhm"); 
		String mm=request.getParameter("pwd"); 
		if(yhm.equals("")||mm.equals("")) { 
			out.print("用户名或密码不能为空"); 
			response.setHeader("Refresh","3;URL=login.jsp"); 
			}
			else { 
				String Driver="com.mysql.jdbc.Driver";
			    String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8";
			    Class.forName(Driver);
			    Connection conn=DriverManager.getConnection(URL,"root","123456");
			    Statement stmt=conn.createStatement();
			    ResultSet rs = stmt.executeQuery("select * from tb_user where 用户名='"+yhm+"'and 密码='"+mm+"'");
			        if(rs.next()){
			        	session.setAttribute("yhzh",yhm);
			        	session.setAttribute("kl", "20221111");
			        	response.sendRedirect("hindex.jsp?user="+yhm);
			        	}
			        else{
			        	out.print("用户名或密码不正确,3秒后跳转到登录页面");
			        	response.setHeader("Refresh","3;URL=login.jsp");
			        	}
			        }
				%>
	</body>

4.打开后台主页hindex.jsp页面,在这个页面中,接收用户在login.jsp页面中填写过的合法用户名信息,并将用户名信息显示出来。

5.打开hindex.jsp页面,在这个页面中,在左侧导航单元各种,制作

“后台首页”添加超链接,链接到“hindex.jsp”页面“

用户列表”添加超链接,链接到“userlist.jsp”页面“

用户注册”添加超链接,链接到“adduser.jsp”页面

“添加新闻”暂不添加超链接

“退出登录”添加超链接,链接到“loginout.jsp”页面

<body>
		<table border="1" width="880" cellspacing="0" cellpadding="0">
			<tr height="100" align="center">
				<td colspan="2">
						<h1>后台主页——网页顶部</h1>
				</td>
			</tr>

			<tr height="25" align="left">
				<td colspan="2">
				<%
				request.setCharacterEncoding("UTF-8");
				String ayhzh=(String)session.getAttribute("yhzh");
				String akl=(String)session.getAttribute("kl");
				if(ayhzh!=null&&akl!=null&&akl.equals("20221111")){
					out.print("欢迎您,"+ayhzh+"用户");
				}
				else{
					out.println("您没有权限访问该页面,请先登录!");
					response.setHeader("Refresh","3,URL=login.jsp");
				}
				%>
				</td>
			</tr>

			<tr>
				<td width="300px" height="500" align="center">
					<p><a href="hindex.jsp">后台首页</a></p>
					<p><a href="userlist.jsp">用户列表</a></p>
					<p><a href="adduser.jsp">用户注册</a></p>
					<p><a href="edituser.jsp">用户修改</a></p>
					<p><a href="deluser.jsp">用户删除</a></p>
					<p>添加新闻</p>
					<p><a href="loginout.jsp">退出登录</a></p>
				</td>
				<td width="580px" height="500" align="center"><b>右侧内容</b></td>
			</tr>
			<tr height="150" align="center">
				<td colspan="2">
					<font color="black" size="6"><b>后台主页——网页底部</b></font>
				</td>
			</tr>
		</table>
	</body>

6.参照样式,制作用户列表页面userlist.jsp。

<%@ page import="java.sql.*" %>
		<%@ page import="java.util.Date" %>
<body>
				<table border="1" width="880" cellspacing="0" cellpadding="0">
					<tr height="100" align="center">
						<td colspan="2" align="center" height="150px">
							<h1>后台主页——网页顶部</h1>
						</td>
					</tr>
					<tr height="25" align="left">
						<td colspan="2">
							<% 
							request.setCharacterEncoding("UTF-8"); 
							String ayhzh=(String)session.getAttribute("yhzh");
							String akl=(String)session.getAttribute("kl"); 
							if (ayhzh!=null &&akl!=null&&akl.equals("20221111")){ 
								out.print("欢迎您, "+ayhzh +" 用户"); 
								} 
							else{
								out.println("您没有权限访问该页面,请先登录!"); 
								response.setHeader("Refresh", "3;URL=login.jsp" ); 
								} 
								%>
						</td>
					</tr>
					<tr>
						<td width="300px" height="500" align="center">
							<p><a href="hindex.jsp">后台首页</a></p>
							<p><a href="userlist.jsp">用户列表</a></p>
							<p><a href="adduser.jsp">用户注册</a></p>
							<p><a href="edituser.jsp">用户修改</a></p>
				         	<p><a href="deluser.jsp">用户删除</a></p>
							<p><a href="#">添加新闻</a></p>
							<p><a href="loginout.jsp">退出登录</a></p>
						</td>
						<td width="500px">
							<% 
							String Driver="com.mysql.jdbc.Driver" ; 
							String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ;
							Class.forName(Driver); 
							Connection conn=DriverManager.getConnection(URL,"root","123456");
							Statement stmt=conn.createStatement(); 
							ResultSet rs=stmt.executeQuery("select*from tb_user order by id"); 
							%>
								<table width="400px" border="1px" align="center" cellpadding="0" cellspacing="0">
									<tr>
										<td width="150px" align="center"><strong>用户名</strong></td>
										<td width="250px" align="center"><strong>密码</strong></td>
									</tr>
									<% while(rs.next()){ 
										out.print("<tr>");
										out.print("<td><a href=userinfo.jsp?userid="+rs.getString("id")+">"+rs.getString("用户名")+"</a></td>");
										out.print("<td>"+rs.getString("密码")+"</td>");
										out.print("</tr>");
					}
					rs.close();
					stmt.close();
					conn.close();
					%>
				</table>
				</td>
				</tr>
				<tr height="150" align="center">
					<td colspan="2">
						<font color="black" size="6"><b>后台主页——网页底部</b></font>
					</td>
				</tr>
				</table>
			</body>

 7.参照样式,制作用户信息显示页面userinfo.jsp。

<%@page import="java.sql.*" %>
<body>
				<table border="1" width="880" cellspacing="0" cellpadding="0">
					<tr>
						<td colspan="2" align="center" height="150px">
							<h1>后台主页——网页顶部</h1>
						</td>
					</tr>
					<tr height="25" align="left">
						<td colspan="2">
							<% 
							request.setCharacterEncoding("UTF-8"); 
							String ayhzh=(String)session.getAttribute("yhzh");
							String akl=(String)session.getAttribute("kl"); 
							if (ayhzh!=null &&akl!=null&&akl.equals("20221111")){ 
								out.print("欢迎您, "+ayhzh +" 用户"); 
								} 
							else{
								out.println("您没有权限访问该页面,请先登录!"); 
								response.setHeader("Refresh", "3;URL=login.jsp" ); 
								} 
								%>
						</td>
					</tr>
					<tr>
						<td width="300px" height="500" align="center">
							<p><a href="hindex.jsp">后台首页</a></p>
							<p><a href="userlist.jsp">用户列表</a></p>
							<p><a href="adduser.jsp">用户注册</a></p>
							<p><a href="edituser.jsp">用户修改</a></p>
					        <p><a href="deluser.jsp">用户删除</a></p>
							<p><a href="#">添加新闻</a></p>
							<p><a href="loginout.jsp">退出登录</a></p>
						</td>
						<td width="500px">
							<%
							String Driver="com.mysql.jdbc.Driver" ; 
							String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ;
							Class.forName(Driver); 
							Connection conn=DriverManager.getConnection(URL,"root","123456");
							Statement stmt=conn.createStatement(); 
							ResultSet rs=stmt.executeQuery("select*from tb_user where id="+request.getParameter("userid")); 
							if(rs.next()){ 
							%>
								<table width="400" border="1" align="center" cellpadding="0" cellspacing="0">
									<tr>
										<td align="center" colspan="2">
											<h3>用户信息</h3>
										</td>
									</tr>
									<tr>
										<td align="right" width="150">
											<p>用户名:</p>
										</td>
										<td align="left">
											<%=rs.getString("用户名")%>
										</td>
									</tr>
									<tr>
										<td align="right" width="150">
											<p>密码:</p>
										</td>
										<td align="left">
											<%=rs.getString("密码")%>
										</td>
									</tr>
								</table>
								<% } 
							rs.close(); 
							stmt.close(); 
							conn.close(); %>
						</td>
					</tr>
					<tr height="150" align="center">
						<td colspan="2">
							<font color="black" size="6"><b>后台主页——网页底部</b></font>
						</td>
					</tr>
				</table>
			</body>

8.参照样式,制作用户注册页面adduser.jsp。

<body>
				<table border="1" width="880" cellspacing="0" cellpadding="0">
					<tr height="100" align="center">
						<td colspan="2">
							<h1>后台主页——网页顶部</h1>
						</td>
					</tr>

					<tr height="25" bgcolor="#f1f8e9" align="left">
						<td colspan="2">
							<% 
							request.setCharacterEncoding("UTF-8"); 
							String ayhzh=(String)session.getAttribute("yhzh");
							String akl=(String)session.getAttribute("kl"); 
							if (ayhzh!=null &&akl!=null&&akl.equals("20221111")){ 
								out.print("欢迎您, "+ayhzh +" 用户"); 
								} 
							else{
								out.println("您没有权限访问该页面,请先登录!"); 
								response.setHeader("Refresh", "3;URL=login.jsp" ); 
								} 
								%>
						</td>
					</tr>

					<tr>
						<td width="300px" height="500" align="center">
							<p><a href="hindex.jsp">后台首页</a></p>
							<p><a href="userlist.jsp">用户列表</a></p>
							<p><a href="adduser.jsp">用户注册</a></p>
							<p><a href="edituser.jsp">用户修改</a></p>
					        <p><a href="deluser.jsp">用户删除</a></p>
							<p>添加新闻</p>
							<p><a href="loginout.jsp">退出登录</a></p>
						</td>
						<td  width="580px" height="500" align="center">
						<form name="form1" action="adduser_1.jsp" method="post">
						用户名:
						<input type="text" name="yhm" maxlength="8" placeholder="请输入用户名"><br><br>
						密码:
						<input type="password" name="pwd" maxlength="16" placeholder="请输入密码"><br><br>
						<input type="submit" value="提交" onclick="dlcheck()">
						<input type="reset" value="取消" onclick="dlcheck()">
						</form>
				</td>
				</tr>
				<tr height="150" align="center">
					<td colspan="2">
						<font color="black" size="6"><b>后台主页——网页底部</b></font>
					</td>
				</tr>
				</table>
			</body>

9.制作用户注册验证页面adduser_1.jsp。

<%@page import="java.sql.*" %>
<body>
		<%
		request.setCharacterEncoding("UTF-8"); 
		String yh=request.getParameter("yhm"); 
		String mm=request.getParameter("pwd"); 
		String Driver="com.mysql.jdbc.Driver";
	    String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8";
	    Class.forName(Driver);
	    Connection conn=DriverManager.getConnection(URL,"root","123456");
	    Statement stmt=conn.createStatement();
	    String sql="insert into tb_user(用户名,密码)values('"+yh+"','"+mm+"')";
	    int n=stmt.executeUpdate(sql);
	    if(n==1){
	    	out.print("用户注册成功!");
	    	out.println("<h3>3秒钟后,自动跳转到用户列表页面!</h3>");
	    	response.setHeader("Refresh","3;URL=userlist.jsp");}
	    else{
	        out.print("用户注册失败!");
	        out.println(" <h3>3秒钟后,自动跳转到后台管理首页!</h3>");
	        response.setHeader("Refresh","3;URL=hindex.jsp");
	    }
	    if(stmt!=null){
	    	stmt.close(); 
	    }
	    if(conn!=null){ 
	    	conn.close();}
	    %>

		</body>

10.制作用户修改页面edituser.jsp。

<%@ page import="java.sql.*" %>
<body>
				<table border="1" width="880" cellspacing="0" cellpadding="0">
					<tr height="100" align="center">
						<td colspan="2" align="center" height="150px">
							<h1>后台主页——网页顶部</h1>
						</td>
					</tr>
					<tr height="25" align="left">
						<td colspan="2">
							<% 
							request.setCharacterEncoding("UTF-8"); 
							String ayhzh=(String)session.getAttribute("yhzh");
							String akl=(String)session.getAttribute("kl"); 
							if (ayhzh!=null &&akl!=null&&akl.equals("20221111")){ 
								out.print("欢迎您, "+ayhzh +" 用户"); 
								} 
							else{
								out.println("您没有权限访问该页面,请先登录!"); 
								response.setHeader("Refresh", "3;URL=login.jsp" ); 
								} 
								%>
						</td>
					</tr>
					<tr>
						<td width="300px" height="500" align="center">
							<p><a href="hindex.jsp">后台首页</a></p>
							<p><a href="userlist.jsp">用户列表</a></p>
							<p><a href="adduser.jsp">用户注册</a></p>
							<p> <a href="edituser.jsp">用户修改</a></p>
							<p> <a href="deluser.jsp">用户删除</a></p>
							<p><a href="#">添加新闻</a></p>
							<p><a href="loginout.jsp">退出登录</a></p>
						</td>
						<td width="500px">
							<% 
							String Driver="com.mysql.jdbc.Driver" ; 
							String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ;
							Class.forName(Driver); 
							Connection conn=DriverManager.getConnection(URL,"root","123456");
							Statement stmt=conn.createStatement(); 
							ResultSet rs=stmt.executeQuery("select*from tb_user order by id"); 
							%>
								<table width="400px" border="1px" align="center" cellpadding="0" cellspacing="0">
									<tr>
										<td width="150px" align="center"><strong>用户名</strong></td>
										<td width="250px" align="center"><strong>密码</strong></td>
										<td width="100px" align="center"><strong>操作</strong></td>
									</tr>
									<% while(rs.next()){ out.print("<tr>");
										out.print("<td><a href=userinfo.jsp?userid="+rs.getString("id")+">"+rs.getString("用户名")+"</a></td>");
										out.print("<td>"+rs.getString("密码")+"</td>");
										out.print("<td><a href=edituser_1.jsp?userid="+rs.getString("id")+">修改<a></td>");
										out.print("</tr>");
					}
					rs.close();
					stmt.close();
					conn.close();
					%>
				</table>
				</td>
				</tr>
				<tr height="150" align="center">
					<td colspan="2">
						<font color="black" size="6"><b>后台主页——网页底部</b></font>
					</td>
				</tr>
				</table>
			</body>

10.制作用户修改提交页面edituser_1.jsp。

<%@ page import="java.sql.*" %>
<body>
				<table border="1" width="880" cellspacing="0" cellpadding="0">
					<tr height="100" align="center">
						<td colspan="2" align="center" height="150px">
							<h1>后台主页——网页顶部</h1>
						</td>
					</tr>
					<tr height="25" align="left">
						<td colspan="2">
							<% request.setCharacterEncoding("UTF-8"); String ayhzh=(String)session.getAttribute("yhzh");
								String akl=(String)session.getAttribute("kl"); if (ayhzh!=null
								&&akl!=null&&akl.equals("20221111")){ out.print("欢迎您, "+ayhzh +" 用户"); } else{
								out.println("您没有权限访问该页面,请先登录!"); response.setHeader("Refresh", "3;URL=login.jsp" ); } %>
						</td>
					</tr>
					<tr>
						<td width="300px" height="500" align="center">
							<p><a href="hindex.jsp">后台首页</a></p>
							<p><a href="userlist.jsp">用户列表</a></p>
							<p><a href="adduser.jsp">用户注册</a></p>
							<p> <a href="edituser.jsp">用户修改</a></p>
							<p> <a href="deluser.jsp">用户删除</a></p>
							<p><a href="#">添加新闻</a></p>
							<p><a href="loginout.jsp">退出登录</a></p>
						</td>
						<td width="500px">
							<% 
							String Driver="com.mysql.jdbc.Driver" ; 
							String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ;
							Class.forName(Driver); 
							Connection conn=DriverManager.getConnection(URL,"root","123456");
							Statement stmt=conn.createStatement(); 
							ResultSet rs=stmt.executeQuery("select * from tb_user where id="+request.getParameter("userid"));
							if(rs.next())
							{
							%>
								<form method="post" action="edituser_2.jsp?userid=<%=rs.getString("id")%>">
									<table width="400" border="1" align="center" cellpadding="0" cellspacing="0">
										<tr>
											<td align="center" colspan="2">
												<h3>用户信息</h3>
											</td>
										</tr>
										<tr>
											<td align="right" width="150">
												<p>用户名:</p>
											</td>
											<td align="left">
												<input name="yhm" type="text" size="50"
													value=<%=rs.getString("用户名")%> >
											</td>
										</tr>
										<tr>
											<td align="right" width="150">
												<p>密&nbsp;&nbsp;&nbsp;&nbsp;码:</p>
											</td>
											<td align="left">
												<input name="pwd" type="text" size="50"
													value=<%=rs.getString("密码")%> >
											</td>
										</tr>
										<tr>
											<td colspan="2">
												<input type="submit" name="button" id="button"
													value="修改用户">&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="取消">
											</td>
										</tr>
									</table>
								</form>
								<%}
								rs.close();
								stmt.close();
								conn.close();
								%>
						</td>
					</tr>
					<tr height="150" align="center">
					<td colspan="2">
						<font color="black" size="6"><b>后台主页——网页底部</b></font>
					</td>
				</tr>
				</table>
			</body>

10.制作用户修改验证页面edituser_2.jsp。

<%@page import="java.sql.*" %>
<body>
		<%
		request.setCharacterEncoding("UTF-8"); 
		String yh=request.getParameter("yhm"); 
		String mm=request.getParameter("pwd"); 
		String Driver="com.mysql.jdbc.Driver";
	    String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8";
	    Class.forName(Driver);
	    Connection conn=DriverManager.getConnection(URL,"root","123456");
	    Statement stmt=conn.createStatement();
	    int n=stmt.executeUpdate("update tb_user set 用户名='"+yh+"',密码='"+mm+"' where id="+request.getParameter("userid"));
	    if(n==1){
	    	out.print("数据修改成功!");
	    	out.println("<h3>3秒钟后,自动跳转到用户列表页面!</h3>");
	    	response.setHeader("Refresh","3;URL=userlist.jsp");}
	    else{
	        out.print("数据修改失败!");
	        out.println("<h3>3秒钟后,自动跳转到修改用户列表页面!</h3> ");
	        response.setHeader("Refresh","3;URL=edituser.jsp");
	    }
	    if(stmt!=null){
	    	stmt.close(); 
	    }
	    if(conn!=null){ 	
	    	conn.close();}
	    %>

		</body>

10.制作用户删除页面deluser.jsp。

	<%@ page import="java.sql.*" %>
<body>
				<table border="1" width="880" cellspacing="0" cellpadding="0">
					<tr height="100" align="center">
						<td colspan="2" align="center" height="150px">
							<h1>后台主页——网页顶部</h1>
						</td>
					</tr>
					<tr height="25" align="left">
						<td colspan="2">
							<% 
							request.setCharacterEncoding("UTF-8"); 
							String ayhzh=(String)session.getAttribute("yhzh");
							String akl=(String)session.getAttribute("kl"); 
							if (ayhzh!=null &&akl!=null&&akl.equals("20221111")){ 
								out.print("欢迎您, "+ayhzh +" 用户"); 
								} 
							else{
								out.println("您没有权限访问该页面,请先登录!"); 
								response.setHeader("Refresh", "3;URL=login.jsp" ); 
								} 
								%>
						</td>
					</tr>
					<tr>
						<td width="300px" height="500" align="center">
							<p><a href="hindex.jsp">后台首页</a></p>
							<p><a href="userlist.jsp">用户列表</a></p>
							<p><a href="adduser.jsp">用户注册</a></p>
							<p> <a href="edituser.jsp">用户修改</a></p>
							<p> <a href="deluser.jsp">用户删除</a></p>
							<p><a href="#">添加新闻</a></p>
							<p><a href="loginout.jsp">退出登录</a></p>
						</td>
						<td width="500px">
							<% 
							String Driver="com.mysql.jdbc.Driver" ; 
							String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8" ;
							Class.forName(Driver); 
							Connection conn=DriverManager.getConnection(URL,"root","123456");
							Statement stmt=conn.createStatement(); 
							ResultSet rs=stmt.executeQuery("select*from tb_user order by id"); 
							%>
								<table width="400px" border="1px" align="center" cellpadding="0" cellspacing="0">
									<tr>
										<td width="150px" align="center"><strong>用户名</strong></td>
										<td width="250px" align="center"><strong>密码</strong></td>
										<td width="100px" align="center"><strong>操作</strong></td>
									</tr>
									<% while(rs.next()){ out.print("<tr>");
										out.print("<td><a href=userinfo.jsp?userid="+rs.getString("id")+">"+rs.getString("用户名")+"</a></td>");
										out.print("<td>"+rs.getString("密码")+"</td>");
										out.print("<td><a href=deluser_1.jsp?userid="+rs.getString("id")+">删除<a></td>");
										out.print("</tr>");
					}
					rs.close();
					stmt.close();
					conn.close();
					%>
				</table>
				</td>
				</tr>
				<tr height="150" align="center">
					<td colspan="2">
						<font color="black" size="6"><b>后台主页——网页底部</b></font>
					</td>
				</tr>
				</table>
			</body>

10.制作用户删除验证页面deluser_1.jsp。

<%@page import="java.sql.*" %>
<body>
		<%
		request.setCharacterEncoding("UTF-8"); 
		String yh=request.getParameter("yhm"); 
		String mm=request.getParameter("pwd"); 
		String Driver="com.mysql.jdbc.Driver";
	    String URL="jdbc:mysql://127.0.0.1:3306/newsdb?useUnicode=true&characterEncoding=utf-8";
	    Class.forName(Driver);
	    Connection conn=DriverManager.getConnection(URL,"root","123456");
	    Statement stmt=conn.createStatement();
	    int n=stmt.executeUpdate ("delete from tb_user where id="+request.getParameter("userid"));
	    if(n==1){
	    	out.print("删除数据成功!");
	    	out.println("<h3>3秒钟后,自动跳转到用户列表页面!</h3>");
	    	response.setHeader("Refresh","3;URL=userlist.jsp");}
	    else{
	        out.print("删除数据失败!");
	        out.println("<h3>3秒钟后,自动跳转到删除用户列表页面!</h3> ");
	        response.setHeader("Refresh","3;URL=deluser.jsp");
	    }
	    if(stmt!=null){
	    	stmt.close(); 
	    }
	    if(conn!=null){ 
	    	conn.close();}
	    %>

		</body>

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值