如果对你有帮助的话,记得点赞、关注我哦!

每个实验都有2~3小题,代码都能在百度百科上找到,但都是VIP文档,而且有些小毛病,如中文乱码。

实验题目:①JSP语法②JSP内置对象③JSP与JavaBean④JSP中使用数据库

实验四需要Tomcat连接数据库,很多同学都没能连上,还有JSP传值乱码等问题。所以以下报告,我将倒着写,先写实验四,然后实验三、二、一,代码都很简单易懂。

项目目录总览

实验四 JSP中使用数据库

步骤一:向External Libraries导入JDBC

不会的可以看这位博主写的  https://blog.csdn.net/SSY_1992/article/details/88344709

步骤二:用Java控制台检验JDBC连接是否成功

package bean.data;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class test {public static void main(String[] args) throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/book", "root", "请输入你的密码");String sql = "UPDATE bookform SET bookISBN = 3333 WHERE bookISBN = 987654";Statement stmt = conn.createStatement();int count = stmt.executeUpdate(sql);System.out.println(count);stmt.close();conn.close();}
}

运行结果(数据库内容会被修改,在此不展示)

步骤三:让Tomcat连上数据库!

点击“File”,选择“Project Structure”,再选择“Artifacts”,点图上的“加号”。

选择“Web Application:Exploded——》From Modules”,添加 untitled1 模块后,我这里(不知道叫什么,姑且叫做“文件们”)是默认在“Available Elements”下,需要把 untitled1 模块下的所有“文件们”全部双击一遍,才能移到<output root>路径下,也就成了WEB-INF下的文件。

JSP向数据库中存入中文数据为问号の解决方法

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/book","root","***");
//在book后面添加?useUnicode=true&characterEncoding=UTF8

这位博主介绍了三种方法,我只用了第一种,便解决了问题。

解决之前

解决之后

MySQL Workbench(请自行添加表,在此不赘述)

PK:primary key 主键
        NN:not null 非空
        UQ:unique 唯一索引
        BIN:binary 二进制数据(比text更大)
        UN:unsigned 无符号(非负数)
        ZF:zero fill 填充0 ,例如字段内容是1 int(4), 则内容显示为0001 
        AI:auto increment 自增

一、实验目的

1、掌握使用JDBC查询数据库中表的记录;

2、掌握使用JDBC更新数据库中表的记录。

二、实验内容

1、数据库查询操作

首先建立数据库Book,在库中建立表bookForm,该表字段参照如下效果图中的7列。编写一个JSP页面inputMess.jsp,根据关键词查找并返回信息。

inputMess.jsp的效果如下图:

源代码

inputMess2.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.lang.String.*" %>
<html>
<head><meta charset="UTF-8"><title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
%>
<form action="">输入查询内容:<input type="text" name="findContent" value=""/><select name="condition" size=1><option Selected value="bookISBN">ISBN</option><option value="bookName">书名</option><option value="bookAuthor">作者</option><option value="bookPublish">出版社</option><option value="bookTime">出版时间</option><option value="bookAbstract">内容摘要</option></select><br><input type="radio" name="findMethod" value="start"/>前方一致<input type="radio" name="findMethod" value="end"/>后方一致<input type="radio" name="findMethod" value="contains"/>包含<br><input type="submit" value="提交"/>
</form>
<%String findContent = request.getParameter("findContent");if (findContent == null)findContent = "";String condition = request.getParameter("condition");if (condition == null)condition = "";String findMethod = request.getParameter("findMethod");if (findMethod == null)findMethod = "";if (findContent != null) {try {Class.forName("com.mysql.jdbc.Driver").newInstance();String url = "jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF8";String username = "root";String password = "请填自己的密码";Connection con = DriverManager.getConnection(url, username, password);Statement sql = con.createStatement();String s = "";if (findMethod.equals("start")) {s = "select * from bookform where " + condition + " like'" + findContent + "%'";} else if (findMethod.equals("end")) {s = "select * from bookform where " + condition + " like'%" + findContent + "'";} else if (findMethod.equals("contains")) {s = "select * from bookform where " + condition + " like'%" + findContent + "%'";}ResultSet rs = sql.executeQuery(s);
%>
<font size=4 align=center>查询到的图书</font>
<table border=1><tr><th>ISBN</th><th>图书名称</th><th>作者</th><th>价格</th><th>出版社</th><th>出版时间</th><th>摘要</th></tr>
<%while(rs.next()){
%><tr><td><%=rs.getString(1) %></td><td><%=rs.getString(2) %></td><td><%=rs.getString(3) %></td><td><%=rs.getString(4) %></td><td><%=rs.getString(5) %></td><td><%=rs.getString(6) %></td><td><textarea><%=rs.getString(7) %></textarea></td></tr>
<%}}catch(Exception e){out.print("没找到驱动");}}
%>
</body>
</html>

运行结果

图1.1.1 输入数据

图1.1.2 点击“提交”后的界面

图1.1.3 对比数据库,验证输出信息正确

2、数据库更新操作

仍然使用实验题目一中的数据库和表。编写一个JSP页面updateRecord.jsp,更改数据库中某条信息。

updateRecord.jsp页面的效果如下图:

源代码

UpdateRecord.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.lang.String.*" %>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
%>
<form method="post" action="" name="form1">输入图书的ISBN号,然后更新该图书的有关信息:<input type="text" name="bookISBN"/><input type="submit" value="提交">
</form>
<br>
<%String bookISBN = request.getParameter("bookISBN");String bookName = request.getParameter("bookName");String bookAuthor = request.getParameter("bookAuthor");String bookPrice = request.getParameter("bookPrice");String bookPublish = request.getParameter("bookPublish");String bookTime = request.getParameter("bookTime");String bookAbstract = request.getParameter("bookAbstract");if (bookISBN != null) {String info = "输入(" + bookISBN + ")的图书信息";out.println(info);try {Class.forName("com.mysql.jdbc.Driver").newInstance();} catch (ClassNotFoundException e) {out.print("没有找到驱动");}Connection con;con = DriverManager.getConnection("jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF8","root","请输入你的密码");Statement sql = con.createStatement();String s = "";s = "select * from bookform where bookISBN=" + bookISBN;ResultSet rs = sql.executeQuery(s);
%>
<br>
<form method="post" name="form2" action=""><table border=1><%while (rs.next()) { %><tr><th>图书名称:</th><%String temp=rs.getString(2);%><td><input type="text" value="<%=rs.getString(2)%>" name="bookName"></td></tr><tr><th>图书作者:</th><td><input type="text" value="<%=rs.getString(3)%>" name="bookAuthor"></td></tr><tr><th>图书价格:</th><td><input type="text" value="<%=rs.getString(4)%>" name="bookPrice"></td></tr><tr><th>出版社:</th><td><input type="text" value="<%=rs.getString(5)%>" name="bookPublish"></td></tr><tr><th>出版社时间:</th><td><input type="text" value="<%=rs.getString(6)%>" name="bookTime"></td></tr><tr><th>图书摘要:</th><td><textarea name="bookAbstract"><%=rs.getString(7)%></textarea></td></tr><tr><td><input type="hidden" name="bookISBN" value="<%=rs.getString(1)%>"></td><td><input type="submit" value="提交"></td></tr></table>
</form>
<%}
%>
<%if (bookName != null && bookAuthor != null && bookPrice != null && bookPublish != null && bookTime != null && bookAbstract != null) {String update1;Connection con1;con1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF8", "root", "请输入你的密码");update1 = "update bookform set bookName='" + bookName + "'," + "bookAuthor='" + bookAuthor + "'," + "bookPrice="+ bookPrice + "," + "bookPublish='" + bookPublish + "'," + "bookTime='" + bookTime + "'," + "bookAbstract='" + bookAbstract +"' where bookISBN=" + bookISBN;Statement sql1 = con1.createStatement();int r1 = sql1.executeUpdate(update1);if (r1 >= 0) {out.println("修改成功!");response.setHeader("refresh", "4");}}}
%>
</body>
</html>

运行结果

图1.2.1 初始界面

图1.2.2 输入数据并提交后的界面

实验三 JSP与JavaBean

一、实验目的

1、掌握使用有效范围是request的bean存储信息;

2、掌握使用有效范围是session的bean显示计算机的基本信息;

3、掌握使用有效范围是application的bean制作一个简单的留言板。

二、实验内容

1、有效范围为request的bean

编写一个JSP页面inputAndShow.jsp和一个名字为computer的Javabean,其中computer由PC.class类负责创建。

1)inputAndShow.jsp页面提供一个表单。其中表单允许用户输入计算机的品牌、型号和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为computer的bean,并使用表单提交的数据设置computer的有关属性的值,然后显示computer的各个属性的值。

2)各个属性的值。

3)编写的PC.java应当有描述计算机品牌、型号和生产日期的属性,并提供相应的getXxx和setXxx方法,来获取和修改这些属性的值。PC.java中使用package语句,包名为:bean.data。将PC.java编译后的字节码文件PC.class保存到对应工程的WEB-INF\classes\bean\data目录中。

源代码

InputAndShow.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<jsp:useBean id="computer" class="bean.data.PC" scope="request" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
%>
<html>
<body bgcolor="yellow"><form action="" method="post">电脑品牌:<input type="text" name="pinpai"> <br>电脑型号:<input type="text" name="xinghao"> <br>生产日期:<input type="text" name="riqi"> <input type="submit" value="提交"></form><jsp:setProperty name="computer" property="*" /><table border="1"><tr><th>电脑品牌</th><th>电脑型号</th><th>生产日期</th></tr><tr><th><jsp:getProperty name="computer" property="pinpai" /></th><th><jsp:getProperty name="computer" property="xinghao" /></th><th><jsp:getProperty name="computer" property="riqi" /></th></tr></table>
</body>
</html>

PC.java

package bean.data;public class PC {String pinpai, xinghao, riqi;public PC() {}public String getPinpai() {return pinpai;}public void setPinpai(String pinpai) {this.pinpai = pinpai;}public String getXinghao() {return xinghao;}public void setXinghao(String xinghao) {this.xinghao = xinghao;}public String getRiqi() {return riqi;}public void setRiqi(String time) {this.riqi = time;}
}

运行结果

2、有效范围为session的bean

实验2要求与实验1类似,与实验1不同的是,要求编写两个JSP页面input.jsp和show.jsp。编写一个名字为computer的Javabean,其中computer由PC.class类负责创建。

1)input.jsp页面提供一个表单。其中表单允许用户输入计算机的品牌、型号和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为computer的bean,并使用表单提交的数据设置computer的有关属性的值。要求在input.jsp提供一个超链接,以便用户单击这个超链接访问show.jsp页面。

2)show.jsp调用名字为computer的bean,并显示该bean的各个属性的值。

3)编写的PC.java应当有描述计算机品牌、型号和生产日期的属性,并提供相应的getXxx和setXxx方法,来获取和修改这些属性的值。PC.java中使用package语句,包名为:bean.data。将PC.java编译后的字节码文件PC.class保存到对应工程的WEB-INF\classes\bean\data目录中。

源代码

input.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="computer" class="bean.data.PC" scope="session" />
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
%>
<html>
<body bgcolor="#adff2f">
<font size="2"><form action="" method="post">电脑品牌:<input type="text" name="pinpai"><br>电脑型号:<input type="text" name="xinghao"><br>生产日期:<input type="text" name="riqi"><input type="submit" value="提交"></form><jsp:setProperty name="computer" property="*" /><A href="show.jsp">访问show.jsp,查看有关信息。</A>
</font>
</body>
</html>

show.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="computer" class="bean.data.PC" scope="session" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
%>
<html>
<body bgcolor="#7fffd4">
<table border="1"><tr><th>电脑品牌</th><th>电脑型号</th><th>生产日期</th></tr><tr><th><jsp:getProperty name="computer" property="pinpai" /></th><th><jsp:getProperty name="computer" property="xinghao" /></th><th><jsp:getProperty name="computer" property="riqi" /></th></tr>
</table>
</body>
</html>

运行结果

3、有效范围为application的bean

要求编写两个JSP页面inputMess.jsp和show.jsp。编写一个名字为board的Javabean,其中board由MessBoard.class类负责创建。

1)inputMess.jsp页面提供一个表单。其中表单允许用户输入留言者的姓名、留言标题和留言内容,该表单将用户输入的信息提交给当前页面,当前页面调用名字为board的bean,并使用表单提交的数据设置board的有关属性的值。要求在inputMess.jsp提供一个超链接,以便用户单击这个超链接访问show.jsp页面。

2)show.jsp调用名字为board的bean,并显示该bean的allMessage属性的值。

3)编写的MessBoard.java应当有刻画留言者的姓名、留言标题和留言内容的属性,并且有刻画全部留言信息的属性allMessage。将MessBoard.java编译后的字节码文件MessBoard.class保存到对应工程的WEB-INF\classes\tom\jiafei目录中。

源代码

inputMess.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="board" class="bean.data.MessBoard" scope="application"/>
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<body><form action="" method="post" name="form">输入你的名字:<br><input type="text" name="name"><br>输入你的留言标题:<br><input type="text" name="title"><br>输入你的留言:<br><textarea name="content" rows="10" cols="36" wrap="soft"></textarea><br><input type="submit" value="提交信息" name="submit"></form><jsp:setProperty name="board" property="*"/><a href="showMess.jsp">查看留言板</a>
</body>
</html>

showMess.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="board" class="bean.data.MessBoard" scope="application"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
%><%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html>
<body bgcolor="#6495ed"><jsp:getProperty name="board" property="allMessage"/><a href="inputMess.jsp">我要留言</a>
</body>
</html>

MessBoard.java

package bean.data;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;public class MessBoard {String name,title,content;StringBuffer allMessage;ArrayList<String> savedName,savedTitle,savedContent,savedTime;private String t;public MessBoard() {savedName = new ArrayList<String>();savedTitle = new ArrayList<String>();savedContent = new ArrayList<String>();savedTime = new ArrayList<String>();}public void setName(String s) {this.name = s;savedName.add(name);Date time = new Date();SimpleDateFormat matter = new SimpleDateFormat("yyyy-mm-dd,HH:mm:ss");String messTime = matter.format(time);savedTime.add(messTime);}public void setTitle(String t) {this.title = t;savedTitle.add(title);}public void setContent(String c) {/*try {byte b[] = c.getBytes("ISO-8859-1");c = new String(b);} catch (Exception e) {}*/this.content = c;savedContent.add(content);}public StringBuffer getAllMessage() {allMessage = new StringBuffer();allMessage.append("<table border=1>");allMessage.append("<tr>");allMessage.append("<th>留言者姓名</th>");allMessage.append("<th>留言标题</th>");allMessage.append("<th>留言内容</th>");allMessage.append("<th>留言时间</th>");allMessage.append("</tr>");for (int k = 0; k < savedName.size(); k++) {allMessage.append("<tr>");allMessage.append("<td>");allMessage.append(savedName.get(k));allMessage.append("</td>");allMessage.append("<td>");allMessage.append(savedTitle.get(k));allMessage.append("</td>");allMessage.append("<td>");allMessage.append("<textarea>");allMessage.append(savedContent.get(k));allMessage.append("</textarea>");allMessage.append("</td>");allMessage.append("<td>");allMessage.append(savedTime.get(k));allMessage.append("</td>");allMessage.append("</tr>");}allMessage.append("</table>");return allMessage;}
}

运行结果

图2.3.1 输入数据

图2.3.2 点击“提交信息”后重定向

图2.3.3 点击“查看留言板”后跳转

实验二 JSP内置对象

一、实验目的

1、通过本次实验使学生掌握JSP内置对象的基本语法,能够应用request、response、out等JSP内置对象的语法进行动态网站编程。

二、实验内容

1、注册页面

编写一个用户JSP注册页面,其中包含姓名(text)、密码(password)、年龄(select)、性别(radio)、爱好(checkbox)、自我介绍(textarea)、确认(submit)、重置(reset)表单标签,并请求到另一个JSP页面,在这个页面中接收信息,并将用户填写过的信息显示出来。

源代码

register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Insert title here</title>
</head>
<body>
<form action="information.jsp" method="post">姓名:<input type="text" name="username"><br>密码:<input type="password" name="pwd"><br>年龄:<select size="1" name="age"><%for (int i = 1; i <= 100; ++i) {%><option value="<%=i%>"><%=i%></option><%} %>
</select><br>〉性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>自我介绍:<textarea rows="8" cols="30" name="introduction">
</textarea><br><input type="submit" value="提交"><input type="reset" value="reset">
</form>
</body>
</html>

information.jsp

<%@ page language="java" contentType="text/html; charset=GBK"pageEncoding="utf-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String strUsername = request.getParameter("username");String strpwd = request.getParameter("pwd");String strage = request.getParameter("age");String strsex = request.getParameter("sex");String strIntroduction = request.getParameter("introduction");%>
用户名是:<%=strUsername%><br>
密码是:<%=strpwd%><br>
你的年龄是:<%=strage%><br>
你的性别是:<%=strsex%><br>
你的简介:<%=strIntroduction%><br>
</body>
</html>

运行结果

图2.1.1 输入信息

图2.1.2 按下“reset”键后

图2.1.3 按下“提交”键后

2、页面刷新

使用response对象控制页面3秒钟刷新一次。(使用java.util.Date函数显示时间)。

源代码

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" %>
<%@page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Insert title here</title>
</head>
<body>
<p>现在的时间是:<br>
<%out.println(""+new Date());response.setHeader("Refresh", "3");
%>
</body>
</html>

运行结果

图2.2.1 每3秒刷新一次

3、页面跳转

使用response对象的重定向功能实现页面跳转。在实验题目1中如果表单的姓名在没有填写或为空的情况下提交时,将页面重新定向到注册页面。

源代码

register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Insert title here</title>
</head>
<body>
<form action="information.jsp" method="post">姓名:<input type="text" name="username"><br>密码:<input type="password" name="pwd"><br>年龄:<select size="1" name="age"><%for (int i = 1; i <= 100; ++i) {%><option value="<%=i%>"><%=i%></option><%} %>
</select><br>〉性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>自我介绍:<textarea rows="8" cols="30" name="introduction">
</textarea><br><input type="submit" value="提交"><input type="reset" value="reset">
</form>
</body>
</html>

information.jsp

<%@ page language="java" contentType="text/html; charset=GBK"pageEncoding="utf-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");String strUsername = request.getParameter("username");if (strUsername == "") response.sendRedirect("register.jsp");String strpwd = request.getParameter("pwd");String strage = request.getParameter("age");String strsex = request.getParameter("sex");String strIntroduction = request.getParameter("introduction");%>
用户名是:<%=strUsername%><br>
密码是:<%=strpwd%><br>
你的年龄是:<%=strage%><br>
你的性别是:<%=strsex%><br>
你的简介:<%=strIntroduction%><br>
</body>
</html>

运行结果

图2.3.1 没填写姓名的情况下“提交”

图2.3.2 重定向到注册页面

实验一 JSP语法

一、实验目的

1、掌握如何使用Tomcat的基础知识,为以后实验打下基础。

2、掌握怎样JSP页面中使用成员变量,怎样Java程序片,Java表达式;

3、掌握怎样在JSP页面中使用include标记动态加载文件,使用forward实现页面转向。

二、实验内容

1、JSP页面的基本结构

本实验将用户输入的单词按字典顺序排序。需要编写两个JSP页面,名字分别为inputWord.jsp和showDictionary.jsp。

1)inputWord.jsp的具体要求

该页面有一个表单,用户通过该表单输入若干个单词,并提交给showDictionary.jsp页面。

2)showDictionary.jsp的具体要求

该页面负责排序单词,并将排序的全部单词显示给客户。

(1)该JSP页面有名字为dictionary,类型是TreeSet成员变量。

(2)该JSP页面有public void addWord(String s)方法,该方法将参数s指定字符串添加到成员变量dictionary中。

该JSP页面在程序片中操作dictionary,即显示全部的单词。

源代码

importWord.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>inputWord</title>
</head>
<body bgcolor=cyan><form action="showDictionary.jsp" method=get name=form> 请输入单词(用空格分隔):<input type="text" name="word"> <br><input type="submit" value="发送" name=submit></form>
</body>
</html>

showWord.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.*" %>
<html>
<head><title>showDictionary</title>
</head>
<body bgcolor="yellow">
<%!TreeSet<String> dictionary = new TreeSet<String>();public void addWord(String s) {String word[] = s.split(" ");for (int i = 0; i < word.length; i++) {dictionary.add(word[i]);}}
%>
<%String str = request.getParameter("word");addWord(str);Iterator<String> te = dictionary.iterator();while (te.hasNext()) {String word = te.next();out.print(" " + word);}
%>
</body>
</html>

运行结果

2、JSP动作标记

编写3个JSP页面:giveFileName.jsp、readFile.jsp和error.jsp。

1)giveFileName.jsp的具体要求

要求giveFileName.jsp页面使用include动作标记动态加载readFile.jsp页面,并将一个文件的名字比如ok.txt传递给被加载的readFile.jsp页面。

2)readFile.jsp的具体要求

要求readFile.jsp负责根据giveFileName.jsp页面传递过来的文件名字进行文件的读取操作,如果该文件不存在就使用forward动作标记将用户转向error.jsp页面。

3)error.jsp的具体要求

负责显示错误信息。

源代码

giveFileName.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Insert title here</title>
</head>
<body>
读取名字是ok.txt的文件:
<jsp:include page="readFile.jsp"><jsp:param value="D:/ok.txt" name="file"/>
</jsp:include>
</body>
</html>

readFile.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.io.*" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Insert title here</title>
</head>
<body>
<p><font size=2 color=blue>This is readFile.jsp.</font><font size=4><%String s = request.getParameter("file");File f = new File(s);if (f.exists()) {out.println("<br>文件" + s + "的内容:");FileReader in = new FileReader(f);BufferedReader Bin = new BufferedReader(in);String line;while ((line = Bin.readLine()) != null) {out.println("<br>" + line);}} else {%><jsp:forward page="error.jsp"><jsp:param name="mess" value="File Not Found"/></jsp:forward><%}%></font>
</body>
</html>

error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Insert title here</title>
</head>
<body bgcolor=yellow>
<p><font size=5 color=red>This is error.jsp.</font>
<%String s=request.getParameter("mess");out.println("<br>本页面得到的信息:"+s);
%>
</body>
</html>

运行结果

【JSP实验报告】手把手教Web项目=jsp+tomcat+MySQL相关推荐

  1. 软件测试用户故事评审实验报告,手把手教你写用户故事验收标准

    用户故事验收标准的定义 "验收标准"和"满足条件"交替使用,可以清晰的定义价值主张.用户流程或解决方案的特点. 验收标准可作为测试用例的催化剂,应该是可验证的, ...

  2. jsp mysql视频_手把手教你做jsp servlet mysql实现的图书管理系统附带视频开发教程和完整源码...

    上一个教程我们做的是对数据库框架底层原理的讲解,然后教大家做了一个自己的数据库框架,这次我们做的这个图书管理系统就是用我们上个教程自己写的数据库框架,整个项目做完框架运行的很稳定,没有出现任何问题.如 ...

  3. 【在web项目jsp页面自动生成二维码功能】

    在web项目jsp页面自动生成二维码功能 原文: http://www.cnblogs.com/gczmn/. https://www.jq22.com/jquery-info294/. 先将下面的文 ...

  4. javaee实验报告心得_java,web实验报告心得.doc

    java,web实验报告心得 java,web实验报告心得 JavaWeb实验报告 实验一 开发环境配置及Servlet程序设计 一.实验目的 1.了解并熟悉编程环境.编程工具,包括Tomcat.My ...

  5. eclipse发布web项目到tomcat服务器

    README:  使用eclipse发布web项目到tomcat有很多坑儿的.下面依依道来. step1)eclipse建立web 项目: step2)在tomcat服务器上为该web项目配置的虚拟目 ...

  6. eclipse配置tomcat,并部署一个Java web项目到tomcat上

    eclipse配置tomcat 1.windows--preference 2.server--Runtime  Environment 3.Add 下图中第2表示:选中自己安装tomcat的目录 创 ...

  7. Maven发布web项目到tomcat

    在java开发中经常要引入很多第三方jar包:然而无论是java web开发还是其他java项目的开发经常会由于缺少依赖包引来一些不必要的异常.常常也是因为这样的原因导致许多简单的缺包和版本问题耗费大 ...

  8. java项目如何启动tomcat服务器,Java web项目启动Tomcat报错解决方案

    Java web项目启动Tomcat报错解决方案 点击运行项目时显示 A Java Exception has occurred. 'Starting Tomcat v9.0 Server at lo ...

  9. 手把手教你用JSP+Servlet+Tomcat实现一个最简单的Web应用

    JSP+Servlet+Tomcat实现一个简单的Web应用 需要使用到的技术 ①JSP ② Servlet ③Tomcat Web开发中的常见概念 Demo *本文针对编程务实实验内容,简单演示一下 ...

最新文章

  1. spark(3) - scala独立编程
  2. 搭建LAMP环境的过程详细总结
  3. Robust Principal Component Analysis?(PCP)
  4. ESP32开发板开源啦 ESP32-IOT-KIT全开源物联网开发板
  5. 《完美软件》读书笔记9:良好测试的要素
  6. Ubuntu 20.04 上安装 TeamViewer
  7. Python基础语法
  8. 数字日期格式转换yyyymmdd_js时间转换,能够把时间转换成yyyymmdd格式或yyyymm格式...
  9. 百度地图api初次申请及简单应用
  10. CCF-CSP认证历年真题解
  11. java is alphabetic_\p{IsAlphabetic}
  12. 关于 Swift Package Manager 的一些经验分享
  13. php面试时的自我称呼,PHP程序员面试自我介绍
  14. 36线性映射03——线性空间的同构、同构的性质、线性同构
  15. 利用DirectShow开发C#版的音频文件播放器(三)
  16. RPGmaker MV EnemyBook 插件使用
  17. 轻量级简约的自动采集小说程序源码
  18. 简单的PHP登陆页面和登陆成功页面代码
  19. JAVA_Android客户端_基础知识点总结
  20. JavaScript + CSS/CSS3 + HTML 网页登陆 + 注册界面设计

热门文章

  1. adams打不开提示msc license_安装adams后,打开时弹出的错误,如何修改才能用?
  2. iOS APP 发布上架流程
  3. 苹果手机怎么使用word
  4. python做线性回归_利用python实现简单的线性回归
  5. 繁华落尽,捡拾一地伤
  6. IOS 7 Xcode 5 免IDP证书 真机调试[ZT]
  7. 伍迷创意随想集 之 爱情博物馆
  8. 广发卡分期:信用卡办理流程详解
  9. “好奇号”的核燃料(钚238)从何而来?
  10. Flink MapState的实践