编写一个JSP页面
- 格式:doc
- 大小:14.00 KB
- 文档页数:2
jsp程序设计教程课后习题答案JSP程序设计教程课后习题答案在学习JSP程序设计的过程中,课后习题是非常重要的一部分,通过完成习题可以巩固所学的知识,并且提升自己的编程能力。
本文将为大家提供一些常见JSP程序设计课后习题的答案,希望能够对大家的学习有所帮助。
一、基础题1. 编写一个JSP页面,实现一个简单的计算器功能,用户输入两个数字和一个操作符(+、-、*、/),页面输出计算结果。
```jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>计算器</title></head><body><form action="" method="post"><input type="text" name="num1" placeholder="请输入第一个数字"><br> <input type="text" name="num2" placeholder="请输入第二个数字"><br> <input type="text" name="operator" placeholder="请输入操作符"><br><input type="submit" value="计算"></form><%-- 获取用户输入的数字和操作符 --%><% int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); String operator = request.getParameter("operator");%><%-- 根据操作符进行计算 --%><% double result = 0;if(operator.equals("+")){result = num1 + num2;} else if(operator.equals("-")){result = num1 - num2;} else if(operator.equals("*")){result = num1 * num2;} else if(operator.equals("/")){result = num1 / num2;}%><%-- 输出计算结果 --%><h1>计算结果: <%= result %> </h1></body></html>```2. 编写一个JSP页面,实现一个简单的登录功能,用户输入用户名和密码,页面判断是否登录成功。
《JSP实用教程(第三版)》课后答案第1章 JSP简介1.安装Tomcat引擎的计算机需要事先安装JDK吗?答:需要。
2.怎样启动和关闭Tomcat服务器?答:bin目录下使用startup.bat启动Tomcat服务器。
bin目录下使用shutdown.bat 关闭Tomcat服务器。
3. Boy.jsp和boy.jsp是否是相同的JSP文件名字?答:不是4. 请在D:\下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单JSP页面保存到该目录中,让用户使用虚拟目录fish 来访问该JSP页面。
答:设置方法:①建立D:\ water目录;②修改server.xml文件,在</host>上一行添加:<Context path="/fish" docBase="D:\ water" debug="0" reloadable="true"/>③使用http://localhost:8080/ fish /example1_1.jsp访问example1_1.jsp页面.5. 假设Dalian是一个Web服务目录,其虚拟目录为moon。
A.jsp保存在Dalian 的子目录sea中。
那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问A.jsp的正确方式?A.http://127.0.0.1:8080/A.jsp B. http://127.0.0.1:8080/Dalian/A.jspC. http://127.0.0.1:8080/moon/A.jspD. http://127.0.0.1:8080/moon/sea/A.jsp 答:D6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?答:修改Tomcat服务器的conf目录下的主配置文件server.xml可以更改端口号.若Tomcat服务器上没有其它占有80端口号的程序,可以将其修改为80,否则不能。
JSP期末模拟题1、JSP期末模拟题A卷一填空题(每空2分,共10分)创建JSP 应用程序时,配置文件web.xml应该在程序下的_目录中。
2、如果编写一个计数器程序,用来记载当前网站的访问量,最好采用JSP中的_对象。
Http的中文含义为_。
Tomcat服务器的默认端口为_。
在html标记中,_标记用于设置当前页面的标题。
3、答案:WEB-INFapplication超文本传输协议title二判断正误题(每题1分,共10分)1Internet和intranet的含义意义相同。
()2Web开发技术包括客户端和服务器端的技术。
()3在网页中图形文件与网页文件是分别存储的。
4、()4超级链接不仅可以将文本作为链接对象,也可以将图像作为链接对象。
5、()5超级链接标记的target属性取值为链接的目标窗名,可以是parent、blank、self、top。
6、()6JSP引擎执行字节码文件的主要任务之一是直接将HTML 内容发给客户端。
()7在“”标记之间声明的Java的方法在整个页面内有效。
7、()8程序片变量的有效范围与其声明位置有关,即从声明位置向后有效,可以在声明位置后的程序片、表达式中使用。
()9不可以用一个page指令指定多个属性的取值。
8、()jsp:param动作标记不能单独使用,必须作为jsp:include、jsp:forward标记等的子标记使用,并为它们提供参数。
()答案:错对对对错对对对错对三.简答题(每题5分,共50分)JSP中可重复使用的组件有哪些?什么是JSP的预编译特征?开发JSP程序可采用哪几种开发模式?分别介绍他们的优缺点。
什么是成员变量和局部变量?他们的区别是什么?JSP特点为什么使用JSP?JSP编译和执行过程JSP页面组成部分(4个)以及其作用一个JSP页面包含的内容JSP声明以及形式答案:JavaBean/JSP标准标签/自定义标签JSP页面在被服务器执行前,都是已经被编译好的,并且通常只进行一次编译,即在JSP页面被第一次请求时进行编译,在后续的请求中如果JSP页面没有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度。
JSP制作简单登录界⾯实例现在很多web项⽬都能⽤到登录界⾯,本⽂介绍⼀下JSP制作简单登录界⾯,分享给⼤家,具体如下:运⾏环境eclipse+tomcat+MySQL 不知道的可以参考项⽬列表这⾥我先把jsp⽂件先放在Web-INF外⾯访问1.需要建⽴的⼏个⽂件在图上.jsp2.还要导⼊MySQL的jar包mysql-5.0.5.jar,导到WEB-INF中的lib⽂件夹就可以不需要Bulid Path3.开始编写代码:代码演⽰:index.jsp就好像⼀般⽹站的⾸页⼀样感觉,将header.jsp和footer.jsp引⼊其中<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>⾸页</title><style>#nav>ul>li{float:left;margin-left:50px;}#login{clear:both;}</style></head><body><!-- 引⼊header.jsp的头部⽂件 --><%@ include file="header.jsp" %><div id="login"><a href="login.jsp" rel="external nofollow" ><button>登陆</button></a></div><!-- 引⼊footer.jsp的脚部⽂件 --><%@include file="footer.jsp" %></body></html>header.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><div id="nav"><ul><li ><a href="">导航1</a></li><li><a href="">导航2</a></li><li><a href="">导航3</a></li><li><a href="">导航4</a></li><li><a href="">导航5</a></li><li><a href="">导航6</a></li></ul></div>footer.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><div><p>xxxxxxxxxxx可以试试|xxxxxxxxxxxx技术有限公司</p><p>京 ICP 证 1234567 号|Copyright © 1999-2017, All Rights Reserved </p></div>页⾯内容展⽰:login.jsp登陆⽤户名密码填写界⾯<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登陆页⾯</title></head><body><%--表单--%><fieldset><legend>登陆界⾯</legend><form action="test.jsp" method="post"><input type="text" name="username"><br><input type="password" name="password"><br><input type="submit" value="登陆"><!-- EL语句,后⾯验证表单时,验证错误反回信息-->${error}</form></fieldset></body></html>内容显⽰:test.jsp 是对表单login.jsp 的提交的内容与数据库中的数据对⽐验证,再相应的跳转<%@page import="java.sql.*"%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%//请求获取login.jsp的⽤户名username的值String username=request.getParameter("username");//请求获取login.jsp的密码password的值String password=request.getParameter("password");//数据库MySQL的地址String DBURL="jdbc:mysql://localhost:3306/zhou?useUnicode=true&characterEncoding=utf-8";String DBName="root"; //登⼊⽤户名String DBPwd="123456";//登⼊密码//加载mysql驱动Class.forName("com.mysql.jdbc.Driver");//连接数据库Connection conn=DriverManager.getConnection(DBURL,DBName,DBPwd);//创建Statement对象Statement st=conn.createStatement();//sql语句,搜索这个username和password在数据库是否存在String sql="select * from user where name='"+username+"'and pwd='"+password+"'";//运⾏sql语句,并把得到的结果放⼊结果集ResultSet中ResultSet rs=st.executeQuery(sql);//判断这个结果集是否存在,⼀般username只有⼀个if(rs.next()){//设置⼀个username,将后⾯username其内容赋值给前⾯⼀个username,可以以便下⼀个页⾯使⽤request.setAttribute("username", username);//跳转页⾯到userpage.jsprequest.getRequestDispatcher("userpage.jsp").forward(request, response);}else{//设置⼀个error,将后⾯的字赋给这个error,以便先⼀个跳转页⾯的使⽤,request的作⽤域有限request.setAttribute("error", "⽤户名或密码错误");request.getRequestDispatcher("login.jsp").forward(request, response);}conn.close();rs.close();%>登陆错误显⽰的页⾯内容:userpage.jsp这个页⾯就是登陆成功之后显⽰的页⾯<%@page import="javafx.scene.chart.PieChart.Data"%><%@page import="java.util.Date"%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>⽤户界⾯</title></head><body><div><!-- ${username}是获取到test.jsp 中判断中重新设置的username,知道是谁登陆了,这个是谁的页⾯ --> <p>${username},你好,登陆成功!!</p></div><%//session的作⽤域问题,可以记录⼀个⽹站的浏览量。
实验二JSP语法实验步骤:1、JSP页面结构说明:以后代码如无特殊说明均写在<body>标签中(JSP代码可以写在网页的任何位置)。
1.1声明变量与方法新建一JSP页面,输入以下代码。
(1) 声明变量<%!int i=0;%><%out.println("i="+i++);%>刷新你写的页面几次,观察到什么结果,从结果中你得到什么启示?(2) 输入以下代码<%!public int max(int a, int b){if (a>b){return a;}return b;}%><%out.println("<h1>3和5中较大的是"+max(3,5)+"</h1>");%>将上面变量和方法的声明,写在out.println();代码段之后,再访问你写的JSP 页面,观察结果,你得到什么启示?1.2 JSP表达式在JSP页面中输入以下代码。
<h1><%=max(3,5) %></h1><h1><%=(i+a+c)/3 %></h1><h1><%=date.toString() %></h1><%!public int max(int a, int b){if (a>b){return a;}return b;}int i = 3, a = 5, c=4;Date date = new Date();%>通过上面的代码,你认为JSP表达式可以出现什么Java元素?1.3 JSP代码段在JSP页面中输入以下代码,从以下代码的书写中,你发现了什么重要提示?(<% %>中的代码段,无论写在多少个分离的<% %>标签中,都必须完整,即符合Java语法,比如大括号必须匹配等)<%int grade = 80;switch(grade/10){case 10:;case 9:%><h1>你的成绩为优秀!</h1><%break;case 8:;case 7:%><h1>你的成绩为良好!</h1><%break;case 6:%><h1>你的成绩为及格!</h1><%break;default:%><h1>你的成绩为不及格!</h1><%} %>1.4 JSP注释输入以下代码,访问你的JSP查看页面源文件,你看到了什么?说明什么问题?<!--<%=new Date().toString() %>--><%--<%=new Date().toString() %>--%>2、JSP指令2.1 include指令(1)新建Included.jsp页面,在页面中输入以下代码,而且只保留如下代码:<% int a=5, b=8, c=6;out.println("<h1>Hello World!</h1>");%>(2)编写Including.jsp页面,在其中输入以下代码:<%@ include file="Included.jsp" %>并在<body>中输入以下代码:<%=a+b+c %>(3)启动Tomcat服务器,访问Including.jsp,观察结果。
JSP 记事本开发JSP实例在介绍了JSP运行环境后,就可以动手编写一个测试实例,检验一下JSP开发环境配置是否成功,并且简单说明如何使用记事本开发一个JSP应用程序。
本案例主要实现循环输出提示信息。
其创建步骤如下所示:(1)在Tomcat安装目录下C:\Tomcat 6.0\webapps目录下,新建名称为JSPEx ample的文件夹。
(2)在JSPExample文件内,打开记事本,创建文件JExample.jsp,其代码如区分大小写的。
并且在WEB-INF下新建文件web.xml,该文件为Tomcat部署文件,当然了,也可以从其他目录下的web.xml内复制。
(4)启动Tomcat服务器,打开IE浏览器,在地址栏中输入http://localhost:80 80/JSPExample/JExample.jsp,单击【转到】,会显示如图1-21所示页面:图1-21 字体大小显示如果要编写其他JSP页面,直接可以放置到JSPL文件内,而不用重复经过(1)和(3)步骤。
运行JSP页面,需要在客户端打开IE浏览器,并输入相应的页面地址,这样才能在浏览器中显示结果。
实际上这个过程是HTTP协议的一个请求-响应过程,客户端发出请求,服务器端获取请求并处理请求,最后将处理结果返回给客户端。
Tomcat服务器(Servlet容器)在获取了客户端发送的请求后,并依据请求调用相关的JSP处理页面,如果该页面是第一次执行,需要把JSP页面中代码转换为S ervlet代码形式,转换完毕后,需要转换的JA V A文件编译成class文件,编译完成后,使用JVM执行编译过的文件,并将执行结果返回到客户端。
如果该页面不是第一次执行,就会直接调用该页面的class文件执行。
可以看出,JSP页面的第一次执行是需要耗费一些时间,这些时间是耗费在JSP文件到Servlet文件转换并编译的过程。
其详细信息如图1-22所示:图1-22 JSP运行机制从上图中可以看出,JSP页面第一次执行速度比较慢,其他时候执行速度比较块。
编写一个JSP页面,用户输入行数和列数,服务器端根据用户的输入进行表格打印
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
<P>请用户输入行数和列数:
<FORM action="" method="post" name="form">
<P>行数:<input type="text" name="text1">
<P>列数:<input type="text" name="text2">
<input type="submit" value="打印" name="submit">
</FORM>
<% String t1=request.getParameter("text1");
String t2=request.getParameter("text2");
try{
int m=Integer.parseInt(t1);
int n=Integer.parseInt(t2);
out.print(m+"行"+n+"列的表格如下");
if(m>0&&n>0){
int i,j;
out.print("<table border=1>");
for(i=1;i<=m;i++){
out.print("<tr>");
for(j=1;j<=n;j++){
out.print("<td>");
out.print("   "); out.print("</td>");
}
out.print("</tr>");
}
out.print("</table>");
}
else
out.print("<BR>请输入一个正数"); }
catch(NumberFormatException e){ out.print("<BR>请输入数字");
} %>
</BODY></HTML>。