轻量级javaee第2章练习1(Jsp/Servlet)

轻量级javaee第2章练习1
书上的练习都要试一试

1、说出JSP和Servlet的区别是什么?Servlet是什么?
答:JSP是Servlet的简化,区别在于,JSP会进行自我的初始化,所以有很多可以直接使用的内容,无需手动创建,而使用Servlet的话,那些都要以代码的方式手动创建。JSP更偏向于HTML,Servlet更偏向于java代码。
Servlet在我的理解中就是一个module,就是和客户端建立连接的类,然后把html代码作为数据传输给客户端,中间做一些处理而已,但是还是有很多我不理解的地方,比如一些作用范围。。。。唉,毕竟是别人写的东西,而且那么庞大。。。

二者都用于动态生成HTML页面

2、使用JSP直接做一个项目,不管什么表现层业务逻辑组件或者持久层组件。(包括使用自定义标签,jsp标签之类的,Servlet,Listener,Filter),做一个可以用的Study主页。可以评论。还可以做一个排行榜网页。按标签、属性分类。

自习室网页版

3、p74按照书上,徒手建立一个Web应用。
就是建立一个文件夹,文件夹里面放一个MEB-INF文件夹,WEB-INF文件夹里再放一个web.xml和一个classes文件夹,还有一个lib文件夹。这样一个简单的Web项目就做好了。。。
其实我很好奇,现在还有谁拿着网页上淘宝,,,,

4、什么是JAAS授权认证p76。Web应用首页是不是和index.jsp有关系?
答:JAAS我还不知道,百度了,也根本看不懂。。。

不过Web应用首页确实约定为index.html/.jsp/.htm之类的,反正名字是index,虽然可以修改,但是按照约定来会更好一些。
然后如果只输入网址,而没有指定页面的具体位置,那么就会默认打开index文件。如果指定了名称则打开对应名称的页面,比如
http://localhost:8888/webDemo/a.jsp就是展示a.jsp

http://localhost:8888/webDemo,如果有index文件则展示index文件,如果没有,就会报错。,。。

5、jetty是什么?
答:也是也tomcat差不多的一个servlet容器。

6、查看一下Tomcat的conf路径下的web.xml文件
答:基本看不懂。。。。
在这里插入图片描述

7、查看一下Tomcat的work路径对应的Web应用。
在这里插入图片描述
会自动生成一个包,然后会自动生成servlet然后编译

8、查看一下p77下面说的目录和文件
答:
在这里插入图片描述

9、p79上面的catch块的内容看不懂。
答:我现在也还是看不懂2022年5月2日

10、说出JSP的4种基本语法是什么?
答:
(1)jsp注释
JSP注释和HTML注释的区别是,JSP注释不会被发送到客户端,而HTML注释会发送到客户端。

(2)jsp声明
(3)jsp输出表达式
(4)jsp小脚本

11、模仿p80的例子做一个练习。
在a.jsp的基础上扩展出来的,结果和书上一样,JSP注释,到客户端后就会变成一行空行。

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<html>
<head>
	<title>欢迎</title>
</head>
<body>
	欢迎学习Java Web知识
	<!-- 增加JSP注释 -->
	<%--JSP注释部分 --%>
	<!-- 增加HTML注释部分 -->
	<!-- HTML注释部分 -->
</body>
</html>

在这里插入图片描述

12、模仿p81的例子做一个练习。
代码书上都有,我照着抄了一遍而已

13、为什么count会一直+1?每次刷新不会重新执行public int count吗?刷新只会重新调用service方法?

在这里插入图片描述
重载和停止再开启,才会让count重新变为0,那么就是说servlet的是一直存在的,不会被重新启动,不是我的Module,他的_jspService()每次访问都会被调用。而不是重新生成一个java实例。。。

如果代码有变动的话,就会重新生成实例,否则访问根本不会报错!还是不懂
然后就算jsp代码是错误的,还是有很大概率正常访问,我猜测是编译失败,所以如果访问到了页面,就是和最后一次编译成功的版本一样。

14、按照p81下面的说明,查看下_jsp.java文件。
答:我自己声明的方法和变量,都被放在最顶端,
在这里插入图片描述

15、尝试在jsp种声明抽象方法,看看会报什么错误。
答:无法编译的错误
在这里插入图片描述

16、模仿p82的例子做一个练习。并且尝试在输出表达式语法后加上分号,看看会报什么错误?

答:
在这里插入图片描述

17、每个html页面上声明的<!DOCTYPE>是干嘛用的?还有中的xmlns是什么?
答:(1)告诉浏览器,这个网页的一些信息,看看应该用什么来解析这个网页
HTML文件里开头的!Doctype有什么作用?
(2)xmlns 属性规定文档的 xml 命名空间。(我看不懂。。。。)
<html xmlns=“http://www.w3.org/1999/xhtml” 声明一个网址,或者说声明了一个文件夹,,,,就是声明命名空间?不懂。。

18、模仿p83的例子做一个练习
答:我直接把书上的代码抄了一遍。。。

19、不知道jsp脚本在servlet中是什么样子。
答:到work下看看就知道了。。比较复杂,jsp是浓缩的精华。我先把需要学习的先学,后面再扩展。。

20、尝试在小脚本中声明变量(局部和全局都试一下,public,private,static)声明方法试一下
答:声明全局变量后就会报错
在这里插入图片描述

21、尝试在jsp中执行数据库查询。并且查看网页源代码是什么样的。还有对应servlet代码是怎么样的。
答:代码抄书上的。。。
对应Servlet的代码如下,没啥太大的区别,就是把<% %>之中的代码原原本本放进去了而已。
在这里插入图片描述

22、说出jsp的三个编译指令是什么?
答:
(1)<%@ page 设置contentType和language之类的会用到
(2)<%@ include 应该是静态导入页面
(3)tablib将在标签库处详细讲解

23、说出page指令各个属性的意义?
答:language 声明当前JSP页面使用的脚本语言的种类
extends 指定JSP页面编译所产生的Java类所集成的父类
import 用来导入包
session 设置这个JSP页面是否需要HTTPSession(不太理解),后面有一个例子提到了,说设置为session = false的话,就是进入这个页面无需再次建立session
buffer:不懂。。
autoFlush也不懂。。
info:设置用于Servlet.getServletInfo()的返回值,不设置也会有一个默认值
errorPage设置报错了的话,跳转到哪个页面,不设置的话,就会直接输出报错信息
isErrorPage 设置本页面是否为错误处理程序,设置为true会有一个额外的类用于调用,false的话,是没有这个类的
contentType 用于设置生成网页的文件格式和编码字符集,
pageEncoding:指定生成网页的编码字符集

session属性是什么意思?什么作用?

buffer属性是什么意思?什么作用?

24、尝试用info设置jsp程序的信息,然后用Servlet.getServletInfo()和getServletInfo()输出。再尝试不设置info属性,输出一下看看是什么信息?p87例子练习再换回out的方式。
答:抄写书上的代码

25、尝试自己打包一个jar包然后在自己写的程序中import自己包里的类。
答:

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!-- 指定info信息 -->
<%@ page info="this is a jsp" %>
<%@ page import="Test.Test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>测试page指令的info属性</title>
</head>
<body>
<!-- 输出info信息 -->
<% out.println(getServletInfo());%>
<%= new Test().getString() %>
</body>
</html>

完全可以

26、p88如果不设置isErrorPage="true"会怎样?再试一下删除errorPage属性
答:设置为true会有这个
在这里插入图片描述

不设置或者设置为false就是这样
在这里插入图片描述

27、p89什么静态的include?动态的include?什么叫做被嵌入的文件经常需要改变?什么时候使用include?什么时候使用jsp:include?他们的区别是什么?
答:静态的include是直接把代码硬编码在一起,如果是动态的include则是依旧是一个引用的形式。
经常需要改变的话,如果使用静态include就会一直需要重新硬编码。如果采用动态的include的话,就算一直变,也没关系。

应该是在被嵌入文件不需要经常改动的时候使用静态include,这样免去了每次查找引用的时间,可以提高运行效率。
如果被嵌入文件经常改变的话,使用静态的include反倒要一直查找,然后硬编码,这样不如动态的include,动态的include每次只需要查找。

区别其实就在动态和静态这两个描述中。

28、模仿p89的例子做一个练习
答:直接抄写了书上的代码。

29、p90的out.write和out.print什么区别?
答:看如下博客JSP out.print()和out.write()区别详解
主要的区别就是。在字符串为null的时候,print输出“null”而write会报错。
out.write()这个方法只能输出字符、字符数组、字符串等字符相关的数据
而out.print()会将所有类型的数据转换成字符串,然后输出。

30、说出jsp的七个动作指令分别是什么?
答:
(1)jsp:forward:执行页面

31、p90的那段话没看懂,编译指令和动作指令的区别是什么?处理指令通常可以替换成jsp脚本是什么意思?什么是处理指令?

32、什么是JavaBean?什么是Applet?

33、模仿p90下方的例子做一个练习(forward指令)

34、p91下方的例子

35、flush属性的作用没看懂p92

36、说出forward和include的区别和联系是什么?

37、说出p94的四种scope的具体范围,该页面是什么意思?本次请求又是什么意思?本次session又是什么意思?应用内一直有效又是什么意思?

38、试一下p94下方的例子,尝试不提供setName和getName试一试?尝试不提供变量但是提供方法试一试

39、p95是必须自己把src中的.java文件编译后,将.class文件放入classes目录中然后重启后才会生效的意思吗?

40、p95下方的例子

41、说出jsp脚本中的9个内置对象分别是什么?

42、p97中关于config内置对象的说明看不懂?JSP页面通常无须配置,也就不存在配置信息。因此,该对象更多的在Servlet中有效??

43、尝试在isErrorPage属性为false中使用exception

44、page和pageContext是什么区别?

45、request的parameter和Attribute什么区别?

46、什么时候使用response?什么叫重定向?

47、p97中对于一次会话的说法,关闭浏览器才算会话结束??可是对于一个网站来说关闭所有网页不就应该算是会话结束吗?

48、查看一下isErrorPage=true的页面中是否有exception局部变量

49、简略说出Web服务器运行原理

50、jsp/servlet之间如何交换数据?

51、page和普通的jsp脚本中的变量有什么区别?

52、练习一下让多个JSP、Servlet共享数据p100p101

53、p101的@WebServlet注解是干嘛用的?

54、p101Servlet中没有内置对象但是jsp中有内置对象这种说法好怪?是不是不用jsp编译的servlet没有内置对象吗?

55、尝试获得Web应用配置参数p102。这个配置参数是什么意思?web.xml中的东西?

56、p103的2.6.2节config对象看不懂,为什么这里又把JSP和Servlet分开了??配置在web.xml中难道jsp取不到?servlet取得到?

57、p104我看不太懂,servlet-name中的config是有一个Servlet名字叫做config.java吗?还有为什么要把jsp页面配置在Web应用中?还有后面的servlet-mapping是干嘛的?
如果不配置成这样,jsp就无法访问name和age变量了吗?

58、打开普通JSP页面所生成的Servlet类看看。p105

59、p106的例子练习一下。并且查看一下error.jsp生成的servlet中的exception声明。和isErrorPage=false的servlet做个对比。

60、p107的例子练习一下。

61、p108例子练习+上将两个变量名修改为一样,看看会不会覆盖?

62、p110上面getParameterNames()为什么不是和getParameterValues()一样返回数组

63、GET和POST请求的区别是什么?分别如何使用?分别什么情况使用?

64、p110的例子练习一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

细水长流cpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值